Repository: BuilderIO/mitosis Branch: main Commit: e4255db77c3a Files: 1258 Total size: 14.9 MB Directory structure: gitextract_4bbp8hss/ ├── .changeset/ │ ├── README.md │ └── config.json ├── .eslintignore ├── .eslintrc.js ├── .gitattributes ├── .gitguardian.yml ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yaml │ │ └── feature_request.yaml │ ├── actions/ │ │ └── yarn-nm-install/ │ │ └── action.yml │ ├── pull_request_template.md │ └── workflows/ │ ├── checks.yml │ ├── crawl-docs-site.yml │ └── publish.yml ├── .gitignore ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc.js ├── .tool-versions ├── .vscode/ │ ├── extensions.json │ └── settings.json ├── .yarn/ │ ├── patches/ │ │ └── @sveltejs-package-npm-1.0.0-next.1-2fd015530b.patch │ ├── releases/ │ │ └── yarn-4.1.1.cjs │ └── versions/ │ ├── 026177fe.yml │ ├── 028828e2.yml │ ├── 06e5749f.yml │ ├── 0726b528.yml │ ├── 072aebc8.yml │ ├── 07c322cc.yml │ ├── 09d6af27.yml │ ├── 0a9221c4.yml │ ├── 0aafb6de.yml │ ├── 105b2055.yml │ ├── 12875928.yml │ ├── 1366a905.yml │ ├── 13ce8bab.yml │ ├── 144b1230.yml │ ├── 15c76034.yml │ ├── 173dde9b.yml │ ├── 1a44c65b.yml │ ├── 1aa27f56.yml │ ├── 1ccf07c6.yml │ ├── 1df68f61.yml │ ├── 1fad65fc.yml │ ├── 2199c3df.yml │ ├── 22e7ecc3.yml │ ├── 23758213.yml │ ├── 23da8025.yml │ ├── 24584391.yml │ ├── 25f00f22.yml │ ├── 272ca396.yml │ ├── 29fe0987.yml │ ├── 2a247815.yml │ ├── 2a5c447d.yml │ ├── 2a69f5af.yml │ ├── 2ceb5677.yml │ ├── 2e8dddaa.yml │ ├── 329ad4cc.yml │ ├── 33308e54.yml │ ├── 33caf697.yml │ ├── 371922cb.yml │ ├── 3777636b.yml │ ├── 389436a2.yml │ ├── 3a3f723c.yml │ ├── 3b579a11.yml │ ├── 3bb83c60.yml │ ├── 3bff13d2.yml │ ├── 3cb89724.yml │ ├── 3ead9d18.yml │ ├── 4053ebae.yml │ ├── 411f782e.yml │ ├── 42b588ef.yml │ ├── 44068586.yml │ ├── 46f8ffda.yml │ ├── 47346a15.yml │ ├── 4c1ff198.yml │ ├── 4c9680f4.yml │ ├── 4e3bceb6.yml │ ├── 4f99b94c.yml │ ├── 515392f0.yml │ ├── 51d09e1d.yml │ ├── 51fd1e43.yml │ ├── 56419efb.yml │ ├── 57f03ec9.yml │ ├── 5a2242bb.yml │ ├── 5bc0e0a1.yml │ ├── 5d063d27.yml │ ├── 5e0d43a5.yml │ ├── 6157a043.yml │ ├── 61b56588.yml │ ├── 62c5b924.yml │ ├── 63370d4e.yml │ ├── 6629957d.yml │ ├── 66376ce5.yml │ ├── 6bc94a3b.yml │ ├── 6f725cb4.yml │ ├── 6fbd3750.yml │ ├── 6ff24e83.yml │ ├── 72b07268.yml │ ├── 72ea0816.yml │ ├── 735cc783.yml │ ├── 73f711f2.yml │ ├── 760e996e.yml │ ├── 77fd690d.yml │ ├── 7802d627.yml │ ├── 78525628.yml │ ├── 7970dbd4.yml │ ├── 7a76f789.yml │ ├── 7a985e40.yml │ ├── 804757be.yml │ ├── 81d9e719.yml │ ├── 85f914ea.yml │ ├── 88302145.yml │ ├── 89184b6e.yml │ ├── 8afacd42.yml │ ├── 9288f7b9.yml │ ├── 92f5ae87.yml │ ├── 94fb767f.yml │ ├── 9513e6ed.yml │ ├── 9a0abe50.yml │ ├── a26ef46f.yml │ ├── a727eb3e.yml │ ├── a7426113.yml │ ├── a7d5432d.yml │ ├── ab01aaa4.yml │ ├── ac5e5b17.yml │ ├── aee7c6a5.yml │ ├── afee0844.yml │ ├── b2276c4b.yml │ ├── b2be75f1.yml │ ├── b918a4e2.yml │ ├── b9512246.yml │ ├── bf62388f.yml │ ├── bf6edf5d.yml │ ├── c0b2fa52.yml │ ├── c1093761.yml │ ├── c143ff23.yml │ ├── c21adc6a.yml │ ├── c281843c.yml │ ├── c2d75ce2.yml │ ├── c4fd8fbc.yml │ ├── c62b27f7.yml │ ├── c6e4f64b.yml │ ├── c7ca329d.yml │ ├── c9e3ca8b.yml │ ├── cb259f51.yml │ ├── cc461ac8.yml │ ├── cc9ed5cd.yml │ ├── cf48d14d.yml │ ├── cf4b5981.yml │ ├── cf7ae630.yml │ ├── d03a50ed.yml │ ├── db85d6c2.yml │ ├── e0705211.yml │ ├── e0755694.yml │ ├── e11beb4b.yml │ ├── e3ecba3b.yml │ ├── e4749842.yml │ ├── e5d3ce94.yml │ ├── e89e1791.yml │ ├── e9ce1193.yml │ ├── ec777010.yml │ ├── ed8e0a45.yml │ ├── edc58eba.yml │ ├── ef410112.yml │ ├── f1210054.yml │ ├── f34f5b8e.yml │ ├── f52489af.yml │ ├── f75f1951.yml │ ├── f8d96db9.yml │ ├── fb17c565.yml │ ├── fb202c06.yml │ └── fb99b1b3.yml ├── .yarnrc.yml ├── CODEOWNERS ├── CONTRIBUTING.md ├── LICENSE ├── README.MD ├── developer/ │ └── generators.md ├── docs/ │ ├── README.md │ ├── cli.md │ ├── components.md │ ├── configuration.md │ ├── context.md │ ├── customizability.md │ ├── feature-matrix-draft.md │ ├── gotchas.md │ ├── hooks.md │ ├── project-structure.md │ └── test-status.md ├── e2e/ │ ├── e2e-alpine/ │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ └── main.ts │ │ └── vite.config.ts │ ├── e2e-angular/ │ │ ├── .browserslistrc │ │ ├── .gitignore │ │ ├── README.md │ │ ├── angular.json │ │ ├── angular_src/ │ │ │ ├── app/ │ │ │ │ ├── app.component.html │ │ │ │ └── app.component.ts │ │ │ ├── assets/ │ │ │ │ └── .gitkeep │ │ │ ├── environments/ │ │ │ │ ├── environment.prod.ts │ │ │ │ └── environment.ts │ │ │ ├── index.html │ │ │ ├── main.ts │ │ │ ├── polyfills.ts │ │ │ └── styles.css │ │ ├── package.json │ │ ├── tsconfig.app.json │ │ └── tsconfig.json │ ├── e2e-app/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── allow-failures.json │ │ ├── e2e-output.ts │ │ ├── e2e.ts │ │ ├── mitosis.config.cjs │ │ ├── output/ │ │ │ ├── qwik/ │ │ │ │ ├── .gitignore │ │ │ │ ├── package.json │ │ │ │ ├── project.json │ │ │ │ ├── tsconfig.json │ │ │ │ └── vite.config.ts │ │ │ ├── stencil/ │ │ │ │ ├── index.html │ │ │ │ └── index.ts │ │ │ └── vue/ │ │ │ ├── package.json │ │ │ ├── project.json │ │ │ ├── tsconfig.config.json │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ ├── package.json │ │ ├── playwright.config.ts │ │ ├── project.json │ │ ├── results.json │ │ ├── src/ │ │ │ ├── component-paths.ts │ │ │ ├── components/ │ │ │ │ ├── component-on-update.lite.tsx │ │ │ │ ├── default-props/ │ │ │ │ │ └── use-default-props.lite.tsx │ │ │ │ ├── disabled-input/ │ │ │ │ │ ├── disabled-input.lite.tsx │ │ │ │ │ ├── native-input.lite.tsx │ │ │ │ │ └── simple-input.lite.tsx │ │ │ │ ├── explicit.docs.lite.tsx │ │ │ │ ├── nested/ │ │ │ │ │ ├── item-list.lite.tsx │ │ │ │ │ └── nested-parent.lite.tsx │ │ │ │ ├── one-component.lite.tsx │ │ │ │ ├── show-for-component.lite.tsx │ │ │ │ ├── signals/ │ │ │ │ │ ├── signal-item-list.lite.tsx │ │ │ │ │ └── signal-parent.lite.tsx │ │ │ │ ├── special-tags.lite.tsx │ │ │ │ └── types/ │ │ │ │ ├── component-with-inside-types.lite.tsx │ │ │ │ ├── component-with-outside-types.lite.tsx │ │ │ │ └── data.ts │ │ │ ├── homepage.lite.tsx │ │ │ ├── index.ts │ │ │ └── testConfig.ts │ │ ├── tests/ │ │ │ └── main.spec.ts │ │ ├── tsconfig.json │ │ └── tsconfig.node.json │ ├── e2e-qwikcity/ │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .vscode/ │ │ │ └── extensions.json │ │ ├── README.md │ │ ├── package.json │ │ ├── project.json │ │ ├── public/ │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── header/ │ │ │ │ │ ├── header.css │ │ │ │ │ └── header.tsx │ │ │ │ ├── icons/ │ │ │ │ │ └── qwik.tsx │ │ │ │ └── router-head/ │ │ │ │ └── router-head.tsx │ │ │ ├── entry.dev.tsx │ │ │ ├── entry.preview.tsx │ │ │ ├── entry.ssr.tsx │ │ │ ├── global.css │ │ │ ├── root.tsx │ │ │ └── routes/ │ │ │ ├── [...index]/ │ │ │ │ └── index.tsx │ │ │ ├── layout.tsx │ │ │ └── service-worker.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── e2e-react/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── project.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ ├── main.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ ├── e2e-solid/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.tsx │ │ │ └── index.tsx │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── e2e-stencil/ │ │ ├── .editorconfig │ │ ├── .gitignore │ │ ├── .prettierrc.json │ │ ├── LICENSE │ │ ├── components.d.ts │ │ ├── package.json │ │ ├── stencil.config.ts │ │ └── tsconfig.json │ ├── e2e-svelte/ │ │ ├── .gitignore │ │ ├── README.md │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.svelte │ │ │ ├── main.ts │ │ │ └── vite-env.d.ts │ │ ├── svelte.config.mjs │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ └── e2e-vue3/ │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package.json │ ├── src/ │ │ ├── App.vue │ │ ├── assets/ │ │ │ └── .gitkeep │ │ ├── env.d.ts │ │ └── main.ts │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts ├── examples/ │ ├── basic/ │ │ ├── .eslintignore │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── .prettierrc │ │ ├── README.md │ │ ├── mitosis.config.js │ │ ├── overrides/ │ │ │ ├── react-native/ │ │ │ │ └── src/ │ │ │ │ ├── blocks/ │ │ │ │ │ └── image.tsx │ │ │ │ ├── components/ │ │ │ │ │ └── error-boundary.tsx │ │ │ │ ├── functions/ │ │ │ │ │ └── is-react-native.ts │ │ │ │ └── index-helpers/ │ │ │ │ └── top-of-file.ts │ │ │ └── vue/ │ │ │ └── src/ │ │ │ └── components/ │ │ │ └── error-boundary.vue │ │ ├── package.json │ │ ├── src/ │ │ │ ├── blocks/ │ │ │ │ ├── button.lite.tsx │ │ │ │ └── image.lite.tsx │ │ │ ├── components/ │ │ │ │ └── error-boundary.lite.tsx │ │ │ ├── functions/ │ │ │ │ ├── is-browser.ts │ │ │ │ ├── is-react-native.ts │ │ │ │ └── track.ts │ │ │ ├── index-helpers/ │ │ │ │ ├── blocks-exports.ts │ │ │ │ └── top-of-file.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── metdata/ │ │ ├── .eslintrc.js │ │ ├── .gitignore │ │ ├── README.md │ │ ├── mitosis.config.js │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── data.ts │ │ │ │ └── metadata.lite.tsx │ │ │ └── shared/ │ │ │ ├── data.ts │ │ │ └── model.ts │ │ └── tsconfig.json │ └── todo/ │ ├── .eslintrc.js │ ├── .gitignore │ ├── README.md │ ├── mitosis.config.js │ ├── package.json │ ├── src/ │ │ ├── components/ │ │ │ ├── header.svelte │ │ │ ├── todo.lite.tsx │ │ │ └── todos.lite.tsx │ │ ├── shared/ │ │ │ └── todos-state.ts │ │ └── typings.d.ts │ └── tsconfig.json ├── nx.json ├── package.json ├── packages/ │ ├── cli/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── .yarnrc.yml │ │ ├── CHANGELOG.md │ │ ├── bin/ │ │ │ └── mitosis │ │ ├── docs/ │ │ │ ├── commands.md │ │ │ └── plugins.md │ │ ├── package.json │ │ ├── readme.md │ │ ├── scripts/ │ │ │ └── fix-core-version.sh │ │ ├── src/ │ │ │ ├── __tests__/ │ │ │ │ ├── build/ │ │ │ │ │ ├── build.test.ts │ │ │ │ │ ├── mitosis.config.cjs │ │ │ │ │ ├── mitosis.config.json │ │ │ │ │ └── mitosis.config.ts │ │ │ │ ├── compile/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── compile.test.ts.snap │ │ │ │ │ ├── compile.test.ts │ │ │ │ │ └── data/ │ │ │ │ │ └── triptych.builder.json │ │ │ │ ├── others/ │ │ │ │ │ └── version.test.ts │ │ │ │ ├── plugins.test.ts │ │ │ │ └── utils.ts │ │ │ ├── build/ │ │ │ │ ├── build.ts │ │ │ │ └── helpers/ │ │ │ │ ├── context.ts │ │ │ │ ├── files.ts │ │ │ │ ├── get-simple-id.ts │ │ │ │ ├── nullable.ts │ │ │ │ ├── overrides.ts │ │ │ │ └── transpile.ts │ │ │ ├── cli.ts │ │ │ ├── commands/ │ │ │ │ ├── build.ts │ │ │ │ ├── compile.ts │ │ │ │ └── new.ts │ │ │ ├── extensions/ │ │ │ │ └── cli-extension.ts │ │ │ ├── helpers/ │ │ │ │ ├── get-mitosis-config.ts │ │ │ │ └── get-toolbox-info.ts │ │ │ ├── types.ts │ │ │ └── typings.d.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── core/ │ │ ├── .npmrc │ │ ├── .yarnrc.yml │ │ ├── CHANGELOG.md │ │ ├── jsx-runtime.d.ts │ │ ├── package.json │ │ ├── project.json │ │ ├── scripts/ │ │ │ └── remove-stableVersion.sh │ │ ├── src/ │ │ │ ├── __tests__/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── alpine.test.ts.snap │ │ │ │ │ ├── angular.import.test.ts.snap │ │ │ │ │ ├── angular.mapper.test.ts.snap │ │ │ │ │ ├── angular.signals.test.ts.snap │ │ │ │ │ ├── angular.state.test.ts.snap │ │ │ │ │ ├── angular.styles.test.ts.snap │ │ │ │ │ ├── angular.test.ts.snap │ │ │ │ │ ├── context.test.ts.snap │ │ │ │ │ ├── html.test.ts.snap │ │ │ │ │ ├── liquid.test.ts.snap │ │ │ │ │ ├── lit.test.ts.snap │ │ │ │ │ ├── marko.test.ts.snap │ │ │ │ │ ├── mitosis.test.ts.snap │ │ │ │ │ ├── parse-jsx.test.ts.snap │ │ │ │ │ ├── parse-svelte.test.ts.snap │ │ │ │ │ ├── preact.test.ts.snap │ │ │ │ │ ├── qwik.directive.test.ts.snap │ │ │ │ │ ├── qwik.test.ts.snap │ │ │ │ │ ├── react-native.test.ts.snap │ │ │ │ │ ├── react-state-builder.test.ts.snap │ │ │ │ │ ├── react-state-mobx.test.ts.snap │ │ │ │ │ ├── react-state-solid.test.ts.snap │ │ │ │ │ ├── react-state-valtio.test.ts.snap │ │ │ │ │ ├── react-state-variables.test.ts.snap │ │ │ │ │ ├── react.test.ts.snap │ │ │ │ │ ├── rsc.test.ts.snap │ │ │ │ │ ├── solid.test.ts.snap │ │ │ │ │ ├── stencil.test.ts.snap │ │ │ │ │ ├── styles.test.ts.snap │ │ │ │ │ ├── svelte.test.ts.snap │ │ │ │ │ ├── swift.test.ts.snap │ │ │ │ │ ├── taro.test.ts.snap │ │ │ │ │ ├── vue-composition.test.ts.snap │ │ │ │ │ ├── vue.test.ts.snap │ │ │ │ │ └── webcomponent.test.ts.snap │ │ │ │ ├── alpine.test.ts │ │ │ │ ├── angular.import.test.ts │ │ │ │ ├── angular.mapper.test.ts │ │ │ │ ├── angular.selector.test.ts │ │ │ │ ├── angular.signals.test.ts │ │ │ │ ├── angular.state.test.ts │ │ │ │ ├── angular.styles.test.ts │ │ │ │ ├── angular.tag.test.ts │ │ │ │ ├── angular.test.ts │ │ │ │ ├── builder/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── builder.test.ts.snap │ │ │ │ │ │ └── personalization-container.test.ts.snap │ │ │ │ │ ├── builder.test.ts │ │ │ │ │ ├── deeply-nested.test.ts │ │ │ │ │ ├── events.test.ts │ │ │ │ │ ├── invalid-jsx-flag.test.ts │ │ │ │ │ ├── personalization-container.test.ts │ │ │ │ │ ├── responsive-styles.test.ts │ │ │ │ │ ├── symbols.test.ts │ │ │ │ │ └── text.test.ts │ │ │ │ ├── context.test.ts │ │ │ │ ├── data/ │ │ │ │ │ ├── angular/ │ │ │ │ │ │ ├── all-spread.raw.tsx │ │ │ │ │ │ ├── change-detection.raw.tsx │ │ │ │ │ │ ├── custom-selector.raw.tsx │ │ │ │ │ │ ├── dynamic-component-with-event-args.raw.tsx │ │ │ │ │ │ ├── dynamic-component.raw.tsx │ │ │ │ │ │ ├── native-attributes.raw.tsx │ │ │ │ │ │ ├── output-event-bindings.raw.tsx │ │ │ │ │ │ ├── prettier-inline.raw.tsx │ │ │ │ │ │ ├── sanitize-inner-html.raw.tsx │ │ │ │ │ │ ├── signals-test.raw.tsx │ │ │ │ │ │ ├── state-init-sequence.raw.tsx │ │ │ │ │ │ ├── state-init.raw.tsx │ │ │ │ │ │ ├── two-fors.raw.tsx │ │ │ │ │ │ └── use-object-wrapper.raw.tsx │ │ │ │ │ ├── basic-attribute.raw.tsx │ │ │ │ │ ├── basic-boolean-attribute-component.raw.tsx │ │ │ │ │ ├── basic-boolean-attribute.raw.tsx │ │ │ │ │ ├── basic-child-component.raw.tsx │ │ │ │ │ ├── basic-context.raw.tsx │ │ │ │ │ ├── basic-custom-mitosis-package.raw.tsx │ │ │ │ │ ├── basic-onChange.raw.tsx │ │ │ │ │ ├── basic-onMount-update.raw.tsx │ │ │ │ │ ├── basic-onUpdate-return.raw.tsx │ │ │ │ │ ├── basic-outputs-meta.raw.tsx │ │ │ │ │ ├── basic-outputs.raw.tsx │ │ │ │ │ ├── basic-preserve-export-or-local-statement.raw.tsx │ │ │ │ │ ├── basic-web-component.raw.tsx │ │ │ │ │ ├── basic.raw.tsx │ │ │ │ │ ├── blocks/ │ │ │ │ │ │ ├── builder-render-block.raw.tsx │ │ │ │ │ │ ├── builder-render-content.raw.tsx │ │ │ │ │ │ ├── button-with-metadata.raw.tsx │ │ │ │ │ │ ├── button.raw.lite.tsx │ │ │ │ │ │ ├── button.raw.tsx │ │ │ │ │ │ ├── classname-jsx.raw.tsx │ │ │ │ │ │ ├── columns.raw.tsx │ │ │ │ │ │ ├── content-slot-html.raw.tsx │ │ │ │ │ │ ├── content-slot-jsx.raw.tsx │ │ │ │ │ │ ├── custom-code.raw.tsx │ │ │ │ │ │ ├── embed.raw.tsx │ │ │ │ │ │ ├── form.raw.tsx │ │ │ │ │ │ ├── getter-state.raw.tsx │ │ │ │ │ │ ├── image.raw.tsx │ │ │ │ │ │ ├── img-state.raw.tsx │ │ │ │ │ │ ├── img.raw.tsx │ │ │ │ │ │ ├── index-in-for.raw.tsx │ │ │ │ │ │ ├── input-parent.raw.tsx │ │ │ │ │ │ ├── input.raw.tsx │ │ │ │ │ │ ├── multiple-onUpdate.raw.tsx │ │ │ │ │ │ ├── multiple-onUpdateWithDeps.raw.tsx │ │ │ │ │ │ ├── onEvent.raw.tsx │ │ │ │ │ │ ├── onInit-onMount.raw.tsx │ │ │ │ │ │ ├── onInit-plain.raw.tsx │ │ │ │ │ │ ├── onInit.raw.tsx │ │ │ │ │ │ ├── onMount-multiple.raw.tsx │ │ │ │ │ │ ├── onMount.raw.tsx │ │ │ │ │ │ ├── onUpdate.raw.tsx │ │ │ │ │ │ ├── onUpdateWithDeps.raw.tsx │ │ │ │ │ │ ├── raw-text.raw.tsx │ │ │ │ │ │ ├── referencing-function-inside-hook.raw.tsx │ │ │ │ │ │ ├── render-block.raw.tsx │ │ │ │ │ │ ├── root-fragment-multi-node.raw.tsx │ │ │ │ │ │ ├── rootShow.raw.tsx │ │ │ │ │ │ ├── section-state.raw.tsx │ │ │ │ │ │ ├── section.raw.tsx │ │ │ │ │ │ ├── select.raw.tsx │ │ │ │ │ │ ├── self-referencing-component-with-children.raw.tsx │ │ │ │ │ │ ├── self-referencing-component.raw.tsx │ │ │ │ │ │ ├── shadow-dom.raw.tsx │ │ │ │ │ │ ├── slot-default.raw.tsx │ │ │ │ │ │ ├── slot-html.raw.tsx │ │ │ │ │ │ ├── slot-jsx.raw.tsx │ │ │ │ │ │ ├── slot-named.raw.tsx │ │ │ │ │ │ ├── stamped-io.raw.tsx │ │ │ │ │ │ ├── submit-button.raw.tsx │ │ │ │ │ │ ├── text.raw.tsx │ │ │ │ │ │ ├── textarea.raw.tsx │ │ │ │ │ │ └── video.raw.tsx │ │ │ │ │ ├── builder/ │ │ │ │ │ │ ├── boolean.json │ │ │ │ │ │ ├── custom-component-slot-property.json │ │ │ │ │ │ ├── custom-component-tags.json │ │ │ │ │ │ ├── lazy-load-section.json │ │ │ │ │ │ ├── localization.json │ │ │ │ │ │ ├── slots.json │ │ │ │ │ │ ├── slots2.json │ │ │ │ │ │ ├── symbol-basic.json │ │ │ │ │ │ ├── symbol-multiple.json │ │ │ │ │ │ ├── symbol-with-inputs.json │ │ │ │ │ │ ├── symbol-with-named-entry.json │ │ │ │ │ │ ├── tag-name.json │ │ │ │ │ │ └── text-bindings.json │ │ │ │ │ ├── context/ │ │ │ │ │ │ ├── component-with-context-multi-root.raw.tsx │ │ │ │ │ │ ├── component-with-context.raw.tsx │ │ │ │ │ │ └── simple.context.lite.ts │ │ │ │ │ ├── default-props/ │ │ │ │ │ │ ├── default-props-outside-component.raw.tsx │ │ │ │ │ │ └── default-props.raw.tsx │ │ │ │ │ ├── events/ │ │ │ │ │ │ └── event-input-and-change.raw.tsx │ │ │ │ │ ├── for/ │ │ │ │ │ │ ├── advanced-for.raw.tsx │ │ │ │ │ │ ├── basic-for-fragment.raw.tsx │ │ │ │ │ │ ├── basic-for-no-tag-reference.raw.tsx │ │ │ │ │ │ ├── basic-for-show.raw.tsx │ │ │ │ │ │ └── basic-for.raw.tsx │ │ │ │ │ ├── function-props.raw.tsx │ │ │ │ │ ├── import.raw.tsx │ │ │ │ │ ├── jsx-json.spec.ts │ │ │ │ │ ├── layer-name.raw.tsx │ │ │ │ │ ├── meta/ │ │ │ │ │ │ ├── figma/ │ │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ │ └── figma.raw.tsx │ │ │ │ │ │ ├── figma.ts │ │ │ │ │ │ ├── meta.ts │ │ │ │ │ │ └── sub/ │ │ │ │ │ │ ├── complex-meta.raw.tsx │ │ │ │ │ │ ├── meta-model.ts │ │ │ │ │ │ └── meta-sub.ts │ │ │ │ │ ├── nested-styles.raw.tsx │ │ │ │ │ ├── normalize-layer-names.raw.tsx │ │ │ │ │ ├── props/ │ │ │ │ │ │ ├── basic-props-destructure.raw.tsx │ │ │ │ │ │ ├── basic-props.raw.tsx │ │ │ │ │ │ ├── classname-props.raw.tsx │ │ │ │ │ │ ├── event-props.raw.tsx │ │ │ │ │ │ └── event-props.type.ts │ │ │ │ │ ├── react-native/ │ │ │ │ │ │ ├── native-styles.raw.tsx │ │ │ │ │ │ ├── onclick-to-pressable.raw.tsx │ │ │ │ │ │ ├── text-input.raw.tsx │ │ │ │ │ │ ├── twrnc-state-complex-styled-component.raw.tsx │ │ │ │ │ │ ├── twrnc-state-styled-component.raw.tsx │ │ │ │ │ │ └── twrnc-styled-component.raw.tsx │ │ │ │ │ ├── ref/ │ │ │ │ │ │ ├── advanced-ref.raw.tsx │ │ │ │ │ │ ├── basic-forwardRef-metadata.raw.tsx │ │ │ │ │ │ ├── basic-forwardRef.raw.tsx │ │ │ │ │ │ ├── basic-ref-assignment.raw.tsx │ │ │ │ │ │ ├── basic-ref-attribute-passing-custom-ref.raw.tsx │ │ │ │ │ │ ├── basic-ref-attribute-passing.raw.tsx │ │ │ │ │ │ ├── basic-ref-usePrevious.raw.tsx │ │ │ │ │ │ └── basic-ref.raw.tsx │ │ │ │ │ ├── render-content.raw.tsx │ │ │ │ │ ├── show/ │ │ │ │ │ │ ├── nested-show.raw.tsx │ │ │ │ │ │ ├── show-expressions.raw.tsx │ │ │ │ │ │ ├── show-with-for.raw.tsx │ │ │ │ │ │ ├── show-with-other-values.raw.tsx │ │ │ │ │ │ └── show-with-root-text.raw.tsx │ │ │ │ │ ├── signals-onUpdate.raw.tsx │ │ │ │ │ ├── spread/ │ │ │ │ │ │ ├── multiple-spreads.raw.tsx │ │ │ │ │ │ ├── spread-attrs.raw.tsx │ │ │ │ │ │ ├── spread-nested-props.raw.tsx │ │ │ │ │ │ └── spread-props.raw.tsx │ │ │ │ │ ├── state/ │ │ │ │ │ │ ├── context-state.raw.tsx │ │ │ │ │ │ ├── expression-state.raw.tsx │ │ │ │ │ │ └── set-state.raw.tsx │ │ │ │ │ ├── store/ │ │ │ │ │ │ ├── arrow-function-in-use-store.raw.tsx │ │ │ │ │ │ ├── nested-store.raw.tsx │ │ │ │ │ │ ├── store-comment.raw.tsx │ │ │ │ │ │ ├── store-shadow-vars.raw.tsx │ │ │ │ │ │ ├── store-with-state.raw.tsx │ │ │ │ │ │ ├── string-literal-store-kebab.raw.tsx │ │ │ │ │ │ ├── string-literal-store.raw.tsx │ │ │ │ │ │ └── use-value-and-fn-from-store.raw.tsx │ │ │ │ │ ├── store-async-function.raw.tsx │ │ │ │ │ ├── styles/ │ │ │ │ │ │ ├── class-and-className.raw.tsx │ │ │ │ │ │ ├── class.raw.tsx │ │ │ │ │ │ ├── className.raw.tsx │ │ │ │ │ │ ├── classState.raw.tsx │ │ │ │ │ │ ├── style-class-and-css.raw.tsx │ │ │ │ │ │ ├── style-prop-class-and-css.raw.tsx │ │ │ │ │ │ ├── use-style-and-css.raw.tsx │ │ │ │ │ │ ├── use-style-outside-component.raw.tsx │ │ │ │ │ │ └── use-style.raw.tsx │ │ │ │ │ ├── sub-component.raw.tsx │ │ │ │ │ ├── svg.raw.tsx │ │ │ │ │ ├── swift/ │ │ │ │ │ │ ├── plain-component-export.raw.tsx │ │ │ │ │ │ └── single-quotes-replacement.raw.tsx │ │ │ │ │ ├── types/ │ │ │ │ │ │ ├── component-props-interface.raw.tsx │ │ │ │ │ │ ├── component-props-type.raw.tsx │ │ │ │ │ │ ├── component-with-default-values-types.raw.tsx │ │ │ │ │ │ ├── foo-props.ts │ │ │ │ │ │ ├── foo-store.ts │ │ │ │ │ │ ├── foo-type.ts │ │ │ │ │ │ ├── preserve-typing.raw.tsx │ │ │ │ │ │ ├── type-dependency.raw.tsx │ │ │ │ │ │ ├── type-export.lite.tsx │ │ │ │ │ │ ├── type-external-props.raw.tsx │ │ │ │ │ │ ├── type-external-store.raw.tsx │ │ │ │ │ │ └── type-getter-store.raw.tsx │ │ │ │ │ └── use-target.raw.tsx │ │ │ │ ├── hash-code.test.ts │ │ │ │ ├── html.test.ts │ │ │ │ ├── liquid.test.ts │ │ │ │ ├── lit.test.ts │ │ │ │ ├── local.test.ts │ │ │ │ ├── marko.test.ts │ │ │ │ ├── mitosis.test.ts │ │ │ │ ├── parse-jsx.test.ts │ │ │ │ ├── parse-svelte.test.ts │ │ │ │ ├── preact.test.ts │ │ │ │ ├── qwik/ │ │ │ │ │ ├── convert-method-to-function.test.ts │ │ │ │ │ ├── specs/ │ │ │ │ │ │ ├── qwik.test.accordion.json │ │ │ │ │ │ ├── qwik.test.bindings.json │ │ │ │ │ │ ├── qwik.test.button.json │ │ │ │ │ │ ├── qwik.test.component-binding.json │ │ │ │ │ │ ├── qwik.test.component-inputs.json │ │ │ │ │ │ ├── qwik.test.for-loop.binding.json │ │ │ │ │ │ ├── qwik.test.for-loop.json │ │ │ │ │ │ ├── qwik.test.hello_world.json │ │ │ │ │ │ ├── qwik.test.image.json │ │ │ │ │ │ ├── qwik.test.mount.json │ │ │ │ │ │ ├── qwik.test.page-with-symbol.json │ │ │ │ │ │ ├── qwik.test.show-hide.json │ │ │ │ │ │ └── qwik.test.svg.json │ │ │ │ │ ├── src-generator.test.ts │ │ │ │ │ └── stable-serializer.test.ts │ │ │ │ ├── qwik.directive.test.ts │ │ │ │ ├── qwik.test.ts │ │ │ │ ├── react-native.test.ts │ │ │ │ ├── react-state-builder.test.ts │ │ │ │ ├── react-state-mobx.test.ts │ │ │ │ ├── react-state-solid.test.ts │ │ │ │ ├── react-state-valtio.test.ts │ │ │ │ ├── react-state-variables.test.ts │ │ │ │ ├── react.test.ts │ │ │ │ ├── rsc.test.ts │ │ │ │ ├── solid.test.ts │ │ │ │ ├── stencil.test.ts │ │ │ │ ├── styles.test.ts │ │ │ │ ├── svelte.test.ts │ │ │ │ ├── swift.test.ts │ │ │ │ ├── syntax/ │ │ │ │ │ └── svelte/ │ │ │ │ │ ├── basic.raw.svelte │ │ │ │ │ ├── bind-group.raw.svelte │ │ │ │ │ ├── bind-property.raw.svelte │ │ │ │ │ ├── class-directive.raw.svelte │ │ │ │ │ ├── context.raw.svelte │ │ │ │ │ ├── each.raw.svelte │ │ │ │ │ ├── event-handlers.raw.svelte │ │ │ │ │ ├── html.raw.svelte │ │ │ │ │ ├── if-else.raw.svelte │ │ │ │ │ ├── imports.raw.svelte │ │ │ │ │ ├── lifecycle-hooks.raw.svelte │ │ │ │ │ ├── reactive-with-fn.raw.svelte │ │ │ │ │ ├── reactive.raw.svelte │ │ │ │ │ ├── slots.raw.svelte │ │ │ │ │ ├── style.raw.svelte │ │ │ │ │ └── text-expressions.raw.svelte │ │ │ │ ├── taro.test.ts │ │ │ │ ├── test-generator.ts │ │ │ │ ├── tsconfig.json │ │ │ │ ├── vue-composition.test.ts │ │ │ │ ├── vue.test.ts │ │ │ │ └── webcomponent.test.ts │ │ │ ├── constants/ │ │ │ │ ├── hooks.ts │ │ │ │ ├── html_tags.ts │ │ │ │ ├── media-sizes.ts │ │ │ │ └── method-literal-prefix.ts │ │ │ ├── flow.ts │ │ │ ├── generators/ │ │ │ │ ├── alpine/ │ │ │ │ │ ├── generate.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── render-mount-hook.ts │ │ │ │ │ ├── render-update-hooks.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── angular/ │ │ │ │ │ ├── README.md │ │ │ │ │ ├── classic/ │ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ │ ├── component.ts │ │ │ │ │ │ └── plugins/ │ │ │ │ │ │ ├── get-class-properties-plugin.ts │ │ │ │ │ │ └── get-code-processor-plugins.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── format.ts │ │ │ │ │ │ ├── get-inputs.ts │ │ │ │ │ │ ├── get-outputs.ts │ │ │ │ │ │ ├── get-refs.ts │ │ │ │ │ │ ├── get-styles.ts │ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── parse-selector.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── signals/ │ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ │ ├── component.ts │ │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ │ ├── get-computed.ts │ │ │ │ │ │ │ ├── get-dynamic-template-refs.ts │ │ │ │ │ │ │ ├── get-inputs.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── plugins/ │ │ │ │ │ │ └── get-code-processor-plugins.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── builder/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── context/ │ │ │ │ │ ├── angular.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ └── context-with-symbol-key.ts │ │ │ │ │ ├── qwik.ts │ │ │ │ │ ├── react.ts │ │ │ │ │ ├── rsc.ts │ │ │ │ │ ├── solid.ts │ │ │ │ │ ├── svelte.ts │ │ │ │ │ └── vue.ts │ │ │ │ ├── helpers/ │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── functions.ts │ │ │ │ │ ├── minify.ts │ │ │ │ │ ├── on-mount.ts │ │ │ │ │ └── rsc.ts │ │ │ │ ├── html/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── liquid/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── lit/ │ │ │ │ │ ├── collect-class-string.ts │ │ │ │ │ ├── generate.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── marko/ │ │ │ │ │ ├── generate.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── mitosis/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── qwik/ │ │ │ │ │ ├── component-generator.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── directives.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── add-prevent-default.ts │ │ │ │ │ │ ├── convert-method-to-function.ts │ │ │ │ │ │ ├── handlers.ts │ │ │ │ │ │ ├── stable-inject.ts │ │ │ │ │ │ ├── stable-serialize.ts │ │ │ │ │ │ ├── state.ts │ │ │ │ │ │ └── styles.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── jsx.ts │ │ │ │ │ ├── src-generator.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── react/ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── default-props.ts │ │ │ │ │ │ ├── hooks.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── state.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── react-native/ │ │ │ │ │ ├── extract-css-var-default-value.ts │ │ │ │ │ ├── helpers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── sanitize-react-native-block-styles.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── rsc/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── solid/ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ └── styles.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── state/ │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── signals.ts │ │ │ │ │ │ ├── state.ts │ │ │ │ │ │ └── store.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── stencil/ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ ├── component.ts │ │ │ │ │ ├── helpers/ │ │ │ │ │ │ ├── collect-class-string.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── plugins/ │ │ │ │ │ │ └── get-code-processor-plugins.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── svelte/ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ ├── helpers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── svelte.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── swift/ │ │ │ │ │ ├── blocks.ts │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── helpers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── taro/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── template/ │ │ │ │ │ ├── generator.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ └── vue/ │ │ │ │ ├── blocks.ts │ │ │ │ ├── compositionApi.ts │ │ │ │ ├── helpers.ts │ │ │ │ ├── index.ts │ │ │ │ ├── optionsApi.ts │ │ │ │ ├── types.ts │ │ │ │ └── vue.ts │ │ │ ├── helpers/ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ ├── babel-transform.test.ts.snap │ │ │ │ │ ├── generic-format.test.ts.snap │ │ │ │ │ ├── render-imports.test.ts.snap │ │ │ │ │ └── replace-identifiers.test.ts.snap │ │ │ │ ├── apply-meta-tagname.ts │ │ │ │ ├── babel-transform.test.ts │ │ │ │ ├── babel-transform.ts │ │ │ │ ├── bindings.ts │ │ │ │ ├── camel-case.ts │ │ │ │ ├── capitalize.ts │ │ │ │ ├── class-components.ts │ │ │ │ ├── component-file-extensions.ts │ │ │ │ ├── create-mitosis-component.ts │ │ │ │ ├── create-mitosis-context.ts │ │ │ │ ├── create-mitosis-node.ts │ │ │ │ ├── dash-case.ts │ │ │ │ ├── dedent.ts │ │ │ │ ├── event-handlers.ts │ │ │ │ ├── fast-clone.ts │ │ │ │ ├── filter-empty-text-nodes.ts │ │ │ │ ├── generic-format.test.ts │ │ │ │ ├── generic-format.ts │ │ │ │ ├── get-bindings.ts │ │ │ │ ├── get-child-components.ts │ │ │ │ ├── get-components-used.ts │ │ │ │ ├── get-components.ts │ │ │ │ ├── get-custom-imports.ts │ │ │ │ ├── get-function-string.ts │ │ │ │ ├── get-prop-functions.ts │ │ │ │ ├── get-props-ref.ts │ │ │ │ ├── get-props.ts │ │ │ │ ├── get-refs.ts │ │ │ │ ├── get-state-object-string.ts │ │ │ │ ├── get-state-used.ts │ │ │ │ ├── get-styles.ts │ │ │ │ ├── get-tag-name.ts │ │ │ │ ├── get-typed-function.ts │ │ │ │ ├── getters-to-functions.ts │ │ │ │ ├── handle-missing-state.ts │ │ │ │ ├── has-bindings-text.ts │ │ │ │ ├── has-component.ts │ │ │ │ ├── has-props.ts │ │ │ │ ├── has-stateful-dom.ts │ │ │ │ ├── has.ts │ │ │ │ ├── html-escape.ts │ │ │ │ ├── indent.ts │ │ │ │ ├── is-children.ts │ │ │ │ ├── is-component.ts │ │ │ │ ├── is-hook-empty.ts │ │ │ │ ├── is-html-attribute.ts │ │ │ │ ├── is-mitosis-node.ts │ │ │ │ ├── is-root-text-node.ts │ │ │ │ ├── is-upper-case.ts │ │ │ │ ├── is-valid-attribute-name.ts │ │ │ │ ├── json.ts │ │ │ │ ├── map-refs.ts │ │ │ │ ├── merge-options.ts │ │ │ │ ├── mitosis-imports.ts │ │ │ │ ├── nodes/ │ │ │ │ │ └── for.ts │ │ │ │ ├── nullable.ts │ │ │ │ ├── on-event.ts │ │ │ │ ├── output.ts │ │ │ │ ├── parse-node.ts │ │ │ │ ├── parsers.ts │ │ │ │ ├── patterns.ts │ │ │ │ ├── plugins/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ └── process-signals.test.ts.snap │ │ │ │ │ ├── process-code/ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── process-signals.test.ts │ │ │ │ │ ├── process-signals.ts │ │ │ │ │ └── process-target-blocks.ts │ │ │ │ ├── process-http-requests.ts │ │ │ │ ├── remove-surrounding-block.test.ts │ │ │ │ ├── remove-surrounding-block.ts │ │ │ │ ├── render-imports.test.ts │ │ │ │ ├── render-imports.ts │ │ │ │ ├── replace-identifiers.test.ts │ │ │ │ ├── replace-identifiers.ts │ │ │ │ ├── replace-new-lines-in-strings.ts │ │ │ │ ├── set.test.ts │ │ │ │ ├── set.ts │ │ │ │ ├── signals/ │ │ │ │ │ ├── index.ts │ │ │ │ │ └── signals.ts │ │ │ │ ├── slots.ts │ │ │ │ ├── state.ts │ │ │ │ ├── strip-meta-properties.ts │ │ │ │ ├── strip-state-and-props-refs.ts │ │ │ │ ├── styles/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── collect-css.test.ts.snap │ │ │ │ │ │ └── collect-styled-components.test.ts.snap │ │ │ │ │ ├── collect-css.test.ts │ │ │ │ │ ├── collect-css.ts │ │ │ │ │ ├── collect-styled-components.test.ts │ │ │ │ │ ├── collect-styled-components.ts │ │ │ │ │ └── helpers.ts │ │ │ │ ├── trace-reference-to-module-path.ts │ │ │ │ ├── transform-state-setters.ts │ │ │ │ ├── transform-to-jsx.ts │ │ │ │ ├── traverse-nodes.ts │ │ │ │ ├── try-prettier-format.ts │ │ │ │ ├── typescript-project.ts │ │ │ │ ├── typescript.ts │ │ │ │ └── web-components/ │ │ │ │ └── attribute-passing.ts │ │ │ ├── index.ts │ │ │ ├── internal-types.d.ts │ │ │ ├── modules/ │ │ │ │ └── plugins.ts │ │ │ ├── parsers/ │ │ │ │ ├── angular.ts │ │ │ │ ├── builder/ │ │ │ │ │ ├── builder.test.ts │ │ │ │ │ ├── builder.ts │ │ │ │ │ ├── helpers.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── context.ts │ │ │ │ ├── jsx/ │ │ │ │ │ ├── __snapshots__/ │ │ │ │ │ │ ├── props-types.test.ts.snap │ │ │ │ │ │ └── signals.test.ts.snap │ │ │ │ │ ├── ast.ts │ │ │ │ │ ├── component-types.ts │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── element-parser.ts │ │ │ │ │ ├── exports.ts │ │ │ │ │ ├── function-parser.ts │ │ │ │ │ ├── helpers.ts │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ ├── helpers.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── use-metadata.ts │ │ │ │ │ │ └── use-target.ts │ │ │ │ │ ├── imports.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── jsx.ts │ │ │ │ │ ├── props-types.test.ts │ │ │ │ │ ├── props-types.ts │ │ │ │ │ ├── props.ts │ │ │ │ │ ├── signals.test.ts │ │ │ │ │ ├── signals.ts │ │ │ │ │ ├── state.ts │ │ │ │ │ └── types.ts │ │ │ │ └── svelte/ │ │ │ │ ├── css/ │ │ │ │ │ └── index.ts │ │ │ │ ├── helpers/ │ │ │ │ │ ├── bindings.ts │ │ │ │ │ ├── children.ts │ │ │ │ │ ├── expressions.ts │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── mitosis-node.ts │ │ │ │ │ ├── post-process.ts │ │ │ │ │ └── string.ts │ │ │ │ ├── html/ │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── each.ts │ │ │ │ │ ├── element.ts │ │ │ │ │ ├── fragment.ts │ │ │ │ │ ├── if-else.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mustache-tag.ts │ │ │ │ │ ├── slot.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── index.ts │ │ │ │ ├── instance/ │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── expressions.ts │ │ │ │ │ ├── functions.ts │ │ │ │ │ ├── hooks.ts │ │ │ │ │ ├── imports.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── properties.ts │ │ │ │ │ ├── reactive.ts │ │ │ │ │ ├── references.ts │ │ │ │ │ └── statements.ts │ │ │ │ ├── module/ │ │ │ │ │ └── index.ts │ │ │ │ ├── types/ │ │ │ │ │ └── index.ts │ │ │ │ └── typescript/ │ │ │ │ └── index.ts │ │ │ ├── plugins/ │ │ │ │ ├── compile-away-builder-components.ts │ │ │ │ ├── compile-away-components.ts │ │ │ │ └── map-styles.ts │ │ │ ├── symbols/ │ │ │ │ └── symbol-processor.ts │ │ │ ├── targets.ts │ │ │ └── types/ │ │ │ ├── config.ts │ │ │ ├── json.ts │ │ │ ├── metadata.ts │ │ │ ├── mitosis-component.ts │ │ │ ├── mitosis-context.ts │ │ │ ├── mitosis-node.ts │ │ │ ├── mitosis-styles.ts │ │ │ ├── plugins.ts │ │ │ └── transpiler.ts │ │ ├── tsconfig.build.json │ │ ├── tsconfig.json │ │ ├── typings.d.ts │ │ └── vite.config.ts │ ├── docs/ │ │ ├── .eslintignore │ │ ├── .gitignore │ │ ├── .nvmrc │ │ ├── .prettierignore │ │ ├── .tool-versions │ │ ├── .vscode/ │ │ │ ├── launch.json │ │ │ ├── qwik-city.code-snippets │ │ │ └── qwik.code-snippets │ │ ├── README.md │ │ ├── adapters/ │ │ │ └── cloudflare-pages/ │ │ │ └── vite.config.ts │ │ ├── package.json │ │ ├── postcss.config.cjs │ │ ├── project.json │ │ ├── public/ │ │ │ ├── _headers │ │ │ ├── _redirects │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── scripts/ │ │ │ └── fix-node-modules.js │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── code-editor.tsx │ │ │ │ ├── code-rotator.tsx │ │ │ │ ├── footer.tsx │ │ │ │ ├── header.tsx │ │ │ │ ├── partytown/ │ │ │ │ │ └── partytown.tsx │ │ │ │ ├── router-head.tsx │ │ │ │ ├── search.tsx │ │ │ │ └── select.tsx │ │ │ ├── entry.cloudflare-pages.tsx │ │ │ ├── entry.dev.tsx │ │ │ ├── entry.preview.tsx │ │ │ ├── entry.ssr.tsx │ │ │ ├── global.css │ │ │ ├── root.tsx │ │ │ ├── routes/ │ │ │ │ ├── docs/ │ │ │ │ │ ├── cli/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── components/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── configuration/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── context/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── customizability/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── figma/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── gotchas/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── hooks/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── layout.tsx │ │ │ │ │ ├── overview/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── project-structure/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── quickstart/ │ │ │ │ │ │ └── index.mdx │ │ │ │ │ ├── right-sidebar.tsx │ │ │ │ │ ├── sidebar.tsx │ │ │ │ │ └── using-libraries/ │ │ │ │ │ └── index.mdx │ │ │ │ ├── index.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── playground/ │ │ │ │ │ └── index.tsx │ │ │ │ ├── playground-old/ │ │ │ │ │ └── index.tsx │ │ │ │ └── service-worker.ts │ │ │ └── services/ │ │ │ └── compile.ts │ │ ├── tailwind.config.js │ │ ├── tsconfig.json │ │ ├── vite.config.ts │ │ └── wrangler.toml │ ├── eslint-plugin/ │ │ ├── .npmrc │ │ ├── .yarnrc.yml │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── docs/ │ │ │ └── rules/ │ │ │ ├── css-no-vars.md │ │ │ ├── jsx-callback-arg-name.md │ │ │ ├── jsx-callback-arrow-function.md │ │ │ ├── no-assign-props-to-state.md │ │ │ ├── no-async-methods-on-state.md │ │ │ ├── no-conditional-logic-in-component-render.md │ │ │ ├── no-state-destructuring.md │ │ │ ├── no-var-declaration-in-jsx.md │ │ │ ├── no-var-declaration-or-assignment-in-component.md │ │ │ ├── no-var-name-same-as-prop-name.md │ │ │ ├── no-var-name-same-as-state-property.md │ │ │ ├── only-default-function-and-imports.md │ │ │ ├── prefer-show-over-ternary-operator.md │ │ │ ├── ref-no-current.md │ │ │ └── use-state-var-declarator.md │ │ ├── package.json │ │ ├── scripts/ │ │ │ └── remove-stableVersion.sh │ │ ├── src/ │ │ │ ├── configs/ │ │ │ │ └── recommended.ts │ │ │ ├── constants/ │ │ │ │ └── hooks.ts │ │ │ ├── helpers/ │ │ │ │ ├── __tests__/ │ │ │ │ │ └── isMitosisPath.ts │ │ │ │ ├── isMitosisPath.ts │ │ │ │ └── noOp.ts │ │ │ ├── index.ts │ │ │ ├── rules/ │ │ │ │ ├── __tests__/ │ │ │ │ │ ├── css-no-vars.test.ts │ │ │ │ │ ├── jsx-callback-arg-name.test.ts │ │ │ │ │ ├── jsx-callback-arrow-function.test.ts │ │ │ │ │ ├── no-assign-props-to-state.test.ts │ │ │ │ │ ├── no-async-methods-on-state.test.ts │ │ │ │ │ ├── no-conditional-logic-in-component-render.test.ts │ │ │ │ │ ├── no-map-function-in-jsx-return-body.test.ts │ │ │ │ │ ├── no-setter-with-same-name-as-state-prop.test.ts │ │ │ │ │ ├── no-state-destructuring.test.ts │ │ │ │ │ ├── no-var-declaration-in-jsx.test.ts │ │ │ │ │ ├── no-var-declaration-or-assignment-in-component.test.ts │ │ │ │ │ ├── no-var-name-same-as-prop-name.test.ts │ │ │ │ │ ├── no-var-name-same-as-state-property.test.ts │ │ │ │ │ ├── only-default-function-and-imports.test.ts │ │ │ │ │ ├── prefer-show-over-ternary-operator.test.ts │ │ │ │ │ ├── ref-no-current.test.ts │ │ │ │ │ ├── static-control-flow.test.ts │ │ │ │ │ └── use-state-var-declarator.test.ts │ │ │ │ ├── css-no-vars.ts │ │ │ │ ├── index.ts │ │ │ │ ├── jsx-callback-arg-name.ts │ │ │ │ ├── jsx-callback-arrow-function.ts │ │ │ │ ├── no-assign-props-to-state.ts │ │ │ │ ├── no-async-methods-on-state.ts │ │ │ │ ├── no-conditional-logic-in-component-render.ts │ │ │ │ ├── no-map-function-in-jsx-return-body.ts │ │ │ │ ├── no-setter-with-same-name-as-state-prop.ts │ │ │ │ ├── no-state-destructuring.ts │ │ │ │ ├── no-var-declaration-in-jsx.ts │ │ │ │ ├── no-var-declaration-or-assignment-in-component.ts │ │ │ │ ├── no-var-name-same-as-prop-name.ts │ │ │ │ ├── no-var-name-same-as-state-property.ts │ │ │ │ ├── only-default-function-and-imports.ts │ │ │ │ ├── prefer-show-over-ternary-operator.ts │ │ │ │ ├── ref-no-current.ts │ │ │ │ ├── static-control-flow.ts │ │ │ │ └── use-state-var-declarator.ts │ │ │ └── types.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── fiddle/ │ │ ├── .gitignore │ │ ├── .npmrc │ │ ├── next-env.d.ts │ │ ├── next.config.js │ │ ├── package.json │ │ ├── pages/ │ │ │ └── index.tsx │ │ ├── public/ │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ ├── App.tsx │ │ │ │ ├── Fiddle/ │ │ │ │ │ ├── Fiddle.tsx │ │ │ │ │ ├── Linter.ts │ │ │ │ │ ├── generate.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── JsxCodeEditor.tsx │ │ │ │ ├── Show.tsx │ │ │ │ ├── SvelteCodeEditor.tsx │ │ │ │ ├── Talk.tsx │ │ │ │ └── TextLink.tsx │ │ │ ├── constants/ │ │ │ │ ├── breakpoints.ts │ │ │ │ ├── colors.ts │ │ │ │ ├── device.ts │ │ │ │ ├── templates/ │ │ │ │ │ ├── jsx-templates.ts │ │ │ │ │ └── svelte-templates.ts │ │ │ │ └── theme.ts │ │ │ ├── functions/ │ │ │ │ ├── delete-query-param.ts │ │ │ │ ├── get-query-param.ts │ │ │ │ ├── local-storage-get.ts │ │ │ │ ├── local-storage-set.ts │ │ │ │ ├── prompt-upload-figma-file.ts │ │ │ │ └── set-query-param.ts │ │ │ ├── hooks/ │ │ │ │ ├── use-event-listener.ts │ │ │ │ └── use-reaction.ts │ │ │ ├── index.css │ │ │ └── react-app-env.d.ts │ │ └── tsconfig.json │ └── starter/ │ ├── .gitignore │ ├── .npmignore │ ├── CHANGELOG.md │ ├── jsconfig.json │ ├── package.json │ ├── package.tgz │ ├── script.cjs │ └── template/ │ ├── README.md │ ├── library/ │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── mitosis.config.cjs │ │ ├── package.json │ │ ├── packages/ │ │ │ ├── qwik/ │ │ │ │ ├── .eslintignore │ │ │ │ ├── .eslintrc.cjs │ │ │ │ ├── .gitignore │ │ │ │ ├── .prettierignore │ │ │ │ ├── package.json │ │ │ │ ├── tsconfig.json │ │ │ │ └── vite.config.ts │ │ │ ├── react/ │ │ │ │ ├── package.json │ │ │ │ └── tsconfig.json │ │ │ └── svelte/ │ │ │ ├── .gitignore │ │ │ ├── package.json │ │ │ ├── routes/ │ │ │ │ └── index/ │ │ │ │ └── +page.svelte │ │ │ ├── svelte.config.js │ │ │ ├── tsconfig.json │ │ │ └── vite.config.ts │ │ └── tsconfig.json │ ├── package.json │ └── test-apps/ │ ├── qwik/ │ │ ├── .eslintignore │ │ ├── .eslintrc.cjs │ │ ├── .gitignore │ │ ├── .prettierignore │ │ ├── package.json │ │ ├── public/ │ │ │ ├── manifest.json │ │ │ └── robots.txt │ │ ├── src/ │ │ │ ├── entry.dev.tsx │ │ │ ├── entry.preview.tsx │ │ │ ├── entry.ssr.tsx │ │ │ ├── root.tsx │ │ │ └── routes/ │ │ │ ├── index.tsx │ │ │ ├── layout.tsx │ │ │ └── service-worker.ts │ │ ├── tsconfig.json │ │ └── vite.config.ts │ ├── react/ │ │ ├── .gitignore │ │ ├── index.html │ │ ├── package.json │ │ ├── src/ │ │ │ ├── App.jsx │ │ │ ├── main.tsx │ │ │ └── vite-env.d.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vite.config.ts │ └── svelte/ │ ├── .gitignore │ ├── package.json │ ├── src/ │ │ ├── app.html │ │ └── routes/ │ │ └── +page.svelte │ ├── svelte.config.js │ └── vite.config.js └── tsconfig.json ================================================ FILE CONTENTS ================================================ ================================================ FILE: .changeset/README.md ================================================ # Changesets Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works with multi-package repos, or single-package repos to help you version and publish your code. You can find the full documentation for it [in our repository](https://github.com/changesets/changesets) We have a quick list of common questions to get you started engaging with this project in [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md) ================================================ FILE: .changeset/config.json ================================================ { "$schema": "https://unpkg.com/@changesets/config@3.0.0/schema.json", "changelog": "@changesets/cli/changelog", "commit": false, "fixed": [], "linked": [["@builder.io/mitosis", "@builder.io/mitosis-cli"]], "access": "public", "baseBranch": "origin/main", "updateInternalDependencies": "patch", "ignore": [ "@builder.io/mitosis-fiddle", "@builder.io/e2e-*", "@builder.io/*example*", "@e2e-app/*", "@builder.io/e2e*" ] } ================================================ FILE: .eslintignore ================================================ **/dist/ *.d.ts node_modules # ignore the starter package, it is not part of the workspace packages/starter/ ================================================ FILE: .eslintrc.js ================================================ module.exports = { env: { node: true, browser: true, }, parser: '@typescript-eslint/parser', // Specifies the ESLint parser plugins: ['@typescript-eslint', 'unused-imports'], extends: [], parserOptions: { ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features sourceType: 'module', // Allows for the use of imports ecmaFeatures: { jsx: true, // Allows for the parsing of JSX }, }, rules: { 'no-unused-vars': 'off', // or "@typescript-eslint/no-unused-vars": "off", 'unused-imports/no-unused-imports': 'error', }, }; ================================================ FILE: .gitattributes ================================================ *.json linguist-language=JSON-with-Comments /.yarn/releases/** binary /.yarn/plugins/** binary ================================================ FILE: .gitguardian.yml ================================================ matches-ignore: - name: public test API key match: 23dfd7cef1104af59f281d58ec525923 ================================================ FILE: .github/ISSUE_TEMPLATE/bug_report.yaml ================================================ name: 🐞 Bug Report description: Something does not work or is flaky? let us know! labels: [bug, triage] body: - type: markdown attributes: value: | Thanks for taking the time to fill out this bug report! We are always on the lookout for folks interested in becoming active contributors to Mitosis. Given its large surface area, there is a ton of room for any engineer to make a large and sustained impact on the project. We invest a ton of time in helping newcomers get onboarded, and teach them how to make changes to the codebase (see the following examples: [#847](https://github.com/BuilderIO/mitosis/issues/847#issuecomment-1307439504), [#372](https://github.com/BuilderIO/mitosis/issues/372#issuecomment-1133471614), [#734](https://github.com/BuilderIO/mitosis/issues/734#issuecomment-1255453702)). So consider ticking that "Yes" box below, and we'll do our best to set you up for success. 🙂 - type: dropdown id: help-fix validations: required: true attributes: label: I am interested in helping provide a fix! description: We will offer whatever guidance you need to contribute :) options: - "Yes" - "No" - type: checkboxes id: component attributes: label: Which generators are impacted? description: Select all the ones that apply, to the best of your knowledge. options: - label: All - label: Angular - label: HTML - label: Preact - label: Qwik - label: React - label: React-Native - label: Solid - label: Stencil - label: Svelte - label: Vue - label: Web components - type: input id: reproduction_fiddle attributes: description: A link to a https://mitosis.builder.io/playground playground show-casing the bug label: Reproduction case validations: required: true - type: textarea id: expected_behaviour attributes: description: A clear and concise description of what you expected to happen. label: Expected Behaviour validations: required: true - type: textarea id: actual_behaviour attributes: label: Actual Behaviour validations: required: true - type: textarea id: additional_information attributes: label: Additional Information validations: required: false ================================================ FILE: .github/ISSUE_TEMPLATE/feature_request.yaml ================================================ name: 🚀 Feature Proposal description: Suggest an idea for this project labels: [enhancement, triage] body: - type: markdown attributes: value: | Thanks for taking the time to fill out this feature proposal! We are always on the lookout for folks interested in becoming active contributors to Mitosis. Given its large surface area, there is a ton of room for any engineer to make a large and sustained impact on the project. So consider ticking that "Yes" box below, and we'll do our best to set you up for success. 🙂 - type: dropdown id: help-fix validations: required: true attributes: label: I am interested in helping provide a feature! description: We will offer whatever guidance you need to contribute :) options: - "Yes" - "No" - type: checkboxes id: component attributes: label: Which generators are impacted? description: Select all the ones that apply, to the best of your knowledge. options: - label: All - label: Angular - label: HTML - label: Qwik - label: React - label: React-Native - label: Solid - label: Stencil - label: Svelte - label: Vue - label: Web components - type: textarea id: problem-description attributes: description: | Explain your use case, context, and rationale behind this feature request. More importantly, what is the **end user experience** you are trying to build that led to the need for this feature?“ label: What problem does this feature solve? validations: required: true - type: textarea id: proposed-API attributes: label: What does the proposed API look like? description: | Describe how you propose to solve the problem and provide code samples of how the API would work once implemented. validations: required: true - type: textarea id: additional_information attributes: label: Additional Information validations: required: false ================================================ FILE: .github/actions/yarn-nm-install/action.yml ================================================ ######################################################################################## # "yarn install" composite action for yarn 3/4+ and "nodeLinker: node-modules" # #--------------------------------------------------------------------------------------# # Requirement: @setup/node should be run before # # # # Usage in workflows steps: # # # # - name: 📥 Monorepo install # # uses: ./.github/actions/yarn-nm-install # # with: # # enable-corepack: false # (default = 'false') # # cwd: ${{ github.workspace }}/apps/my-app # (default = '.') # # cache-prefix: add cache key prefix # (default = 'default') # # cache-node-modules: false # (default = 'false') # # cache-install-state: false # (default = 'false') # # # # Reference: # # - latest: https://gist.github.com/belgattitude/042f9caf10d029badbde6cf9d43e400a # # # # Versions: # # - 1.2.1 - 25-05-2024 - fix a missing action/cache not upraded to v4 # # - 1.2.0 - 01-05-2024 - action/cache upraded to v4 # # - 1.1.0 - 22-07-2023 - Option to enable npm global cache folder. # # - 1.0.4 - 15-07-2023 - Fix corepack was always enabled. # # - 1.0.3 - 05-07-2023 - YARN_ENABLE_MIRROR to false (speed up cold start) # # - 1.0.2 - 02-06-2023 - install-state default to false # # - 1.0.1 - 29-05-2023 - cache-prefix doc # # - 1.0.0 - 27-05-2023 - new input: cache-prefix # ######################################################################################## name: 'Monorepo install (yarn)' description: 'Run yarn install with node_modules linker and cache enabled' inputs: cwd: description: "Changes node's process.cwd() if the project is not located on the root. Default to process.cwd()" required: false default: '.' cache-prefix: description: 'Add a specific cache-prefix' required: false default: 'default' cache-npm-cache: description: 'Cache npm global cache folder often used by node-gyp, prebuild binaries (invalidated on lock/os/node-version)' required: false default: 'true' cache-node-modules: description: 'Cache node_modules, might speed up link step (invalidated lock/os/node-version/branch)' required: false default: 'false' cache-install-state: description: 'Cache yarn install state, might speed up resolution step when node-modules cache is activated (invalidated lock/os/node-version/branch)' required: false default: 'false' enable-corepack: description: 'Enable corepack' required: false default: 'true' runs: using: 'composite' steps: - name: ⚙️ Enable Corepack if: inputs.enable-corepack == 'true' shell: bash working-directory: ${{ inputs.cwd }} run: corepack enable - name: ⚙️ Expose yarn config as "$GITHUB_OUTPUT" id: yarn-config shell: bash working-directory: ${{ inputs.cwd }} env: YARN_ENABLE_GLOBAL_CACHE: 'false' run: | echo "CACHE_FOLDER=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT echo "CURRENT_NODE_VERSION="node-$(node --version)"" >> $GITHUB_OUTPUT echo "CURRENT_BRANCH=$(echo ${GITHUB_REF#refs/heads/} | sed -r 's,/,-,g')" >> $GITHUB_OUTPUT echo "NPM_GLOBAL_CACHE_FOLDER=$(npm config get cache)" >> $GITHUB_OUTPUT - name: ♻️ Restore yarn cache uses: actions/cache@v4 id: yarn-download-cache with: path: ${{ steps.yarn-config.outputs.CACHE_FOLDER }} key: yarn-download-cache-${{ inputs.cache-prefix }}-${{ hashFiles(format('{0}/yarn.lock', inputs.cwd), format('{0}/.yarnrc.yml', inputs.cwd)) }} restore-keys: | yarn-download-cache-${{ inputs.cache-prefix }}- - name: ♻️ Restore node_modules if: inputs.cache-node-modules == 'true' id: yarn-nm-cache uses: actions/cache@v4 with: path: ${{ inputs.cwd }}/**/node_modules key: yarn-nm-cache-${{ inputs.cache-prefix }}-${{ runner.os }}-${{ steps.yarn-config.outputs.CURRENT_NODE_VERSION }}-${{ steps.yarn-config.outputs.CURRENT_BRANCH }}-${{ hashFiles(format('{0}/yarn.lock', inputs.cwd), format('{0}/.yarnrc.yml', inputs.cwd)) }} - name: ♻️ Restore global npm cache folder if: inputs.cache-npm-cache == 'true' id: npm-global-cache uses: actions/cache@v4 with: path: ${{ steps.yarn-config.outputs.NPM_GLOBAL_CACHE_FOLDER }} key: npm-global-cache-${{ inputs.cache-prefix }}-${{ runner.os }}-${{ steps.yarn-config.outputs.CURRENT_NODE_VERSION }}-${{ hashFiles(format('{0}/yarn.lock', inputs.cwd), format('{0}/.yarnrc.yml', inputs.cwd)) }} - name: ♻️ Restore yarn install state if: inputs.cache-install-state == 'true' && inputs.cache-node-modules == 'true' id: yarn-install-state-cache uses: actions/cache@v4 with: path: ${{ inputs.cwd }}/.yarn/ci-cache key: yarn-install-state-cache-${{ inputs.cache-prefix }}-${{ runner.os }}-${{ steps.yarn-config.outputs.CURRENT_NODE_VERSION }}-${{ steps.yarn-config.outputs.CURRENT_BRANCH }}-${{ hashFiles(format('{0}/yarn.lock', inputs.cwd), format('{0}/.yarnrc.yml', inputs.cwd)) }} - name: 📥 Install dependencies shell: bash working-directory: ${{ inputs.cwd }} run: yarn install --immutable --inline-builds env: # Overrides/align yarnrc.yml options (v3, v4) for a CI context YARN_ENABLE_GLOBAL_CACHE: 'false' # Use local cache folder to keep downloaded archives YARN_ENABLE_MIRROR: 'false' # Prevent populating global cache for caches misses (local cache only) YARN_NM_MODE: 'hardlinks-local' # Reduce node_modules size YARN_INSTALL_STATE_PATH: '.yarn/ci-cache/install-state.gz' # Might speed up resolution step when node_modules present # Other environment variables HUSKY: '0' # By default do not run HUSKY install ================================================ FILE: .github/pull_request_template.md ================================================ ## Description Please provide the following information: - What changes you made: - Why you made them, and: - Any other useful context: Make sure to follow the PR preparation steps in [CONTRIBUTING.md](../CONTRIBUTING.md#preparing-your-pr) before submitting your PR: - [ ] format the codebase: from the root, run `yarn fmt:prettier`. - [ ] update all snapshots (in core & CLI): from the root, run `yarn test:update` - [ ] add Changeset entry: from the root, run `yarn g:changeset` and follow the CLI instructions. Alternatively, use the Changeset Github Bot to create the file. ================================================ FILE: .github/workflows/checks.yml ================================================ # This workflow runs when new change is pushed to repo OR when a new PR is created # It performs all of the tests to make sure everything is good. --- name: PR Runner on: workflow_dispatch: push: pull_request: env: NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} jobs: lint: runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: Lint run: yarn ci:lint build: runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: Build run: yarn ci:build test: runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: Run tests run: yarn ci:test test-update: if: always() && (needs.test.result == 'failure') needs: - test runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: 🏃🆙⏲️ Run test-update run: yarn test:update - name: 🆙 Upload snapshots uses: actions/upload-artifact@v4 with: name: snapshots-updates path: ./packages/core/src/**/__snapshots__ retention-days: 30 site: runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: Build Site run: yarn g:nx build @builder.io/mitosis-site e2e: runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: Build run: yarn ci:build - name: Run E2E tests run: yarn ci:e2e - name: 🆙 Upload test results if: failure() uses: actions/upload-artifact@v4 with: name: playwright-results path: ./e2e/e2e-app/test-results retention-days: 14 - name: 🆙 Upload e2e builds if: failure() uses: actions/upload-artifact@v4 with: name: e2e-builds path: | ./e2e/**/dist !**/node_modules/** retention-days: 14 ================================================ FILE: .github/workflows/crawl-docs-site.yml ================================================ name: Crawl the docs site with Meilisearch Cloud to update the contents to the latest on: push: branches: - main # We allow manually dispatching workflow when needed. Most often, this will not be needed. workflow_dispatch: jobs: crawler: runs-on: ubuntu-latest steps: - uses: meilisearch/actions/cloud-crawler@main with: token: ${{ secrets.MEILISEARCH_CLOUD_CRAWLER_TOKEN }} ================================================ FILE: .github/workflows/publish.yml ================================================ --- name: Publish on: push: branches: - main # We allow manually dispatching workflow when needed. Most often, this will not be needed. workflow_dispatch: concurrency: ${{ github.workflow }}-${{ github.ref }} jobs: publish-sdks: name: Publish package runs-on: ubuntu-latest steps: - name: Setup uses: actions/checkout@v4 with: # need this custom token to run CI checks on the created PR token: ${{ secrets.CUSTOM_GITHUB_TOKEN }} - name: Use Node.js uses: actions/setup-node@v4 with: node-version: 20 - name: 📥 Monorepo install uses: ./.github/actions/yarn-nm-install with: cache-node-modules: true cache-install-state: true - name: Create Release PR & Publish to npm id: changesets uses: changesets/action@v1 with: publish: yarn ci:release title: '📦 Publish Mitosis' commit: '📦 Publish Mitosis' env: # need this custom token to run CI checks on the created PR GITHUB_TOKEN: ${{ secrets.CUSTOM_GITHUB_TOKEN }} # probably don't need both of those, but it works! NPM_TOKEN: ${{ secrets.NPM_RELEASE_TOKEN }} NODE_AUTH_TOKEN: ${{ secrets.NPM_RELEASE_TOKEN }} ================================================ FILE: .gitignore ================================================ node_modules dist *.log .vscode/** !.vscode/extensions.json !.vscode/settings.json .idea coverage .DS_Store *.tsbuildinfo .cache fiddle/build/ packages/core/mitosis-build .history .pnp.* .eslintcache # ignore everything in .yarn folder, except the .yarn/patches and the .yarn/versions subfolders .yarn/* !/.yarn/patches !/.yarn/versions !/.yarn/releases # sveltekit tmp files **/package/__package_types_tmp__/ **/test-results/ **/playwright-report/ packages/core/src/__tests__/__snapshots__/local.test.ts.snap .nx/cache .nx-cache .nx/workspace-data ================================================ FILE: .npmrc ================================================ # avoid accidentally using npm # https://github.com/yarnpkg/yarn/issues/4895#issuecomment-545644733 engine-strict=true ================================================ FILE: .nvmrc ================================================ 20.11.0 ================================================ FILE: .prettierignore ================================================ coverage node_modules dist __snapshots__ packages/fiddle/build/** .yarn e2e/**/output/src/** e2e/e2e-app-vue3-output/vue3/src/** e2e/e2e-angular/angular_src/app/lib/** e2e/e2e-qwik/server/** e2e/e2e-app-qwik-output/src/e2e-app/** e2e/e2e-app-qwik-output/lib/** **/test-results/ **/playwright-report/ **/playwright/.cache/ # **/tsconfig.json examples/**/output/**/* e2e/e2e-app/output/**/src/**/* e2e/e2e-app/output/**/types/**/* packages/docs/server .angular .next # ignore the starter package, it is not part of the workspace # packages/starter/ ================================================ FILE: .prettierrc.js ================================================ module.exports = { printWidth: 100, tabWidth: 2, singleQuote: true, trailingComma: 'all', arrowParens: 'always', plugins: ['prettier-plugin-organize-imports'] }; ================================================ FILE: .tool-versions ================================================ nodejs 20.11.0 ================================================ FILE: .vscode/extensions.json ================================================ { "recommendations": [ "bradlc.vscode-tailwindcss", "dbaeumer.vscode-eslint", "esbenp.prettier-vscode", "ms-playwright.playwright" ] } ================================================ FILE: .vscode/settings.json ================================================ { "editor.codeActionsOnSave": { "source.fixAll": "explicit", "source.organizeImports": "explicit" }, "typescript.format.enable": true, "editor.formatOnSave": true, "typescript.tsdk": "node_modules/typescript/lib" } ================================================ FILE: .yarn/patches/@sveltejs-package-npm-1.0.0-next.1-2fd015530b.patch ================================================ diff --git a/src/index.js b/src/index.js index d751537bf1cff8a65be897172898406c44c55eeb..4de812ee92dbf8fcf300da6097900182bf7e655d 100644 --- a/src/index.js +++ b/src/index.js @@ -55,7 +55,7 @@ export async function build(config, cwd = process.cwd()) { } } - write(join(dir, 'package.json'), JSON.stringify(pkg, null, 2)); + write(join(dir, '--package.json'), JSON.stringify(pkg, null, 2)); for (const file of files) { await process_file(config, file); @@ -156,7 +156,7 @@ export async function watch(config, cwd = process.cwd()) { if (should_update_pkg) { const pkg = generate_pkg(cwd, files); - write(join(dir, 'package.json'), JSON.stringify(pkg, null, 2)); + write(join(dir, '--package.json'), JSON.stringify(pkg, null, 2)); console.log('Updated package.json'); } ================================================ FILE: .yarn/releases/yarn-4.1.1.cjs ================================================ #!/usr/bin/env node /* eslint-disable */ //prettier-ignore (()=>{var Z3e=Object.create;var NR=Object.defineProperty;var $3e=Object.getOwnPropertyDescriptor;var e_e=Object.getOwnPropertyNames;var t_e=Object.getPrototypeOf,r_e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+t+'" is not supported')});var Et=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Vt=(t,e)=>{for(var r in e)NR(t,r,{get:e[r],enumerable:!0})},n_e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of e_e(e))!r_e.call(t,a)&&a!==r&&NR(t,a,{get:()=>e[a],enumerable:!(o=$3e(e,a))||o.enumerable});return t};var $e=(t,e,r)=>(r=t!=null?Z3e(t_e(t)):{},n_e(e||!t||!t.__esModule?NR(r,"default",{value:t,enumerable:!0}):r,t));var vi={};Vt(vi,{SAFE_TIME:()=>x7,S_IFDIR:()=>wD,S_IFLNK:()=>ID,S_IFMT:()=>Ou,S_IFREG:()=>qw});var Ou,wD,qw,ID,x7,k7=Et(()=>{Ou=61440,wD=16384,qw=32768,ID=40960,x7=456789e3});var ar={};Vt(ar,{EBADF:()=>Io,EBUSY:()=>i_e,EEXIST:()=>u_e,EINVAL:()=>o_e,EISDIR:()=>c_e,ENOENT:()=>a_e,ENOSYS:()=>s_e,ENOTDIR:()=>l_e,ENOTEMPTY:()=>f_e,EOPNOTSUPP:()=>p_e,EROFS:()=>A_e,ERR_DIR_CLOSED:()=>LR});function Tl(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function i_e(t){return Tl("EBUSY",t)}function s_e(t,e){return Tl("ENOSYS",`${t}, ${e}`)}function o_e(t){return Tl("EINVAL",`invalid argument, ${t}`)}function Io(t){return Tl("EBADF",`bad file descriptor, ${t}`)}function a_e(t){return Tl("ENOENT",`no such file or directory, ${t}`)}function l_e(t){return Tl("ENOTDIR",`not a directory, ${t}`)}function c_e(t){return Tl("EISDIR",`illegal operation on a directory, ${t}`)}function u_e(t){return Tl("EEXIST",`file already exists, ${t}`)}function A_e(t){return Tl("EROFS",`read-only filesystem, ${t}`)}function f_e(t){return Tl("ENOTEMPTY",`directory not empty, ${t}`)}function p_e(t){return Tl("EOPNOTSUPP",`operation not supported, ${t}`)}function LR(){return Tl("ERR_DIR_CLOSED","Directory handle was closed")}var BD=Et(()=>{});var Ea={};Vt(Ea,{BigIntStatsEntry:()=>ty,DEFAULT_MODE:()=>UR,DirEntry:()=>OR,StatEntry:()=>ey,areStatsEqual:()=>_R,clearStats:()=>vD,convertToBigIntStats:()=>g_e,makeDefaultStats:()=>Q7,makeEmptyStats:()=>h_e});function Q7(){return new ey}function h_e(){return vD(Q7())}function vD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):MR.types.isDate(r)&&(t[e]=new Date(0))}return t}function g_e(t){let e=new ty;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):MR.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function _R(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var MR,UR,OR,ey,ty,HR=Et(()=>{MR=$e(ve("util")),UR=33188,OR=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ey=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=UR;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},ty=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(UR);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function C_e(t){let e,r;if(e=t.match(y_e))t=e[1];else if(r=t.match(E_e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function w_e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(d_e))?t=`/${e[1]}`:(r=t.match(m_e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function DD(t,e){return t===ue?R7(e):qR(e)}var jw,Bt,dr,ue,V,F7,d_e,m_e,y_e,E_e,qR,R7,Ca=Et(()=>{jw=$e(ve("path")),Bt={root:"/",dot:".",parent:".."},dr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},ue=Object.create(jw.default),V=Object.create(jw.default.posix);ue.cwd=()=>process.cwd();V.cwd=process.platform==="win32"?()=>qR(process.cwd()):process.cwd;process.platform==="win32"&&(V.resolve=(...t)=>t.length>0&&V.isAbsolute(t[0])?jw.default.posix.resolve(...t):jw.default.posix.resolve(V.cwd(),...t));F7=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};ue.contains=(t,e)=>F7(ue,t,e);V.contains=(t,e)=>F7(V,t,e);d_e=/^([a-zA-Z]:.*)$/,m_e=/^\/\/(\.\/)?(.*)$/,y_e=/^\/([a-zA-Z]:.*)$/,E_e=/^\/unc\/(\.dot\/)?(.*)$/;qR=process.platform==="win32"?w_e:t=>t,R7=process.platform==="win32"?C_e:t=>t;ue.fromPortablePath=R7;ue.toPortablePath=qR});async function SD(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function T7(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:Og,mtime:Og}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await jR(A,p,t,n,r,u,{...a,didParentExist:!0});for(let I of A)await I();await Promise.all(p.map(I=>I()))}async function jR(t,e,r,o,a,n,u){let A=u.didParentExist?await N7(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:Og,mtime:Og}:p,I;switch(!0){case p.isDirectory():I=await B_e(t,e,r,o,A,a,n,p,u);break;case p.isFile():I=await S_e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():I=await P_e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(u.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((I||A?.mtime?.getTime()!==E.getTime()||A?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),I=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),I=!0)),I}async function N7(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function B_e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(v){if(v.code!=="EEXIST")throw v}}),h=!0);let E=await n.readdirPromise(u),I=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let v of E.sort())await jR(t,e,r,r.pathUtils.join(o,v),n,n.pathUtils.join(u,v),I)&&(h=!0);else(await Promise.all(E.map(async x=>{await jR(t,e,r,r.pathUtils.join(o,x),n,n.pathUtils.join(u,x),I)}))).some(x=>x)&&(h=!0);return h}async function v_e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),I=420,v=A.mode&511,x=`${E}${v!==I?v.toString(8):""}`,C=r.pathUtils.join(h.indexPath,E.slice(0,2),`${x}.dat`),R;(ce=>(ce[ce.Lock=0]="Lock",ce[ce.Rename=1]="Rename"))(R||={});let L=1,U=await N7(r,C);if(a){let ae=U&&a.dev===U.dev&&a.ino===U.ino,fe=U?.mtimeMs!==I_e;if(ae&&fe&&h.autoRepair&&(L=0,U=null),!ae)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let J=!U&&L===1?`${C}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(L===0&&await r.lockPromise(C,async()=>{let ae=await n.readFilePromise(u);await r.writeFilePromise(C,ae)}),L===1&&J)){let ae=await n.readFilePromise(u);await r.writeFilePromise(J,ae);try{await r.linkPromise(J,C)}catch(fe){if(fe.code==="EEXIST")te=!0,await r.unlinkPromise(J);else throw fe}}a||await r.linkPromise(C,o)}),e.push(async()=>{U||(await r.lutimesPromise(C,Og,Og),v!==I&&await r.chmodPromise(C,v)),J&&!te&&await r.unlinkPromise(J)}),!1}async function D_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function S_e(t,e,r,o,a,n,u,A,p){return p.linkStrategy?.type==="HardlinkFromIndex"?v_e(t,e,r,o,a,n,u,A,p,p.linkStrategy):D_e(t,e,r,o,a,n,u,A,p)}async function P_e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(DD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var Og,I_e,GR=Et(()=>{Ca();Og=new Date(456789e3*1e3),I_e=Og.getTime()});function PD(t,e,r,o){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let u=t.pathUtils.join(e,n);return Object.assign(t.statSync(u),{name:n,path:void 0})};return new Gw(e,a,o)}var Gw,L7=Et(()=>{BD();Gw=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw LR()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function O7(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var M7,ry,U7=Et(()=>{M7=ve("events");HR();ry=class extends M7.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new ry(r,o,a);return n.start(),n}start(){O7(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){O7(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new ty:new ey;return vD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;_R(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function ny(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=bD.get(t);typeof p>"u"&&bD.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=ry.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function Mg(t,e,r){let o=bD.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function Ug(t){let e=bD.get(t);if(!(typeof e>"u"))for(let r of e.keys())Mg(t,r)}var bD,YR=Et(()=>{U7();bD=new WeakMap});function b_e(t){let e=t.match(/\r?\n/g);if(e===null)return H7.EOL;let r=e.filter(a=>a===`\r `).length,o=e.length-r;return r>o?`\r `:` `}function _g(t,e){return e.replace(/\r?\n/g,b_e(t))}var _7,H7,gf,Mu,Hg=Et(()=>{_7=ve("crypto"),H7=ve("os");GR();Ca();gf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,_7.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;nsetTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await T7(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(DD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?_g(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?_g(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r,{compact:o=!1}={}){let a=o?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} `)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} `)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},Mu=class extends gf{constructor(){super(V)}}});var Ss,df=Et(()=>{Hg();Ss=class extends gf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var Uu,q7=Et(()=>{df();Uu=class extends Ss{constructor(r,{baseFs:o,pathUtils:a}){super(a);this.target=r,this.baseFs=o}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(r){return r}mapToBase(r){return r}}});function j7(t){let e=t;return typeof t.path=="string"&&(e.path=ue.toPortablePath(t.path)),e}var G7,Tn,qg=Et(()=>{G7=$e(ve("fs"));Hg();Ca();Tn=class extends Mu{constructor(r=G7.default){super();this.realFs=r}getExtractHint(){return!1}getRealPath(){return Bt.root}resolve(r){return V.resolve(r)}async openPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.open(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}openSync(r,o,a){return this.realFs.openSync(ue.fromPortablePath(r),o,a)}async opendirPromise(r,o){return await new Promise((a,n)=>{typeof o<"u"?this.realFs.opendir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.opendir(ue.fromPortablePath(r),this.makeCallback(a,n))}).then(a=>{let n=a;return Object.defineProperty(n,"path",{value:r,configurable:!0,writable:!0}),n})}opendirSync(r,o){let n=typeof o<"u"?this.realFs.opendirSync(ue.fromPortablePath(r),o):this.realFs.opendirSync(ue.fromPortablePath(r));return Object.defineProperty(n,"path",{value:r,configurable:!0,writable:!0}),n}async readPromise(r,o,a=0,n=0,u=-1){return await new Promise((A,p)=>{this.realFs.read(r,o,a,n,u,(h,E)=>{h?p(h):A(E)})})}readSync(r,o,a,n,u){return this.realFs.readSync(r,o,a,n,u)}async writePromise(r,o,a,n,u){return await new Promise((A,p)=>typeof o=="string"?this.realFs.write(r,o,a,this.makeCallback(A,p)):this.realFs.write(r,o,a,n,u,this.makeCallback(A,p)))}writeSync(r,o,a,n,u){return typeof o=="string"?this.realFs.writeSync(r,o,a):this.realFs.writeSync(r,o,a,n,u)}async closePromise(r){await new Promise((o,a)=>{this.realFs.close(r,this.makeCallback(o,a))})}closeSync(r){this.realFs.closeSync(r)}createReadStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createReadStream(a,o)}createWriteStream(r,o){let a=r!==null?ue.fromPortablePath(r):r;return this.realFs.createWriteStream(a,o)}async realpathPromise(r){return await new Promise((o,a)=>{this.realFs.realpath(ue.fromPortablePath(r),{},this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}realpathSync(r){return ue.toPortablePath(this.realFs.realpathSync(ue.fromPortablePath(r),{}))}async existsPromise(r){return await new Promise(o=>{this.realFs.exists(ue.fromPortablePath(r),o)})}accessSync(r,o){return this.realFs.accessSync(ue.fromPortablePath(r),o)}async accessPromise(r,o){return await new Promise((a,n)=>{this.realFs.access(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}existsSync(r){return this.realFs.existsSync(ue.fromPortablePath(r))}async statPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.stat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.stat(ue.fromPortablePath(r),this.makeCallback(a,n))})}statSync(r,o){return o?this.realFs.statSync(ue.fromPortablePath(r),o):this.realFs.statSync(ue.fromPortablePath(r))}async fstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.fstat(r,o,this.makeCallback(a,n)):this.realFs.fstat(r,this.makeCallback(a,n))})}fstatSync(r,o){return o?this.realFs.fstatSync(r,o):this.realFs.fstatSync(r)}async lstatPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.lstat(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.lstat(ue.fromPortablePath(r),this.makeCallback(a,n))})}lstatSync(r,o){return o?this.realFs.lstatSync(ue.fromPortablePath(r),o):this.realFs.lstatSync(ue.fromPortablePath(r))}async fchmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.fchmod(r,o,this.makeCallback(a,n))})}fchmodSync(r,o){return this.realFs.fchmodSync(r,o)}async chmodPromise(r,o){return await new Promise((a,n)=>{this.realFs.chmod(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}chmodSync(r,o){return this.realFs.chmodSync(ue.fromPortablePath(r),o)}async fchownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.fchown(r,o,a,this.makeCallback(n,u))})}fchownSync(r,o,a){return this.realFs.fchownSync(r,o,a)}async chownPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.chown(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}chownSync(r,o,a){return this.realFs.chownSync(ue.fromPortablePath(r),o,a)}async renamePromise(r,o){return await new Promise((a,n)=>{this.realFs.rename(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}renameSync(r,o){return this.realFs.renameSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async copyFilePromise(r,o,a=0){return await new Promise((n,u)=>{this.realFs.copyFile(ue.fromPortablePath(r),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}copyFileSync(r,o,a=0){return this.realFs.copyFileSync(ue.fromPortablePath(r),ue.fromPortablePath(o),a)}async appendFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFile(A,o,a,this.makeCallback(n,u)):this.realFs.appendFile(A,o,this.makeCallback(n,u))})}appendFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.appendFileSync(n,o,a):this.realFs.appendFileSync(n,o)}async writeFilePromise(r,o,a){return await new Promise((n,u)=>{let A=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFile(A,o,a,this.makeCallback(n,u)):this.realFs.writeFile(A,o,this.makeCallback(n,u))})}writeFileSync(r,o,a){let n=typeof r=="string"?ue.fromPortablePath(r):r;a?this.realFs.writeFileSync(n,o,a):this.realFs.writeFileSync(n,o)}async unlinkPromise(r){return await new Promise((o,a)=>{this.realFs.unlink(ue.fromPortablePath(r),this.makeCallback(o,a))})}unlinkSync(r){return this.realFs.unlinkSync(ue.fromPortablePath(r))}async utimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.utimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}utimesSync(r,o,a){this.realFs.utimesSync(ue.fromPortablePath(r),o,a)}async lutimesPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.lutimes(ue.fromPortablePath(r),o,a,this.makeCallback(n,u))})}lutimesSync(r,o,a){this.realFs.lutimesSync(ue.fromPortablePath(r),o,a)}async mkdirPromise(r,o){return await new Promise((a,n)=>{this.realFs.mkdir(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}mkdirSync(r,o){return this.realFs.mkdirSync(ue.fromPortablePath(r),o)}async rmdirPromise(r,o){return await new Promise((a,n)=>{o?this.realFs.rmdir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.rmdir(ue.fromPortablePath(r),this.makeCallback(a,n))})}rmdirSync(r,o){return this.realFs.rmdirSync(ue.fromPortablePath(r),o)}async linkPromise(r,o){return await new Promise((a,n)=>{this.realFs.link(ue.fromPortablePath(r),ue.fromPortablePath(o),this.makeCallback(a,n))})}linkSync(r,o){return this.realFs.linkSync(ue.fromPortablePath(r),ue.fromPortablePath(o))}async symlinkPromise(r,o,a){return await new Promise((n,u)=>{this.realFs.symlink(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a,this.makeCallback(n,u))})}symlinkSync(r,o,a){return this.realFs.symlinkSync(ue.fromPortablePath(r.replace(/\/+$/,"")),ue.fromPortablePath(o),a)}async readFilePromise(r,o){return await new Promise((a,n)=>{let u=typeof r=="string"?ue.fromPortablePath(r):r;this.realFs.readFile(u,o,this.makeCallback(a,n))})}readFileSync(r,o){let a=typeof r=="string"?ue.fromPortablePath(r):r;return this.realFs.readFileSync(a,o)}async readdirPromise(r,o){return await new Promise((a,n)=>{o?o.recursive&&process.platform==="win32"?o.withFileTypes?this.realFs.readdir(ue.fromPortablePath(r),o,this.makeCallback(u=>a(u.map(j7)),n)):this.realFs.readdir(ue.fromPortablePath(r),o,this.makeCallback(u=>a(u.map(ue.toPortablePath)),n)):this.realFs.readdir(ue.fromPortablePath(r),o,this.makeCallback(a,n)):this.realFs.readdir(ue.fromPortablePath(r),this.makeCallback(a,n))})}readdirSync(r,o){return o?o.recursive&&process.platform==="win32"?o.withFileTypes?this.realFs.readdirSync(ue.fromPortablePath(r),o).map(j7):this.realFs.readdirSync(ue.fromPortablePath(r),o).map(ue.toPortablePath):this.realFs.readdirSync(ue.fromPortablePath(r),o):this.realFs.readdirSync(ue.fromPortablePath(r))}async readlinkPromise(r){return await new Promise((o,a)=>{this.realFs.readlink(ue.fromPortablePath(r),this.makeCallback(o,a))}).then(o=>ue.toPortablePath(o))}readlinkSync(r){return ue.toPortablePath(this.realFs.readlinkSync(ue.fromPortablePath(r)))}async truncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.truncate(ue.fromPortablePath(r),o,this.makeCallback(a,n))})}truncateSync(r,o){return this.realFs.truncateSync(ue.fromPortablePath(r),o)}async ftruncatePromise(r,o){return await new Promise((a,n)=>{this.realFs.ftruncate(r,o,this.makeCallback(a,n))})}ftruncateSync(r,o){return this.realFs.ftruncateSync(r,o)}watch(r,o,a){return this.realFs.watch(ue.fromPortablePath(r),o,a)}watchFile(r,o,a){return this.realFs.watchFile(ue.fromPortablePath(r),o,a)}unwatchFile(r,o){return this.realFs.unwatchFile(ue.fromPortablePath(r),o)}makeCallback(r,o){return(a,n)=>{a?o(a):r(n)}}}});var gn,Y7=Et(()=>{qg();df();Ca();gn=class extends Ss{constructor(r,{baseFs:o=new Tn}={}){super(V);this.target=this.pathUtils.normalize(r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(r){return this.pathUtils.isAbsolute(r)?V.normalize(r):this.baseFs.resolve(V.join(this.target,r))}mapFromBase(r){return r}mapToBase(r){return this.pathUtils.isAbsolute(r)?r:this.pathUtils.join(this.target,r)}}});var W7,_u,K7=Et(()=>{qg();df();Ca();W7=Bt.root,_u=class extends Ss{constructor(r,{baseFs:o=new Tn}={}){super(V);this.target=this.pathUtils.resolve(Bt.root,r),this.baseFs=o}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Bt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(r){let o=this.pathUtils.normalize(r);if(this.pathUtils.isAbsolute(r))return this.pathUtils.resolve(this.target,this.pathUtils.relative(W7,r));if(o.match(/^\.\.\/?/))throw new Error(`Resolving this path (${r}) would escape the jail`);return this.pathUtils.resolve(this.target,r)}mapFromBase(r){return this.pathUtils.resolve(W7,this.pathUtils.relative(this.target,r))}}});var iy,V7=Et(()=>{df();iy=class extends Ss{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var jg,wa,Hp,J7=Et(()=>{jg=ve("fs");Hg();qg();YR();BD();Ca();wa=4278190080,Hp=class extends Mu{constructor({baseFs:r=new Tn,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=jg.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:I}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=I,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(Ug(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(Ug(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&wa)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&wa)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&wa)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&wa)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw Io("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&wa)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&wa)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw Io("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=ue.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&wa)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&wa)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&wa)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&wa)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&wa)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&wa)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw Io("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if((a&jg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&jg.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if((a&jg.constants.COPYFILE_FICLONE_FORCE)!==0)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&jg.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&wa)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&wa)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw Io("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>ny(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>Mg(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.lstatSync(o).mode&jg.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(Bt.root,r.substring(o.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[u,{childFs:A,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||A.hasOpenFileHandles?.())){if(o>=p){A.saveAndClose?.(),this.mountInstances.delete(u),n-=1;continue}else if(r===null||n<=0){a=p;break}A.saveAndClose?.(),this.mountInstances.delete(u),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await o(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await o(a)}finally{a.saveAndClose?.()}}}getMountSync(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,o(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return o(a)}finally{a.saveAndClose?.()}}}}});var Zt,WR,Yw,z7=Et(()=>{Hg();Ca();Zt=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),WR=class extends gf{constructor(){super(V)}getExtractHint(){throw Zt()}getRealPath(){throw Zt()}resolve(){throw Zt()}async openPromise(){throw Zt()}openSync(){throw Zt()}async opendirPromise(){throw Zt()}opendirSync(){throw Zt()}async readPromise(){throw Zt()}readSync(){throw Zt()}async writePromise(){throw Zt()}writeSync(){throw Zt()}async closePromise(){throw Zt()}closeSync(){throw Zt()}createWriteStream(){throw Zt()}createReadStream(){throw Zt()}async realpathPromise(){throw Zt()}realpathSync(){throw Zt()}async readdirPromise(){throw Zt()}readdirSync(){throw Zt()}async existsPromise(e){throw Zt()}existsSync(e){throw Zt()}async accessPromise(){throw Zt()}accessSync(){throw Zt()}async statPromise(){throw Zt()}statSync(){throw Zt()}async fstatPromise(e){throw Zt()}fstatSync(e){throw Zt()}async lstatPromise(e){throw Zt()}lstatSync(e){throw Zt()}async fchmodPromise(){throw Zt()}fchmodSync(){throw Zt()}async chmodPromise(){throw Zt()}chmodSync(){throw Zt()}async fchownPromise(){throw Zt()}fchownSync(){throw Zt()}async chownPromise(){throw Zt()}chownSync(){throw Zt()}async mkdirPromise(){throw Zt()}mkdirSync(){throw Zt()}async rmdirPromise(){throw Zt()}rmdirSync(){throw Zt()}async linkPromise(){throw Zt()}linkSync(){throw Zt()}async symlinkPromise(){throw Zt()}symlinkSync(){throw Zt()}async renamePromise(){throw Zt()}renameSync(){throw Zt()}async copyFilePromise(){throw Zt()}copyFileSync(){throw Zt()}async appendFilePromise(){throw Zt()}appendFileSync(){throw Zt()}async writeFilePromise(){throw Zt()}writeFileSync(){throw Zt()}async unlinkPromise(){throw Zt()}unlinkSync(){throw Zt()}async utimesPromise(){throw Zt()}utimesSync(){throw Zt()}async lutimesPromise(){throw Zt()}lutimesSync(){throw Zt()}async readFilePromise(){throw Zt()}readFileSync(){throw Zt()}async readlinkPromise(){throw Zt()}readlinkSync(){throw Zt()}async truncatePromise(){throw Zt()}truncateSync(){throw Zt()}async ftruncatePromise(e,r){throw Zt()}ftruncateSync(e,r){throw Zt()}watch(){throw Zt()}watchFile(){throw Zt()}unwatchFile(){throw Zt()}},Yw=WR;Yw.instance=new WR});var qp,X7=Et(()=>{df();Ca();qp=class extends Ss{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return ue.fromPortablePath(r)}mapToBase(r){return ue.toPortablePath(r)}}});var x_e,KR,k_e,mi,Z7=Et(()=>{qg();df();Ca();x_e=/^[0-9]+$/,KR=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,k_e=/^([^/]+-)?[a-f0-9]+$/,mi=class extends Ss{constructor({baseFs:r=new Tn}={}){super(V);this.baseFs=r}static makeVirtualPath(r,o,a){if(V.basename(r)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!V.basename(o).match(k_e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let u=V.relative(V.dirname(r),a).split("/"),A=0;for(;A{VR=$e(ve("buffer")),$7=ve("url"),eY=ve("util");df();Ca();xD=class extends Ss{constructor(r){super(ue);this.baseFs=r}mapFromBase(r){return r}mapToBase(r){if(typeof r=="string")return r;if(r instanceof URL)return(0,$7.fileURLToPath)(r);if(Buffer.isBuffer(r)){let o=r.toString();if(!Q_e(r,o))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return o}throw new Error(`Unsupported path type: ${(0,eY.inspect)(r)}`)}}});var rY,Bo,mf,jp,kD,QD,sy,Tc,Nc,F_e,R_e,T_e,N_e,Ww,nY=Et(()=>{rY=ve("readline"),Bo=Symbol("kBaseFs"),mf=Symbol("kFd"),jp=Symbol("kClosePromise"),kD=Symbol("kCloseResolve"),QD=Symbol("kCloseReject"),sy=Symbol("kRefs"),Tc=Symbol("kRef"),Nc=Symbol("kUnref"),Ww=class{constructor(e,r){this[F_e]=1;this[R_e]=void 0;this[T_e]=void 0;this[N_e]=void 0;this[Bo]=r,this[mf]=e}get fd(){return this[mf]}async appendFile(e,r){try{this[Tc](this.appendFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;return await this[Bo].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Nc]()}}async chown(e,r){try{return this[Tc](this.chown),await this[Bo].fchownPromise(this.fd,e,r)}finally{this[Nc]()}}async chmod(e){try{return this[Tc](this.chmod),await this[Bo].fchmodPromise(this.fd,e)}finally{this[Nc]()}}createReadStream(e){return this[Bo].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[Bo].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[Tc](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??=0,o??=0,o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[Bo].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Nc]()}}async readFile(e){try{this[Tc](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[Bo].readFilePromise(this.fd,r)}finally{this[Nc]()}}readLines(e){return(0,rY.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[Tc](this.stat),await this[Bo].fstatPromise(this.fd,e)}finally{this[Nc]()}}async truncate(e){try{return this[Tc](this.truncate),await this[Bo].ftruncatePromise(this.fd,e)}finally{this[Nc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[Tc](this.writeFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;await this[Bo].writeFilePromise(this.fd,e,o)}finally{this[Nc]()}}async write(...e){try{if(this[Tc](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[Bo].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Nc]()}}async writev(e,r){try{this[Tc](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Nc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[mf]===-1)return Promise.resolve();if(this[jp])return this[jp];if(this[sy]--,this[sy]===0){let e=this[mf];this[mf]=-1,this[jp]=this[Bo].closePromise(e).finally(()=>{this[jp]=void 0})}else this[jp]=new Promise((e,r)=>{this[kD]=e,this[QD]=r}).finally(()=>{this[jp]=void 0,this[QD]=void 0,this[kD]=void 0});return this[jp]}[(Bo,mf,F_e=sy,R_e=jp,T_e=kD,N_e=QD,Tc)](e){if(this[mf]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[sy]++}[Nc](){if(this[sy]--,this[sy]===0){let e=this[mf];this[mf]=-1,this[Bo].closePromise(e).then(this[kD],this[QD])}}}});function Kw(t,e){e=new xD(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof u?.[oy.promisify.custom]<"u"&&(n[oy.promisify.custom]=u[oy.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of iY){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of L_e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of iY){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof Ww?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new Ww(n,e)})}t.read[oy.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[oy.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function FD(t,e){let r=Object.create(t);return Kw(r,e),r}var oy,L_e,iY,sY=Et(()=>{oy=ve("util");tY();nY();L_e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),iY=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function oY(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function aY(){if(JR)return JR;let t=ue.toPortablePath(lY.default.tmpdir()),e=oe.realpathSync(t);return process.once("exit",()=>{oe.rmtempSync()}),JR={tmpdir:t,realTmpdir:e}}var lY,Lc,JR,oe,cY=Et(()=>{lY=$e(ve("os"));qg();Ca();Lc=new Set,JR=null;oe=Object.assign(new Tn,{detachTemp(t){Lc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{this.mkdirSync(V.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=V.join(r,o);if(Lc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(Lc.has(a)){Lc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=aY();for(;;){let o=oY("xfs-");try{await this.mkdirPromise(V.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=V.join(r,o);if(Lc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(Lc.has(a)){Lc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(Lc.values()).map(async t=>{try{await oe.removePromise(t,{maxRetries:0}),Lc.delete(t)}catch{}}))},rmtempSync(){for(let t of Lc)try{oe.removeSync(t),Lc.delete(t)}catch{}}})});var Vw={};Vt(Vw,{AliasFS:()=>Uu,BasePortableFakeFS:()=>Mu,CustomDir:()=>Gw,CwdFS:()=>gn,FakeFS:()=>gf,Filename:()=>dr,JailFS:()=>_u,LazyFS:()=>iy,MountFS:()=>Hp,NoFS:()=>Yw,NodeFS:()=>Tn,PortablePath:()=>Bt,PosixFS:()=>qp,ProxiedFS:()=>Ss,VirtualFS:()=>mi,constants:()=>vi,errors:()=>ar,extendFs:()=>FD,normalizeLineEndings:()=>_g,npath:()=>ue,opendir:()=>PD,patchFs:()=>Kw,ppath:()=>V,setupCopyIndex:()=>SD,statUtils:()=>Ea,unwatchAllFiles:()=>Ug,unwatchFile:()=>Mg,watchFile:()=>ny,xfs:()=>oe});var St=Et(()=>{k7();BD();HR();GR();L7();YR();Hg();Ca();Ca();q7();Hg();Y7();K7();V7();J7();z7();qg();X7();df();Z7();sY();cY()});var hY=_((obt,pY)=>{pY.exports=fY;fY.sync=M_e;var uY=ve("fs");function O_e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o{yY.exports=dY;dY.sync=U_e;var gY=ve("fs");function dY(t,e,r){gY.stat(t,function(o,a){r(o,o?!1:mY(a,e))})}function U_e(t,e){return mY(gY.statSync(t),e)}function mY(t,e){return t.isFile()&&__e(t,e)}function __e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,I=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return I}});var wY=_((cbt,CY)=>{var lbt=ve("fs"),RD;process.platform==="win32"||global.TESTING_WINDOWS?RD=hY():RD=EY();CY.exports=zR;zR.sync=H_e;function zR(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){zR(t,e||{},function(n,u){n?a(n):o(u)})})}RD(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function H_e(t,e){try{return RD.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var bY=_((ubt,PY)=>{var ay=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",IY=ve("path"),q_e=ay?";":":",BY=wY(),vY=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),DY=(t,e)=>{let r=e.colon||q_e,o=t.match(/\//)||ay&&t.match(/\\/)?[""]:[...ay?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=ay?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=ay?a.split(r):[""];return ay&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},SY=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=DY(t,e),u=[],A=h=>new Promise((E,I)=>{if(h===o.length)return e.all&&u.length?E(u):I(vY(t));let v=o[h],x=/^".*"$/.test(v)?v.slice(1,-1):v,C=IY.join(x,t),R=!x&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(R,h,0))}),p=(h,E,I)=>new Promise((v,x)=>{if(I===a.length)return v(A(E+1));let C=a[I];BY(h+C,{pathExt:n},(R,L)=>{if(!R&&L)if(e.all)u.push(h+C);else return v(h+C);return v(p(h,E,I+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},j_e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=DY(t,e),n=[];for(let u=0;u{"use strict";var xY=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};XR.exports=xY;XR.exports.default=xY});var TY=_((fbt,RY)=>{"use strict";var QY=ve("path"),G_e=bY(),Y_e=kY();function FY(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=G_e.sync(t.command,{path:r[Y_e({env:r})],pathExt:e?QY.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=QY.resolve(a?t.options.cwd:"",u)),u}function W_e(t){return FY(t)||FY(t,!0)}RY.exports=W_e});var NY=_((pbt,$R)=>{"use strict";var ZR=/([()\][%!^"`<>&|;, *?])/g;function K_e(t){return t=t.replace(ZR,"^$1"),t}function V_e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(ZR,"^$1"),e&&(t=t.replace(ZR,"^$1")),t}$R.exports.command=K_e;$R.exports.argument=V_e});var OY=_((hbt,LY)=>{"use strict";LY.exports=/^#!(.*)/});var UY=_((gbt,MY)=>{"use strict";var J_e=OY();MY.exports=(t="")=>{let e=t.match(J_e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var HY=_((dbt,_Y)=>{"use strict";var eT=ve("fs"),z_e=UY();function X_e(t){let r=Buffer.alloc(150),o;try{o=eT.openSync(t,"r"),eT.readSync(o,r,0,150,0),eT.closeSync(o)}catch{}return z_e(r.toString())}_Y.exports=X_e});var YY=_((mbt,GY)=>{"use strict";var Z_e=ve("path"),qY=TY(),jY=NY(),$_e=HY(),e8e=process.platform==="win32",t8e=/\.(?:com|exe)$/i,r8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function n8e(t){t.file=qY(t);let e=t.file&&$_e(t.file);return e?(t.args.unshift(t.file),t.command=e,qY(t)):t.file}function i8e(t){if(!e8e)return t;let e=n8e(t),r=!t8e.test(e);if(t.options.forceShell||r){let o=r8e.test(e);t.command=Z_e.normalize(t.command),t.command=jY.command(t.command),t.args=t.args.map(n=>jY.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function s8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:i8e(o)}GY.exports=s8e});var VY=_((ybt,KY)=>{"use strict";var tT=process.platform==="win32";function rT(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function o8e(t,e){if(!tT)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=WY(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function WY(t,e){return tT&&t===1&&!e.file?rT(e.original,"spawn"):null}function a8e(t,e){return tT&&t===1&&!e.file?rT(e.original,"spawnSync"):null}KY.exports={hookChildProcess:o8e,verifyENOENT:WY,verifyENOENTSync:a8e,notFoundError:rT}});var sT=_((Ebt,ly)=>{"use strict";var JY=ve("child_process"),nT=YY(),iT=VY();function zY(t,e,r){let o=nT(t,e,r),a=JY.spawn(o.command,o.args,o.options);return iT.hookChildProcess(a,o),a}function l8e(t,e,r){let o=nT(t,e,r),a=JY.spawnSync(o.command,o.args,o.options);return a.error=a.error||iT.verifyENOENTSync(a.status,o),a}ly.exports=zY;ly.exports.spawn=zY;ly.exports.sync=l8e;ly.exports._parse=nT;ly.exports._enoent=iT});var ZY=_((Cbt,XY)=>{"use strict";function c8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Gg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Gg)}c8e(Gg,Error);Gg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I>",P=Br(">>",!1),y=">&",F=Br(">&",!1),z=">",X=Br(">",!1),Z="<<<",ie=Br("<<<",!1),Pe="<&",Ne=Br("<&",!1),ot="<",dt=Br("<",!1),jt=function(N){return{type:"argument",segments:[].concat(...N)}},$t=function(N){return N},bt="$'",an=Br("$'",!1),Qr="'",mr=Br("'",!1),br=function(N){return[{type:"text",text:N}]},Wr='""',Kn=Br('""',!1),Ns=function(){return{type:"text",text:""}},Ti='"',ps=Br('"',!1),io=function(N){return N},Pi=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Ls=function(N){return{type:"shell",shell:N,quoted:!0}},so=function(N){return{type:"variable",...N,quoted:!0}},cc=function(N){return{type:"text",text:N}},cu=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},lp=function(N){return{type:"shell",shell:N,quoted:!1}},cp=function(N){return{type:"variable",...N,quoted:!1}},Os=function(N){return{type:"glob",pattern:N}},Dn=/^[^']/,oo=Cs(["'"],!0,!1),Ms=function(N){return N.join("")},ml=/^[^$"]/,yl=Cs(["$",'"'],!0,!1),ao=`\\ `,Vn=Br(`\\ `,!1),On=function(){return""},Ni="\\",Mn=Br("\\",!1),_i=/^[\\$"`]/,tr=Cs(["\\","$",'"',"`"],!1,!1),Oe=function(N){return N},ii="\\a",Ma=Br("\\a",!1),hr=function(){return"a"},uc="\\b",uu=Br("\\b",!1),Ac=function(){return"\b"},El=/^[Ee]/,DA=Cs(["E","e"],!1,!1),Au=function(){return"\x1B"},Ce="\\f",Rt=Br("\\f",!1),fc=function(){return"\f"},Hi="\\n",fu=Br("\\n",!1),Yt=function(){return` `},Cl="\\r",SA=Br("\\r",!1),up=function(){return"\r"},pc="\\t",PA=Br("\\t",!1),Qn=function(){return" "},hi="\\v",hc=Br("\\v",!1),bA=function(){return"\v"},sa=/^[\\'"?]/,Li=Cs(["\\","'",'"',"?"],!1,!1),_o=function(N){return String.fromCharCode(parseInt(N,16))},Ze="\\x",lo=Br("\\x",!1),gc="\\u",pu=Br("\\u",!1),qi="\\U",hu=Br("\\U",!1),xA=function(N){return String.fromCodePoint(parseInt(N,16))},Ua=/^[0-7]/,dc=Cs([["0","7"]],!1,!1),hs=/^[0-9a-fA-f]/,_t=Cs([["0","9"],["a","f"],["A","f"]],!1,!1),Fn=ug(),Ci="{}",oa=Br("{}",!1),co=function(){return"{}"},Us="-",aa=Br("-",!1),la="+",Ho=Br("+",!1),wi=".",gs=Br(".",!1),ds=function(N,K,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(K.join("")+"."+re.join(""))}},ms=function(N,K){return{type:"number",value:(N==="-"?-1:1)*parseInt(K.join(""))}},_s=function(N){return{type:"variable",...N}},Un=function(N){return{type:"variable",name:N}},Sn=function(N){return N},ys="*",We=Br("*",!1),tt="/",It=Br("/",!1),nr=function(N,K,re){return{type:K==="*"?"multiplication":"division",right:re}},$=function(N,K){return K.reduce((re,pe)=>({left:re,...pe}),N)},ye=function(N,K,re){return{type:K==="+"?"addition":"subtraction",right:re}},Le="$((",pt=Br("$((",!1),ht="))",Tt=Br("))",!1),er=function(N){return N},$r="$(",ji=Br("$(",!1),es=function(N){return N},bi="${",qo=Br("${",!1),kA=":-",QA=Br(":-",!1),Ap=function(N,K){return{name:N,defaultValue:K}},ig=":-}",gu=Br(":-}",!1),sg=function(N){return{name:N,defaultValue:[]}},du=":+",uo=Br(":+",!1),FA=function(N,K){return{name:N,alternativeValue:K}},mc=":+}",ca=Br(":+}",!1),og=function(N){return{name:N,alternativeValue:[]}},yc=function(N){return{name:N}},Pm="$",ag=Br("$",!1),$n=function(N){return e.isGlobPattern(N)},fp=function(N){return N},lg=/^[a-zA-Z0-9_]/,RA=Cs([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Hs=function(){return cg()},mu=/^[$@*?#a-zA-Z0-9_\-]/,Ha=Cs(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Gi=/^[()}<>$|&; \t"']/,ua=Cs(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),yu=/^[<>&; \t"']/,Es=Cs(["<",">","&",";"," "," ",'"',"'"],!1,!1),Ec=/^[ \t]/,Cc=Cs([" "," "],!1,!1),G=0,Dt=0,wl=[{line:1,column:1}],xi=0,wc=[],ct=0,Eu;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function cg(){return t.substring(Dt,G)}function yw(){return Ic(Dt,G)}function TA(N,K){throw K=K!==void 0?K:Ic(Dt,G),pg([fg(N)],t.substring(Dt,G),K)}function pp(N,K){throw K=K!==void 0?K:Ic(Dt,G),bm(N,K)}function Br(N,K){return{type:"literal",text:N,ignoreCase:K}}function Cs(N,K,re){return{type:"class",parts:N,inverted:K,ignoreCase:re}}function ug(){return{type:"any"}}function Ag(){return{type:"end"}}function fg(N){return{type:"other",description:N}}function hp(N){var K=wl[N],re;if(K)return K;for(re=N-1;!wl[re];)re--;for(K=wl[re],K={line:K.line,column:K.column};rexi&&(xi=G,wc=[]),wc.push(N))}function bm(N,K){return new Gg(N,null,null,K)}function pg(N,K,re){return new Gg(Gg.buildMessage(N,K),N,K,re)}function hg(){var N,K,re;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=Cu(),re===r&&(re=null),re!==r?(Dt=N,K=n(re),N=K):(G=N,N=r)):(G=N,N=r),N}function Cu(){var N,K,re,pe,ze;if(N=G,K=wu(),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();re!==r?(pe=gg(),pe!==r?(ze=xm(),ze===r&&(ze=null),ze!==r?(Dt=N,K=u(K,pe,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;if(N===r)if(N=G,K=wu(),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();re!==r?(pe=gg(),pe===r&&(pe=null),pe!==r?(Dt=N,K=A(K,pe),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function xm(){var N,K,re,pe,ze;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Cu(),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=p(re),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function gg(){var N;return t.charCodeAt(G)===59?(N=h,G++):(N=r,ct===0&&Ct(E)),N===r&&(t.charCodeAt(G)===38?(N=I,G++):(N=r,ct===0&&Ct(v))),N}function wu(){var N,K,re;return N=G,K=Aa(),K!==r?(re=Ew(),re===r&&(re=null),re!==r?(Dt=N,K=x(K,re),N=K):(G=N,N=r)):(G=N,N=r),N}function Ew(){var N,K,re,pe,ze,mt,fr;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=km(),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=wu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=C(re,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function km(){var N;return t.substr(G,2)===R?(N=R,G+=2):(N=r,ct===0&&Ct(L)),N===r&&(t.substr(G,2)===U?(N=U,G+=2):(N=r,ct===0&&Ct(J))),N}function Aa(){var N,K,re;return N=G,K=dg(),K!==r?(re=Bc(),re===r&&(re=null),re!==r?(Dt=N,K=te(K,re),N=K):(G=N,N=r)):(G=N,N=r),N}function Bc(){var N,K,re,pe,ze,mt,fr;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(re=Il(),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=Aa(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=ae(re,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;return N}function Il(){var N;return t.substr(G,2)===fe?(N=fe,G+=2):(N=r,ct===0&&Ct(ce)),N===r&&(t.charCodeAt(G)===124?(N=me,G++):(N=r,ct===0&&Ct(he))),N}function Iu(){var N,K,re,pe,ze,mt;if(N=G,K=Cg(),K!==r)if(t.charCodeAt(G)===61?(re=Be,G++):(re=r,ct===0&&Ct(we)),re!==r)if(pe=jo(),pe!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(Dt=N,K=g(K,pe),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;else G=N,N=r;if(N===r)if(N=G,K=Cg(),K!==r)if(t.charCodeAt(G)===61?(re=Be,G++):(re=r,ct===0&&Ct(we)),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=Ee(K),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r;return N}function dg(){var N,K,re,pe,ze,mt,fr,Cr,yn,oi,Oi;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(t.charCodeAt(G)===40?(re=Se,G++):(re=r,ct===0&&Ct(le)),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=Cu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(G)===41?(fr=ne,G++):(fr=r,ct===0&&Ct(ee)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=qa();oi!==r;)yn.push(oi),oi=qa();if(yn!==r){for(oi=[],Oi=Qt();Oi!==r;)oi.push(Oi),Oi=Qt();oi!==r?(Dt=N,K=Ie(ze,yn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r)if(t.charCodeAt(G)===123?(re=Fe,G++):(re=r,ct===0&&Ct(At)),re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r)if(ze=Cu(),ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();if(mt!==r)if(t.charCodeAt(G)===125?(fr=H,G++):(fr=r,ct===0&&Ct(at)),fr!==r){for(Cr=[],yn=Qt();yn!==r;)Cr.push(yn),yn=Qt();if(Cr!==r){for(yn=[],oi=qa();oi!==r;)yn.push(oi),oi=qa();if(yn!==r){for(oi=[],Oi=Qt();Oi!==r;)oi.push(Oi),Oi=Qt();oi!==r?(Dt=N,K=Re(ze,yn),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r}else G=N,N=r;else G=N,N=r;if(N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){for(re=[],pe=Iu();pe!==r;)re.push(pe),pe=Iu();if(re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();if(pe!==r){if(ze=[],mt=gp(),mt!==r)for(;mt!==r;)ze.push(mt),mt=gp();else ze=r;if(ze!==r){for(mt=[],fr=Qt();fr!==r;)mt.push(fr),fr=Qt();mt!==r?(Dt=N,K=ke(re,ze),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}else G=N,N=r}else G=N,N=r;if(N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){if(re=[],pe=Iu(),pe!==r)for(;pe!==r;)re.push(pe),pe=Iu();else re=r;if(re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=xe(re),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r}}}return N}function NA(){var N,K,re,pe,ze;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r){if(re=[],pe=dp(),pe!==r)for(;pe!==r;)re.push(pe),pe=dp();else re=r;if(re!==r){for(pe=[],ze=Qt();ze!==r;)pe.push(ze),ze=Qt();pe!==r?(Dt=N,K=He(re),N=K):(G=N,N=r)}else G=N,N=r}else G=N,N=r;return N}function gp(){var N,K,re;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();if(K!==r?(re=qa(),re!==r?(Dt=N,K=Te(re),N=K):(G=N,N=r)):(G=N,N=r),N===r){for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();K!==r?(re=dp(),re!==r?(Dt=N,K=Te(re),N=K):(G=N,N=r)):(G=N,N=r)}return N}function qa(){var N,K,re,pe,ze;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(Je.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(qe)),re===r&&(re=null),re!==r?(pe=mg(),pe!==r?(ze=dp(),ze!==r?(Dt=N,K=b(re,pe,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function mg(){var N;return t.substr(G,2)===w?(N=w,G+=2):(N=r,ct===0&&Ct(P)),N===r&&(t.substr(G,2)===y?(N=y,G+=2):(N=r,ct===0&&Ct(F)),N===r&&(t.charCodeAt(G)===62?(N=z,G++):(N=r,ct===0&&Ct(X)),N===r&&(t.substr(G,3)===Z?(N=Z,G+=3):(N=r,ct===0&&Ct(ie)),N===r&&(t.substr(G,2)===Pe?(N=Pe,G+=2):(N=r,ct===0&&Ct(Ne)),N===r&&(t.charCodeAt(G)===60?(N=ot,G++):(N=r,ct===0&&Ct(dt))))))),N}function dp(){var N,K,re;for(N=G,K=[],re=Qt();re!==r;)K.push(re),re=Qt();return K!==r?(re=jo(),re!==r?(Dt=N,K=Te(re),N=K):(G=N,N=r)):(G=N,N=r),N}function jo(){var N,K,re;if(N=G,K=[],re=ws(),re!==r)for(;re!==r;)K.push(re),re=ws();else K=r;return K!==r&&(Dt=N,K=jt(K)),N=K,N}function ws(){var N,K;return N=G,K=Ii(),K!==r&&(Dt=N,K=$t(K)),N=K,N===r&&(N=G,K=Qm(),K!==r&&(Dt=N,K=$t(K)),N=K,N===r&&(N=G,K=Fm(),K!==r&&(Dt=N,K=$t(K)),N=K,N===r&&(N=G,K=Go(),K!==r&&(Dt=N,K=$t(K)),N=K))),N}function Ii(){var N,K,re,pe;return N=G,t.substr(G,2)===bt?(K=bt,G+=2):(K=r,ct===0&&Ct(an)),K!==r?(re=ln(),re!==r?(t.charCodeAt(G)===39?(pe=Qr,G++):(pe=r,ct===0&&Ct(mr)),pe!==r?(Dt=N,K=br(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Qm(){var N,K,re,pe;return N=G,t.charCodeAt(G)===39?(K=Qr,G++):(K=r,ct===0&&Ct(mr)),K!==r?(re=yp(),re!==r?(t.charCodeAt(G)===39?(pe=Qr,G++):(pe=r,ct===0&&Ct(mr)),pe!==r?(Dt=N,K=br(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Fm(){var N,K,re,pe;if(N=G,t.substr(G,2)===Wr?(K=Wr,G+=2):(K=r,ct===0&&Ct(Kn)),K!==r&&(Dt=N,K=Ns()),N=K,N===r)if(N=G,t.charCodeAt(G)===34?(K=Ti,G++):(K=r,ct===0&&Ct(ps)),K!==r){for(re=[],pe=LA();pe!==r;)re.push(pe),pe=LA();re!==r?(t.charCodeAt(G)===34?(pe=Ti,G++):(pe=r,ct===0&&Ct(ps)),pe!==r?(Dt=N,K=io(re),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;return N}function Go(){var N,K,re;if(N=G,K=[],re=mp(),re!==r)for(;re!==r;)K.push(re),re=mp();else K=r;return K!==r&&(Dt=N,K=io(K)),N=K,N}function LA(){var N,K;return N=G,K=Gr(),K!==r&&(Dt=N,K=Pi(K)),N=K,N===r&&(N=G,K=Ep(),K!==r&&(Dt=N,K=Ls(K)),N=K,N===r&&(N=G,K=Dc(),K!==r&&(Dt=N,K=so(K)),N=K,N===r&&(N=G,K=yg(),K!==r&&(Dt=N,K=cc(K)),N=K))),N}function mp(){var N,K;return N=G,K=Gr(),K!==r&&(Dt=N,K=cu(K)),N=K,N===r&&(N=G,K=Ep(),K!==r&&(Dt=N,K=lp(K)),N=K,N===r&&(N=G,K=Dc(),K!==r&&(Dt=N,K=cp(K)),N=K,N===r&&(N=G,K=Cw(),K!==r&&(Dt=N,K=Os(K)),N=K,N===r&&(N=G,K=pa(),K!==r&&(Dt=N,K=cc(K)),N=K)))),N}function yp(){var N,K,re;for(N=G,K=[],Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo));re!==r;)K.push(re),Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo));return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function yg(){var N,K,re;if(N=G,K=[],re=fa(),re===r&&(ml.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(yl))),re!==r)for(;re!==r;)K.push(re),re=fa(),re===r&&(ml.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(yl)));else K=r;return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function fa(){var N,K,re;return N=G,t.substr(G,2)===ao?(K=ao,G+=2):(K=r,ct===0&&Ct(Vn)),K!==r&&(Dt=N,K=On()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(_i.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(tr)),re!==r?(Dt=N,K=Oe(re),N=K):(G=N,N=r)):(G=N,N=r)),N}function ln(){var N,K,re;for(N=G,K=[],re=Ao(),re===r&&(Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo)));re!==r;)K.push(re),re=Ao(),re===r&&(Dn.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(oo)));return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function Ao(){var N,K,re;return N=G,t.substr(G,2)===ii?(K=ii,G+=2):(K=r,ct===0&&Ct(Ma)),K!==r&&(Dt=N,K=hr()),N=K,N===r&&(N=G,t.substr(G,2)===uc?(K=uc,G+=2):(K=r,ct===0&&Ct(uu)),K!==r&&(Dt=N,K=Ac()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(El.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(DA)),re!==r?(Dt=N,K=Au(),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Ce?(K=Ce,G+=2):(K=r,ct===0&&Ct(Rt)),K!==r&&(Dt=N,K=fc()),N=K,N===r&&(N=G,t.substr(G,2)===Hi?(K=Hi,G+=2):(K=r,ct===0&&Ct(fu)),K!==r&&(Dt=N,K=Yt()),N=K,N===r&&(N=G,t.substr(G,2)===Cl?(K=Cl,G+=2):(K=r,ct===0&&Ct(SA)),K!==r&&(Dt=N,K=up()),N=K,N===r&&(N=G,t.substr(G,2)===pc?(K=pc,G+=2):(K=r,ct===0&&Ct(PA)),K!==r&&(Dt=N,K=Qn()),N=K,N===r&&(N=G,t.substr(G,2)===hi?(K=hi,G+=2):(K=r,ct===0&&Ct(hc)),K!==r&&(Dt=N,K=bA()),N=K,N===r&&(N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(sa.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(Li)),re!==r?(Dt=N,K=Oe(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=OA()))))))))),N}function OA(){var N,K,re,pe,ze,mt,fr,Cr,yn,oi,Oi,Ig;return N=G,t.charCodeAt(G)===92?(K=Ni,G++):(K=r,ct===0&&Ct(Mn)),K!==r?(re=ja(),re!==r?(Dt=N,K=_o(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===Ze?(K=Ze,G+=2):(K=r,ct===0&&Ct(lo)),K!==r?(re=G,pe=G,ze=ja(),ze!==r?(mt=si(),mt!==r?(ze=[ze,mt],pe=ze):(G=pe,pe=r)):(G=pe,pe=r),pe===r&&(pe=ja()),pe!==r?re=t.substring(re,G):re=pe,re!==r?(Dt=N,K=_o(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===gc?(K=gc,G+=2):(K=r,ct===0&&Ct(pu)),K!==r?(re=G,pe=G,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(ze=[ze,mt,fr,Cr],pe=ze):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r),pe!==r?re=t.substring(re,G):re=pe,re!==r?(Dt=N,K=_o(re),N=K):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===qi?(K=qi,G+=2):(K=r,ct===0&&Ct(hu)),K!==r?(re=G,pe=G,ze=si(),ze!==r?(mt=si(),mt!==r?(fr=si(),fr!==r?(Cr=si(),Cr!==r?(yn=si(),yn!==r?(oi=si(),oi!==r?(Oi=si(),Oi!==r?(Ig=si(),Ig!==r?(ze=[ze,mt,fr,Cr,yn,oi,Oi,Ig],pe=ze):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r)):(G=pe,pe=r),pe!==r?re=t.substring(re,G):re=pe,re!==r?(Dt=N,K=xA(re),N=K):(G=N,N=r)):(G=N,N=r)))),N}function ja(){var N;return Ua.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(dc)),N}function si(){var N;return hs.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(_t)),N}function pa(){var N,K,re,pe,ze;if(N=G,K=[],re=G,t.charCodeAt(G)===92?(pe=Ni,G++):(pe=r,ct===0&&Ct(Mn)),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r),re===r&&(re=G,t.substr(G,2)===Ci?(pe=Ci,G+=2):(pe=r,ct===0&&Ct(oa)),pe!==r&&(Dt=re,pe=co()),re=pe,re===r&&(re=G,pe=G,ct++,ze=Rm(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r))),re!==r)for(;re!==r;)K.push(re),re=G,t.charCodeAt(G)===92?(pe=Ni,G++):(pe=r,ct===0&&Ct(Mn)),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r),re===r&&(re=G,t.substr(G,2)===Ci?(pe=Ci,G+=2):(pe=r,ct===0&&Ct(oa)),pe!==r&&(Dt=re,pe=co()),re=pe,re===r&&(re=G,pe=G,ct++,ze=Rm(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r)));else K=r;return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function vc(){var N,K,re,pe,ze,mt;if(N=G,t.charCodeAt(G)===45?(K=Us,G++):(K=r,ct===0&&Ct(aa)),K===r&&(t.charCodeAt(G)===43?(K=la,G++):(K=r,ct===0&&Ct(Ho))),K===r&&(K=null),K!==r){if(re=[],Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe)),pe!==r)for(;pe!==r;)re.push(pe),Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe));else re=r;if(re!==r)if(t.charCodeAt(G)===46?(pe=wi,G++):(pe=r,ct===0&&Ct(gs)),pe!==r){if(ze=[],Je.test(t.charAt(G))?(mt=t.charAt(G),G++):(mt=r,ct===0&&Ct(qe)),mt!==r)for(;mt!==r;)ze.push(mt),Je.test(t.charAt(G))?(mt=t.charAt(G),G++):(mt=r,ct===0&&Ct(qe));else ze=r;ze!==r?(Dt=N,K=ds(K,re,ze),N=K):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;if(N===r){if(N=G,t.charCodeAt(G)===45?(K=Us,G++):(K=r,ct===0&&Ct(aa)),K===r&&(t.charCodeAt(G)===43?(K=la,G++):(K=r,ct===0&&Ct(Ho))),K===r&&(K=null),K!==r){if(re=[],Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe)),pe!==r)for(;pe!==r;)re.push(pe),Je.test(t.charAt(G))?(pe=t.charAt(G),G++):(pe=r,ct===0&&Ct(qe));else re=r;re!==r?(Dt=N,K=ms(K,re),N=K):(G=N,N=r)}else G=N,N=r;if(N===r&&(N=G,K=Dc(),K!==r&&(Dt=N,K=_s(K)),N=K,N===r&&(N=G,K=Ga(),K!==r&&(Dt=N,K=Un(K)),N=K,N===r)))if(N=G,t.charCodeAt(G)===40?(K=Se,G++):(K=r,ct===0&&Ct(le)),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();if(re!==r)if(pe=ts(),pe!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.charCodeAt(G)===41?(mt=ne,G++):(mt=r,ct===0&&Ct(ee)),mt!==r?(Dt=N,K=Sn(pe),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r}return N}function Bl(){var N,K,re,pe,ze,mt,fr,Cr;if(N=G,K=vc(),K!==r){for(re=[],pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===42?(mt=ys,G++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(G)===47?(mt=tt,G++):(mt=r,ct===0&&Ct(It))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=vc(),Cr!==r?(Dt=pe,ze=nr(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r;for(;pe!==r;){for(re.push(pe),pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===42?(mt=ys,G++):(mt=r,ct===0&&Ct(We)),mt===r&&(t.charCodeAt(G)===47?(mt=tt,G++):(mt=r,ct===0&&Ct(It))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=vc(),Cr!==r?(Dt=pe,ze=nr(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r}re!==r?(Dt=N,K=$(K,re),N=K):(G=N,N=r)}else G=N,N=r;return N}function ts(){var N,K,re,pe,ze,mt,fr,Cr;if(N=G,K=Bl(),K!==r){for(re=[],pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===43?(mt=la,G++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(G)===45?(mt=Us,G++):(mt=r,ct===0&&Ct(aa))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=pe,ze=ye(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r;for(;pe!==r;){for(re.push(pe),pe=G,ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();if(ze!==r)if(t.charCodeAt(G)===43?(mt=la,G++):(mt=r,ct===0&&Ct(Ho)),mt===r&&(t.charCodeAt(G)===45?(mt=Us,G++):(mt=r,ct===0&&Ct(aa))),mt!==r){for(fr=[],Cr=Qt();Cr!==r;)fr.push(Cr),Cr=Qt();fr!==r?(Cr=Bl(),Cr!==r?(Dt=pe,ze=ye(K,mt,Cr),pe=ze):(G=pe,pe=r)):(G=pe,pe=r)}else G=pe,pe=r;else G=pe,pe=r}re!==r?(Dt=N,K=$(K,re),N=K):(G=N,N=r)}else G=N,N=r;return N}function Gr(){var N,K,re,pe,ze,mt;if(N=G,t.substr(G,3)===Le?(K=Le,G+=3):(K=r,ct===0&&Ct(pt)),K!==r){for(re=[],pe=Qt();pe!==r;)re.push(pe),pe=Qt();if(re!==r)if(pe=ts(),pe!==r){for(ze=[],mt=Qt();mt!==r;)ze.push(mt),mt=Qt();ze!==r?(t.substr(G,2)===ht?(mt=ht,G+=2):(mt=r,ct===0&&Ct(Tt)),mt!==r?(Dt=N,K=er(pe),N=K):(G=N,N=r)):(G=N,N=r)}else G=N,N=r;else G=N,N=r}else G=N,N=r;return N}function Ep(){var N,K,re,pe;return N=G,t.substr(G,2)===$r?(K=$r,G+=2):(K=r,ct===0&&Ct(ji)),K!==r?(re=Cu(),re!==r?(t.charCodeAt(G)===41?(pe=ne,G++):(pe=r,ct===0&&Ct(ee)),pe!==r?(Dt=N,K=es(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N}function Dc(){var N,K,re,pe,ze,mt;return N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,2)===kA?(pe=kA,G+=2):(pe=r,ct===0&&Ct(QA)),pe!==r?(ze=NA(),ze!==r?(t.charCodeAt(G)===125?(mt=H,G++):(mt=r,ct===0&&Ct(at)),mt!==r?(Dt=N,K=Ap(re,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,3)===ig?(pe=ig,G+=3):(pe=r,ct===0&&Ct(gu)),pe!==r?(Dt=N,K=sg(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,2)===du?(pe=du,G+=2):(pe=r,ct===0&&Ct(uo)),pe!==r?(ze=NA(),ze!==r?(t.charCodeAt(G)===125?(mt=H,G++):(mt=r,ct===0&&Ct(at)),mt!==r?(Dt=N,K=FA(re,ze),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.substr(G,3)===mc?(pe=mc,G+=3):(pe=r,ct===0&&Ct(ca)),pe!==r?(Dt=N,K=og(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.substr(G,2)===bi?(K=bi,G+=2):(K=r,ct===0&&Ct(qo)),K!==r?(re=Ga(),re!==r?(t.charCodeAt(G)===125?(pe=H,G++):(pe=r,ct===0&&Ct(at)),pe!==r?(Dt=N,K=yc(re),N=K):(G=N,N=r)):(G=N,N=r)):(G=N,N=r),N===r&&(N=G,t.charCodeAt(G)===36?(K=Pm,G++):(K=r,ct===0&&Ct(ag)),K!==r?(re=Ga(),re!==r?(Dt=N,K=yc(re),N=K):(G=N,N=r)):(G=N,N=r)))))),N}function Cw(){var N,K,re;return N=G,K=Eg(),K!==r?(Dt=G,re=$n(K),re?re=void 0:re=r,re!==r?(Dt=N,K=fp(K),N=K):(G=N,N=r)):(G=N,N=r),N}function Eg(){var N,K,re,pe,ze;if(N=G,K=[],re=G,pe=G,ct++,ze=wg(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r),re!==r)for(;re!==r;)K.push(re),re=G,pe=G,ct++,ze=wg(),ct--,ze===r?pe=void 0:(G=pe,pe=r),pe!==r?(t.length>G?(ze=t.charAt(G),G++):(ze=r,ct===0&&Ct(Fn)),ze!==r?(Dt=re,pe=Oe(ze),re=pe):(G=re,re=r)):(G=re,re=r);else K=r;return K!==r&&(Dt=N,K=Ms(K)),N=K,N}function Cg(){var N,K,re;if(N=G,K=[],lg.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(RA)),re!==r)for(;re!==r;)K.push(re),lg.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(RA));else K=r;return K!==r&&(Dt=N,K=Hs()),N=K,N}function Ga(){var N,K,re;if(N=G,K=[],mu.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(Ha)),re!==r)for(;re!==r;)K.push(re),mu.test(t.charAt(G))?(re=t.charAt(G),G++):(re=r,ct===0&&Ct(Ha));else K=r;return K!==r&&(Dt=N,K=Hs()),N=K,N}function Rm(){var N;return Gi.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(ua)),N}function wg(){var N;return yu.test(t.charAt(G))?(N=t.charAt(G),G++):(N=r,ct===0&&Ct(Es)),N}function Qt(){var N,K;if(N=[],Ec.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,ct===0&&Ct(Cc)),K!==r)for(;K!==r;)N.push(K),Ec.test(t.charAt(G))?(K=t.charAt(G),G++):(K=r,ct===0&&Ct(Cc));else N=r;return N}if(Eu=a(),Eu!==r&&G===t.length)return Eu;throw Eu!==r&&G!1}){try{return(0,$Y.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function cy(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${LD(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function LD(t){return`${uy(t.chain)}${t.then?` ${oT(t.then)}`:""}`}function oT(t){return`${t.type} ${LD(t.line)}`}function uy(t){return`${lT(t)}${t.then?` ${aT(t.then)}`:""}`}function aT(t){return`${t.type} ${uy(t.chain)}`}function lT(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>TD(e)).join(" ")} `:""}${t.args.map(e=>cT(e)).join(" ")}`;case"subshell":return`(${cy(t.subshell)})${t.args.length>0?` ${t.args.map(e=>Jw(e)).join(" ")}`:""}`;case"group":return`{ ${cy(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>Jw(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>TD(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function TD(t){return`${t.name}=${t.args[0]?Yg(t.args[0]):""}`}function cT(t){switch(t.type){case"redirection":return Jw(t);case"argument":return Yg(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function Jw(t){return`${t.subtype} ${t.args.map(e=>Yg(e)).join(" ")}`}function Yg(t){return t.segments.map(e=>uT(e)).join("")}function uT(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?"''":o.match(/[()}<>$|&;"'\n\t ]/)?o.match(/['\t\p{C}]/u)?o.match(/'/)?`"${o.replace(/["$\t\p{C}]/u,f8e)}"`:`$'${o.replace(/[\t\p{C}]/u,tW)}'`:`'${o}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`\${${cy(t.shell)}}`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>Yg(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>Yg(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${OD(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function OD(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(OD(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var $Y,eW,A8e,tW,f8e,rW=Et(()=>{$Y=$e(ZY());eW=new Map([["\f","\\f"],[` `,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),A8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(eW,([t,e])=>[t,`"$'${e}'"`])]),tW=t=>eW.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,f8e=t=>A8e.get(t)??`"$'${tW(t)}'"`});var iW=_((Tbt,nW)=>{"use strict";function p8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function Wg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Wg)}p8e(Wg,Error);Wg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;Ife&&(fe=J,ce=[]),ce.push(qe))}function at(qe,b){return new Wg(qe,null,null,b)}function Re(qe,b,w){return new Wg(Wg.buildMessage(qe,b),qe,b,w)}function ke(){var qe,b,w,P;return qe=J,b=xe(),b!==r?(t.charCodeAt(J)===47?(w=n,J++):(w=r,me===0&&H(u)),w!==r?(P=xe(),P!==r?(te=qe,b=A(b,P),qe=b):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r),qe===r&&(qe=J,b=xe(),b!==r&&(te=qe,b=p(b)),qe=b),qe}function xe(){var qe,b,w,P;return qe=J,b=He(),b!==r?(t.charCodeAt(J)===64?(w=h,J++):(w=r,me===0&&H(E)),w!==r?(P=Je(),P!==r?(te=qe,b=I(b,P),qe=b):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r),qe===r&&(qe=J,b=He(),b!==r&&(te=qe,b=v(b)),qe=b),qe}function He(){var qe,b,w,P,y;return qe=J,t.charCodeAt(J)===64?(b=h,J++):(b=r,me===0&&H(E)),b!==r?(w=Te(),w!==r?(t.charCodeAt(J)===47?(P=n,J++):(P=r,me===0&&H(u)),P!==r?(y=Te(),y!==r?(te=qe,b=x(),qe=b):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r)):(J=qe,qe=r),qe===r&&(qe=J,b=Te(),b!==r&&(te=qe,b=x()),qe=b),qe}function Te(){var qe,b,w;if(qe=J,b=[],C.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(R)),w!==r)for(;w!==r;)b.push(w),C.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(R));else b=r;return b!==r&&(te=qe,b=x()),qe=b,qe}function Je(){var qe,b,w;if(qe=J,b=[],L.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(U)),w!==r)for(;w!==r;)b.push(w),L.test(t.charAt(J))?(w=t.charAt(J),J++):(w=r,me===0&&H(U));else b=r;return b!==r&&(te=qe,b=x()),qe=b,qe}if(he=a(),he!==r&&J===t.length)return he;throw he!==r&&J{sW=$e(iW())});var Vg=_((Lbt,Kg)=>{"use strict";function aW(t){return typeof t>"u"||t===null}function g8e(t){return typeof t=="object"&&t!==null}function d8e(t){return Array.isArray(t)?t:aW(t)?[]:[t]}function m8e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r{"use strict";function zw(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}zw.prototype=Object.create(Error.prototype);zw.prototype.constructor=zw;zw.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};lW.exports=zw});var AW=_((Mbt,uW)=>{"use strict";var cW=Vg();function AT(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}AT.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r \x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;ur/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),cW.repeat(" ",e)+o+A+n+` `+cW.repeat(" ",e+this.position-a+o.length)+"^"};AT.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: `+r)),o};uW.exports=AT});var os=_((Ubt,pW)=>{"use strict";var fW=Ay(),C8e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],w8e=["scalar","sequence","mapping"];function I8e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function B8e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(C8e.indexOf(r)===-1)throw new fW('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=I8e(e.styleAliases||null),w8e.indexOf(this.kind)===-1)throw new fW('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}pW.exports=B8e});var Jg=_((_bt,gW)=>{"use strict";var hW=Vg(),_D=Ay(),v8e=os();function fT(t,e,r){var o=[];return t.include.forEach(function(a){r=fT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function D8e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e{"use strict";var S8e=os();dW.exports=new S8e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var EW=_((qbt,yW)=>{"use strict";var P8e=os();yW.exports=new P8e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var wW=_((jbt,CW)=>{"use strict";var b8e=os();CW.exports=new b8e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var HD=_((Gbt,IW)=>{"use strict";var x8e=Jg();IW.exports=new x8e({explicit:[mW(),EW(),wW()]})});var vW=_((Ybt,BW)=>{"use strict";var k8e=os();function Q8e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function F8e(){return null}function R8e(t){return t===null}BW.exports=new k8e("tag:yaml.org,2002:null",{kind:"scalar",resolve:Q8e,construct:F8e,predicate:R8e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var SW=_((Wbt,DW)=>{"use strict";var T8e=os();function N8e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function L8e(t){return t==="true"||t==="True"||t==="TRUE"}function O8e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}DW.exports=new T8e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:N8e,construct:L8e,predicate:O8e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var bW=_((Kbt,PW)=>{"use strict";var M8e=Vg(),U8e=os();function _8e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function H8e(t){return 48<=t&&t<=55}function q8e(t){return 48<=t&&t<=57}function j8e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var QW=_((Vbt,kW)=>{"use strict";var xW=Vg(),W8e=os(),K8e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function V8e(t){return!(t===null||!K8e.test(t)||t[t.length-1]==="_")}function J8e(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var z8e=/^[-+]?[0-9]+e/;function X8e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(xW.isNegativeZero(t))return"-0.0";return r=t.toString(10),z8e.test(r)?r.replace("e",".e"):r}function Z8e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||xW.isNegativeZero(t))}kW.exports=new W8e("tag:yaml.org,2002:float",{kind:"scalar",resolve:V8e,construct:J8e,predicate:Z8e,represent:X8e,defaultStyle:"lowercase"})});var pT=_((Jbt,FW)=>{"use strict";var $8e=Jg();FW.exports=new $8e({include:[HD()],implicit:[vW(),SW(),bW(),QW()]})});var hT=_((zbt,RW)=>{"use strict";var eHe=Jg();RW.exports=new eHe({include:[pT()]})});var OW=_((Xbt,LW)=>{"use strict";var tHe=os(),TW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),NW=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function rHe(t){return t===null?!1:TW.exec(t)!==null||NW.exec(t)!==null}function nHe(t){var e,r,o,a,n,u,A,p=0,h=null,E,I,v;if(e=TW.exec(t),e===null&&(e=NW.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],I=+(e[11]||0),h=(E*60+I)*6e4,e[9]==="-"&&(h=-h)),v=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&v.setTime(v.getTime()-h),v}function iHe(t){return t.toISOString()}LW.exports=new tHe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:rHe,construct:nHe,instanceOf:Date,represent:iHe})});var UW=_((Zbt,MW)=>{"use strict";var sHe=os();function oHe(t){return t==="<<"||t===null}MW.exports=new sHe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:oHe})});var qW=_(($bt,HW)=>{"use strict";var zg;try{_W=ve,zg=_W("buffer").Buffer}catch{}var _W,aHe=os(),gT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= \r`;function lHe(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=gT;for(r=0;r64)){if(e<0)return!1;o+=6}return o%8===0}function cHe(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=gT,u=0,A=[];for(e=0;e>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),zg?zg.from?zg.from(A):new zg(A):A}function uHe(t){var e="",r=0,o,a,n=t.length,u=gT;for(o=0;o>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function AHe(t){return zg&&zg.isBuffer(t)}HW.exports=new aHe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:lHe,construct:cHe,predicate:AHe,represent:uHe})});var GW=_((txt,jW)=>{"use strict";var fHe=os(),pHe=Object.prototype.hasOwnProperty,hHe=Object.prototype.toString;function gHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r{"use strict";var mHe=os(),yHe=Object.prototype.toString;function EHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e{"use strict";var wHe=os(),IHe=Object.prototype.hasOwnProperty;function BHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(IHe.call(r,e)&&r[e]!==null)return!1;return!0}function vHe(t){return t!==null?t:{}}KW.exports=new wHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:BHe,construct:vHe})});var py=_((ixt,JW)=>{"use strict";var DHe=Jg();JW.exports=new DHe({include:[hT()],implicit:[OW(),UW()],explicit:[qW(),GW(),WW(),VW()]})});var XW=_((sxt,zW)=>{"use strict";var SHe=os();function PHe(){return!0}function bHe(){}function xHe(){return""}function kHe(t){return typeof t>"u"}zW.exports=new SHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:PHe,construct:bHe,predicate:kHe,represent:xHe})});var $W=_((oxt,ZW)=>{"use strict";var QHe=os();function FHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function RHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function THe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function NHe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}ZW.exports=new QHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:FHe,construct:RHe,predicate:NHe,represent:THe})});var rK=_((axt,tK)=>{"use strict";var qD;try{eK=ve,qD=eK("esprima")}catch{typeof window<"u"&&(qD=window.esprima)}var eK,LHe=os();function OHe(t){if(t===null)return!1;try{var e="("+t+")",r=qD.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function MHe(t){var e="("+t+")",r=qD.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function UHe(t){return t.toString()}function _He(t){return Object.prototype.toString.call(t)==="[object Function]"}tK.exports=new LHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:OHe,construct:MHe,predicate:_He,represent:UHe})});var Xw=_((cxt,iK)=>{"use strict";var nK=Jg();iK.exports=nK.DEFAULT=new nK({include:[py()],explicit:[XW(),$W(),rK()]})});var BK=_((uxt,Zw)=>{"use strict";var yf=Vg(),AK=Ay(),HHe=AW(),fK=py(),qHe=Xw(),Yp=Object.prototype.hasOwnProperty,jD=1,pK=2,hK=3,GD=4,dT=1,jHe=2,sK=3,GHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,YHe=/[\x85\u2028\u2029]/,WHe=/[,\[\]\{\}]/,gK=/^(?:!|!!|![a-z\-]+!)$/i,dK=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function oK(t){return Object.prototype.toString.call(t)}function Hu(t){return t===10||t===13}function Zg(t){return t===9||t===32}function Ia(t){return t===9||t===32||t===10||t===13}function hy(t){return t===44||t===91||t===93||t===123||t===125}function KHe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function VHe(t){return t===120?2:t===117?4:t===85?8:0}function JHe(t){return 48<=t&&t<=57?t-48:-1}function aK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` `:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function zHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var mK=new Array(256),yK=new Array(256);for(Xg=0;Xg<256;Xg++)mK[Xg]=aK(Xg)?1:0,yK[Xg]=aK(Xg);var Xg;function XHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||qHe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function EK(t,e){return new AK(e,new HHe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Pr(t,e){throw EK(t,e)}function YD(t,e){t.onWarning&&t.onWarning.call(null,EK(t,e))}var lK={YAML:function(e,r,o){var a,n,u;e.version!==null&&Pr(e,"duplication of %YAML directive"),o.length!==1&&Pr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&Pr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&Pr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&YD(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&Pr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],gK.test(a)||Pr(e,"ill-formed tag handle (first argument) of the TAG directive"),Yp.call(e.tagMap,a)&&Pr(e,'there is a previously declared suffix for "'+a+'" tag handle'),dK.test(n)||Pr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function Gp(t,e,r,o){var a,n,u,A;if(e1&&(t.result+=yf.repeat(` `,e-1))}function ZHe(t,e,r){var o,a,n,u,A,p,h,E,I=t.kind,v=t.result,x;if(x=t.input.charCodeAt(t.position),Ia(x)||hy(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),Ia(a)||r&&hy(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),Ia(a)||r&&hy(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),Ia(o))break}else{if(t.position===t.lineStart&&WD(t)||r&&hy(x))break;if(Hu(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Wi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(Gp(t,n,u,!1),yT(t,t.line-p),n=u=t.position,A=!1),Zg(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return Gp(t,n,u,!1),t.result?!0:(t.kind=I,t.result=v,!1)}function $He(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Gp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else Hu(r)?(Gp(t,o,a,!0),yT(t,Wi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&WD(t)?Pr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Pr(t,"unexpected end of the stream within a single quoted scalar")}function e6e(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return Gp(t,r,t.position,!0),t.position++,!0;if(A===92){if(Gp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),Hu(A))Wi(t,!1,e);else if(A<256&&mK[A])t.result+=yK[A],t.position++;else if((u=VHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=KHe(A))>=0?n=(n<<4)+u:Pr(t,"expected hexadecimal character");t.result+=zHe(n),t.position++}else Pr(t,"unknown escape sequence");r=o=t.position}else Hu(A)?(Gp(t,r,o,!0),yT(t,Wi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&WD(t)?Pr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}Pr(t,"unexpected end of the stream within a double quoted scalar")}function t6e(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,I,v={},x,C,R,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,I=!1,n=[];else if(L===123)p=125,I=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=I?"mapping":"sequence",t.result=n,!0;r||Pr(t,"missed comma between flow collection entries"),C=x=R=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),Ia(A)&&(h=E=!0,t.position++,Wi(t,!0,e))),o=t.line,dy(t,e,jD,!1,!0),C=t.tag,x=t.result,Wi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Wi(t,!0,e),dy(t,e,jD,!1,!0),R=t.result),I?gy(t,n,v,C,x,R):h?n.push(gy(t,null,v,C,x,R)):n.push(x),Wi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}Pr(t,"unexpected end of the stream within a flow collection")}function r6e(t,e){var r,o,a=dT,n=!1,u=!1,A=e,p=0,h=!1,E,I;if(I=t.input.charCodeAt(t.position),I===124)o=!1;else if(I===62)o=!0;else return!1;for(t.kind="scalar",t.result="";I!==0;)if(I=t.input.charCodeAt(++t.position),I===43||I===45)dT===a?a=I===43?sK:jHe:Pr(t,"repeat of a chomping mode identifier");else if((E=JHe(I))>=0)E===0?Pr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?Pr(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(Zg(I)){do I=t.input.charCodeAt(++t.position);while(Zg(I));if(I===35)do I=t.input.charCodeAt(++t.position);while(!Hu(I)&&I!==0)}for(;I!==0;){for(mT(t),t.lineIndent=0,I=t.input.charCodeAt(t.position);(!u||t.lineIndentA&&(A=t.lineIndent),Hu(I)){p++;continue}if(t.lineIndente)&&p!==0)Pr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(dy(t,e,GD,!0,a)&&(C?v=t.result:x=t.result),C||(gy(t,h,E,I,v,x,n,u),I=v=x=null),Wi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)Pr(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),I=0,v=t.implicitTypes.length;I tag; it should be "'+x.kind+'", not "'+t.kind+'"'),x.resolve(t.result)?(t.result=x.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Pr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Pr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function a6e(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Wi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!Ia(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&Pr(t,"directive name must not be less than one character in length");u!==0;){for(;Zg(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!Hu(u));break}if(Hu(u))break;for(r=t.position;u!==0&&!Ia(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&mT(t),Yp.call(lK,o)?lK[o](t,o,a):YD(t,'unknown document directive "'+o+'"')}if(Wi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Wi(t,!0,-1)):n&&Pr(t,"directives end mark is expected"),dy(t,t.lineIndent-1,GD,!1,!0),Wi(t,!0,-1),t.checkLineBreaks&&YHe.test(t.input.slice(e,t.position))&&YD(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&WD(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Wi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var o=CK(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a"u"&&(r=e,e=null),wK(t,e,yf.extend({schema:fK},r))}function c6e(t,e){return IK(t,yf.extend({schema:fK},e))}Zw.exports.loadAll=wK;Zw.exports.load=IK;Zw.exports.safeLoadAll=l6e;Zw.exports.safeLoad=c6e});var WK=_((Axt,IT)=>{"use strict";var eI=Vg(),tI=Ay(),u6e=Xw(),A6e=py(),QK=Object.prototype.toString,FK=Object.prototype.hasOwnProperty,f6e=9,$w=10,p6e=13,h6e=32,g6e=33,d6e=34,RK=35,m6e=37,y6e=38,E6e=39,C6e=42,TK=44,w6e=45,NK=58,I6e=61,B6e=62,v6e=63,D6e=64,LK=91,OK=93,S6e=96,MK=123,P6e=124,UK=125,vo={};vo[0]="\\0";vo[7]="\\a";vo[8]="\\b";vo[9]="\\t";vo[10]="\\n";vo[11]="\\v";vo[12]="\\f";vo[13]="\\r";vo[27]="\\e";vo[34]='\\"';vo[92]="\\\\";vo[133]="\\N";vo[160]="\\_";vo[8232]="\\L";vo[8233]="\\P";var b6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function x6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a0?t.charCodeAt(n-1):null,v=v&&SK(u,A)}else{for(n=0;no&&t[I+1]!==" ",I=n);else if(!my(u))return KD;A=n>0?t.charCodeAt(n-1):null,v=v&&SK(u,A)}h=h||E&&n-I-1>o&&t[I+1]!==" "}return!p&&!h?v&&!a(t)?HK:qK:r>9&&_K(t)?KD:h?GK:jK}function N6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&b6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return Q6e(t,p)}switch(T6e(e,u,t.indent,n,A)){case HK:return e;case qK:return"'"+e.replace(/'/g,"''")+"'";case jK:return"|"+PK(e,t.indent)+bK(DK(e,a));case GK:return">"+PK(e,t.indent)+bK(DK(L6e(e,n),a));case KD:return'"'+O6e(e,n)+'"';default:throw new tI("impossible error: invalid scalar style")}}()}function PK(t,e){var r=_K(t)?String(e):"",o=t[t.length-1]===` `,a=o&&(t[t.length-2]===` `||t===` `),n=a?"+":o?"":"-";return r+n+` `}function bK(t){return t[t.length-1]===` `?t.slice(0,-1):t}function L6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` `);return h=h!==-1?h:t.length,r.lastIndex=h,xK(t.slice(0,h),e)}(),a=t[0]===` `||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` `:"")+xK(p,e),a=n}return o}function xK(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` `+t.slice(a,n),a=n+1),u=A;return p+=` `,t.length-a>e&&u>a?p+=t.slice(a,u)+` `+t.slice(u+1):p+=t.slice(a),p.slice(1)}function O6e(t){for(var e="",r,o,a,n=0;n=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=vK((r-55296)*1024+o-56320+65536),n++;continue}a=vo[r],e+=!a&&my(r)?t[n]:a||vK(r)}return e}function M6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),$g(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function H6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,I,v;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new tI("sortKeys must be a boolean or a function");for(A=0,p=u.length;A1024,I&&(t.dump&&$w===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,I&&(v+=ET(t,e)),$g(t,e+1,E,!0,I)&&(t.dump&&$w===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function kK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function $g(t,e,r,o,a,n){t.tag=null,t.dump=r,kK(t,r,!1)||kK(t,r,!0);var u=QK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(H6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(_6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(U6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(M6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&N6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new tI("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function q6e(t,e){var r=[],o=[],a,n;for(CT(t,r,o),a=0,n=o.length;a{"use strict";var VD=BK(),KK=WK();function JD(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}ki.exports.Type=os();ki.exports.Schema=Jg();ki.exports.FAILSAFE_SCHEMA=HD();ki.exports.JSON_SCHEMA=pT();ki.exports.CORE_SCHEMA=hT();ki.exports.DEFAULT_SAFE_SCHEMA=py();ki.exports.DEFAULT_FULL_SCHEMA=Xw();ki.exports.load=VD.load;ki.exports.loadAll=VD.loadAll;ki.exports.safeLoad=VD.safeLoad;ki.exports.safeLoadAll=VD.safeLoadAll;ki.exports.dump=KK.dump;ki.exports.safeDump=KK.safeDump;ki.exports.YAMLException=Ay();ki.exports.MINIMAL_SCHEMA=HD();ki.exports.SAFE_SCHEMA=py();ki.exports.DEFAULT_SCHEMA=Xw();ki.exports.scan=JD("scan");ki.exports.parse=JD("parse");ki.exports.compose=JD("compose");ki.exports.addConstructor=JD("addConstructor")});var zK=_((pxt,JK)=>{"use strict";var G6e=VK();JK.exports=G6e});var ZK=_((hxt,XK)=>{"use strict";function Y6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ed(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ed)}Y6e(ed,Error);ed.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I({[pt]:Le})))},fe=function($){return $},ce=function($){return $},me=sa("correct indentation"),he=" ",Be=Qn(" ",!1),we=function($){return $.length===nr*It},g=function($){return $.length===(nr+1)*It},Ee=function(){return nr++,!0},Se=function(){return nr--,!0},le=function(){return SA()},ne=sa("pseudostring"),ee=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,Ie=hi(["\r",` `," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Fe=/^[^\r\n\t ,\][{}:#"']/,At=hi(["\r",` `," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),H=function(){return SA().replace(/^ *| *$/g,"")},at="--",Re=Qn("--",!1),ke=/^[a-zA-Z\/0-9]/,xe=hi([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),He=/^[^\r\n\t :,]/,Te=hi(["\r",` `," "," ",":",","],!0,!1),Je="null",qe=Qn("null",!1),b=function(){return null},w="true",P=Qn("true",!1),y=function(){return!0},F="false",z=Qn("false",!1),X=function(){return!1},Z=sa("string"),ie='"',Pe=Qn('"',!1),Ne=function(){return""},ot=function($){return $},dt=function($){return $.join("")},jt=/^[^"\\\0-\x1F\x7F]/,$t=hi(['"',"\\",["\0",""],"\x7F"],!0,!1),bt='\\"',an=Qn('\\"',!1),Qr=function(){return'"'},mr="\\\\",br=Qn("\\\\",!1),Wr=function(){return"\\"},Kn="\\/",Ns=Qn("\\/",!1),Ti=function(){return"/"},ps="\\b",io=Qn("\\b",!1),Pi=function(){return"\b"},Ls="\\f",so=Qn("\\f",!1),cc=function(){return"\f"},cu="\\n",lp=Qn("\\n",!1),cp=function(){return` `},Os="\\r",Dn=Qn("\\r",!1),oo=function(){return"\r"},Ms="\\t",ml=Qn("\\t",!1),yl=function(){return" "},ao="\\u",Vn=Qn("\\u",!1),On=function($,ye,Le,pt){return String.fromCharCode(parseInt(`0x${$}${ye}${Le}${pt}`))},Ni=/^[0-9a-fA-F]/,Mn=hi([["0","9"],["a","f"],["A","F"]],!1,!1),_i=sa("blank space"),tr=/^[ \t]/,Oe=hi([" "," "],!1,!1),ii=sa("white space"),Ma=/^[ \t\n\r]/,hr=hi([" "," ",` `,"\r"],!1,!1),uc=`\r `,uu=Qn(`\r `,!1),Ac=` `,El=Qn(` `,!1),DA="\r",Au=Qn("\r",!1),Ce=0,Rt=0,fc=[{line:1,column:1}],Hi=0,fu=[],Yt=0,Cl;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function SA(){return t.substring(Rt,Ce)}function up(){return _o(Rt,Ce)}function pc($,ye){throw ye=ye!==void 0?ye:_o(Rt,Ce),gc([sa($)],t.substring(Rt,Ce),ye)}function PA($,ye){throw ye=ye!==void 0?ye:_o(Rt,Ce),lo($,ye)}function Qn($,ye){return{type:"literal",text:$,ignoreCase:ye}}function hi($,ye,Le){return{type:"class",parts:$,inverted:ye,ignoreCase:Le}}function hc(){return{type:"any"}}function bA(){return{type:"end"}}function sa($){return{type:"other",description:$}}function Li($){var ye=fc[$],Le;if(ye)return ye;for(Le=$-1;!fc[Le];)Le--;for(ye=fc[Le],ye={line:ye.line,column:ye.column};Le<$;)t.charCodeAt(Le)===10?(ye.line++,ye.column=1):ye.column++,Le++;return fc[$]=ye,ye}function _o($,ye){var Le=Li($),pt=Li(ye);return{start:{offset:$,line:Le.line,column:Le.column},end:{offset:ye,line:pt.line,column:pt.column}}}function Ze($){CeHi&&(Hi=Ce,fu=[]),fu.push($))}function lo($,ye){return new ed($,null,null,ye)}function gc($,ye,Le){return new ed(ed.buildMessage($,ye),$,ye,Le)}function pu(){var $;return $=xA(),$}function qi(){var $,ye,Le;for($=Ce,ye=[],Le=hu();Le!==r;)ye.push(Le),Le=hu();return ye!==r&&(Rt=$,ye=n(ye)),$=ye,$}function hu(){var $,ye,Le,pt,ht;return $=Ce,ye=hs(),ye!==r?(t.charCodeAt(Ce)===45?(Le=u,Ce++):(Le=r,Yt===0&&Ze(A)),Le!==r?(pt=Sn(),pt!==r?(ht=dc(),ht!==r?(Rt=$,ye=p(ht),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$}function xA(){var $,ye,Le;for($=Ce,ye=[],Le=Ua();Le!==r;)ye.push(Le),Le=Ua();return ye!==r&&(Rt=$,ye=h(ye)),$=ye,$}function Ua(){var $,ye,Le,pt,ht,Tt,er,$r,ji;if($=Ce,ye=Sn(),ye===r&&(ye=null),ye!==r){if(Le=Ce,t.charCodeAt(Ce)===35?(pt=E,Ce++):(pt=r,Yt===0&&Ze(I)),pt!==r){if(ht=[],Tt=Ce,er=Ce,Yt++,$r=tt(),Yt--,$r===r?er=void 0:(Ce=er,er=r),er!==r?(t.length>Ce?($r=t.charAt(Ce),Ce++):($r=r,Yt===0&&Ze(v)),$r!==r?(er=[er,$r],Tt=er):(Ce=Tt,Tt=r)):(Ce=Tt,Tt=r),Tt!==r)for(;Tt!==r;)ht.push(Tt),Tt=Ce,er=Ce,Yt++,$r=tt(),Yt--,$r===r?er=void 0:(Ce=er,er=r),er!==r?(t.length>Ce?($r=t.charAt(Ce),Ce++):($r=r,Yt===0&&Ze(v)),$r!==r?(er=[er,$r],Tt=er):(Ce=Tt,Tt=r)):(Ce=Tt,Tt=r);else ht=r;ht!==r?(pt=[pt,ht],Le=pt):(Ce=Le,Le=r)}else Ce=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(pt=[],ht=We(),ht!==r)for(;ht!==r;)pt.push(ht),ht=We();else pt=r;pt!==r?(Rt=$,ye=x(),$=ye):(Ce=$,$=r)}else Ce=$,$=r}else Ce=$,$=r;if($===r&&($=Ce,ye=hs(),ye!==r?(Le=oa(),Le!==r?(pt=Sn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ce)===58?(ht=C,Ce++):(ht=r,Yt===0&&Ze(R)),ht!==r?(Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(er=dc(),er!==r?(Rt=$,ye=L(Le,er),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r&&($=Ce,ye=hs(),ye!==r?(Le=co(),Le!==r?(pt=Sn(),pt===r&&(pt=null),pt!==r?(t.charCodeAt(Ce)===58?(ht=C,Ce++):(ht=r,Yt===0&&Ze(R)),ht!==r?(Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(er=dc(),er!==r?(Rt=$,ye=L(Le,er),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r))){if($=Ce,ye=hs(),ye!==r)if(Le=co(),Le!==r)if(pt=Sn(),pt!==r)if(ht=aa(),ht!==r){if(Tt=[],er=We(),er!==r)for(;er!==r;)Tt.push(er),er=We();else Tt=r;Tt!==r?(Rt=$,ye=L(Le,ht),$=ye):(Ce=$,$=r)}else Ce=$,$=r;else Ce=$,$=r;else Ce=$,$=r;else Ce=$,$=r;if($===r)if($=Ce,ye=hs(),ye!==r)if(Le=co(),Le!==r){if(pt=[],ht=Ce,Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(t.charCodeAt(Ce)===44?(er=U,Ce++):(er=r,Yt===0&&Ze(J)),er!==r?($r=Sn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Rt=ht,Tt=te(Le,ji),ht=Tt):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r),ht!==r)for(;ht!==r;)pt.push(ht),ht=Ce,Tt=Sn(),Tt===r&&(Tt=null),Tt!==r?(t.charCodeAt(Ce)===44?(er=U,Ce++):(er=r,Yt===0&&Ze(J)),er!==r?($r=Sn(),$r===r&&($r=null),$r!==r?(ji=co(),ji!==r?(Rt=ht,Tt=te(Le,ji),ht=Tt):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r)):(Ce=ht,ht=r);else pt=r;pt!==r?(ht=Sn(),ht===r&&(ht=null),ht!==r?(t.charCodeAt(Ce)===58?(Tt=C,Ce++):(Tt=r,Yt===0&&Ze(R)),Tt!==r?(er=Sn(),er===r&&(er=null),er!==r?($r=dc(),$r!==r?(Rt=$,ye=ae(Le,pt,$r),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)}else Ce=$,$=r;else Ce=$,$=r}return $}function dc(){var $,ye,Le,pt,ht,Tt,er;if($=Ce,ye=Ce,Yt++,Le=Ce,pt=tt(),pt!==r?(ht=_t(),ht!==r?(t.charCodeAt(Ce)===45?(Tt=u,Ce++):(Tt=r,Yt===0&&Ze(A)),Tt!==r?(er=Sn(),er!==r?(pt=[pt,ht,Tt,er],Le=pt):(Ce=Le,Le=r)):(Ce=Le,Le=r)):(Ce=Le,Le=r)):(Ce=Le,Le=r),Yt--,Le!==r?(Ce=ye,ye=void 0):ye=r,ye!==r?(Le=We(),Le!==r?(pt=Fn(),pt!==r?(ht=qi(),ht!==r?(Tt=Ci(),Tt!==r?(Rt=$,ye=fe(ht),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r&&($=Ce,ye=tt(),ye!==r?(Le=Fn(),Le!==r?(pt=xA(),pt!==r?(ht=Ci(),ht!==r?(Rt=$,ye=fe(pt),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r),$===r))if($=Ce,ye=Us(),ye!==r){if(Le=[],pt=We(),pt!==r)for(;pt!==r;)Le.push(pt),pt=We();else Le=r;Le!==r?(Rt=$,ye=ce(ye),$=ye):(Ce=$,$=r)}else Ce=$,$=r;return $}function hs(){var $,ye,Le;for(Yt++,$=Ce,ye=[],t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));return ye!==r?(Rt=Ce,Le=we(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],$=ye):(Ce=$,$=r)):(Ce=$,$=r),Yt--,$===r&&(ye=r,Yt===0&&Ze(me)),$}function _t(){var $,ye,Le;for($=Ce,ye=[],t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));Le!==r;)ye.push(Le),t.charCodeAt(Ce)===32?(Le=he,Ce++):(Le=r,Yt===0&&Ze(Be));return ye!==r?(Rt=Ce,Le=g(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],$=ye):(Ce=$,$=r)):(Ce=$,$=r),$}function Fn(){var $;return Rt=Ce,$=Ee(),$?$=void 0:$=r,$}function Ci(){var $;return Rt=Ce,$=Se(),$?$=void 0:$=r,$}function oa(){var $;return $=ds(),$===r&&($=la()),$}function co(){var $,ye,Le;if($=ds(),$===r){if($=Ce,ye=[],Le=Ho(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Ho();else ye=r;ye!==r&&(Rt=$,ye=le()),$=ye}return $}function Us(){var $;return $=wi(),$===r&&($=gs(),$===r&&($=ds(),$===r&&($=la()))),$}function aa(){var $;return $=wi(),$===r&&($=ds(),$===r&&($=Ho())),$}function la(){var $,ye,Le,pt,ht,Tt;if(Yt++,$=Ce,ee.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(Ie)),ye!==r){for(Le=[],pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Fe.test(t.charAt(Ce))?(Tt=t.charAt(Ce),Ce++):(Tt=r,Yt===0&&Ze(At)),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);pt!==r;)Le.push(pt),pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Fe.test(t.charAt(Ce))?(Tt=t.charAt(Ce),Ce++):(Tt=r,Yt===0&&Ze(At)),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);Le!==r?(Rt=$,ye=H(),$=ye):(Ce=$,$=r)}else Ce=$,$=r;return Yt--,$===r&&(ye=r,Yt===0&&Ze(ne)),$}function Ho(){var $,ye,Le,pt,ht;if($=Ce,t.substr(Ce,2)===at?(ye=at,Ce+=2):(ye=r,Yt===0&&Ze(Re)),ye===r&&(ye=null),ye!==r)if(ke.test(t.charAt(Ce))?(Le=t.charAt(Ce),Ce++):(Le=r,Yt===0&&Ze(xe)),Le!==r){for(pt=[],He.test(t.charAt(Ce))?(ht=t.charAt(Ce),Ce++):(ht=r,Yt===0&&Ze(Te));ht!==r;)pt.push(ht),He.test(t.charAt(Ce))?(ht=t.charAt(Ce),Ce++):(ht=r,Yt===0&&Ze(Te));pt!==r?(Rt=$,ye=H(),$=ye):(Ce=$,$=r)}else Ce=$,$=r;else Ce=$,$=r;return $}function wi(){var $,ye;return $=Ce,t.substr(Ce,4)===Je?(ye=Je,Ce+=4):(ye=r,Yt===0&&Ze(qe)),ye!==r&&(Rt=$,ye=b()),$=ye,$}function gs(){var $,ye;return $=Ce,t.substr(Ce,4)===w?(ye=w,Ce+=4):(ye=r,Yt===0&&Ze(P)),ye!==r&&(Rt=$,ye=y()),$=ye,$===r&&($=Ce,t.substr(Ce,5)===F?(ye=F,Ce+=5):(ye=r,Yt===0&&Ze(z)),ye!==r&&(Rt=$,ye=X()),$=ye),$}function ds(){var $,ye,Le,pt;return Yt++,$=Ce,t.charCodeAt(Ce)===34?(ye=ie,Ce++):(ye=r,Yt===0&&Ze(Pe)),ye!==r?(t.charCodeAt(Ce)===34?(Le=ie,Ce++):(Le=r,Yt===0&&Ze(Pe)),Le!==r?(Rt=$,ye=Ne(),$=ye):(Ce=$,$=r)):(Ce=$,$=r),$===r&&($=Ce,t.charCodeAt(Ce)===34?(ye=ie,Ce++):(ye=r,Yt===0&&Ze(Pe)),ye!==r?(Le=ms(),Le!==r?(t.charCodeAt(Ce)===34?(pt=ie,Ce++):(pt=r,Yt===0&&Ze(Pe)),pt!==r?(Rt=$,ye=ot(Le),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)),Yt--,$===r&&(ye=r,Yt===0&&Ze(Z)),$}function ms(){var $,ye,Le;if($=Ce,ye=[],Le=_s(),Le!==r)for(;Le!==r;)ye.push(Le),Le=_s();else ye=r;return ye!==r&&(Rt=$,ye=dt(ye)),$=ye,$}function _s(){var $,ye,Le,pt,ht,Tt;return jt.test(t.charAt(Ce))?($=t.charAt(Ce),Ce++):($=r,Yt===0&&Ze($t)),$===r&&($=Ce,t.substr(Ce,2)===bt?(ye=bt,Ce+=2):(ye=r,Yt===0&&Ze(an)),ye!==r&&(Rt=$,ye=Qr()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===mr?(ye=mr,Ce+=2):(ye=r,Yt===0&&Ze(br)),ye!==r&&(Rt=$,ye=Wr()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Kn?(ye=Kn,Ce+=2):(ye=r,Yt===0&&Ze(Ns)),ye!==r&&(Rt=$,ye=Ti()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===ps?(ye=ps,Ce+=2):(ye=r,Yt===0&&Ze(io)),ye!==r&&(Rt=$,ye=Pi()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Ls?(ye=Ls,Ce+=2):(ye=r,Yt===0&&Ze(so)),ye!==r&&(Rt=$,ye=cc()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===cu?(ye=cu,Ce+=2):(ye=r,Yt===0&&Ze(lp)),ye!==r&&(Rt=$,ye=cp()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Os?(ye=Os,Ce+=2):(ye=r,Yt===0&&Ze(Dn)),ye!==r&&(Rt=$,ye=oo()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===Ms?(ye=Ms,Ce+=2):(ye=r,Yt===0&&Ze(ml)),ye!==r&&(Rt=$,ye=yl()),$=ye,$===r&&($=Ce,t.substr(Ce,2)===ao?(ye=ao,Ce+=2):(ye=r,Yt===0&&Ze(Vn)),ye!==r?(Le=Un(),Le!==r?(pt=Un(),pt!==r?(ht=Un(),ht!==r?(Tt=Un(),Tt!==r?(Rt=$,ye=On(Le,pt,ht,Tt),$=ye):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)):(Ce=$,$=r)))))))))),$}function Un(){var $;return Ni.test(t.charAt(Ce))?($=t.charAt(Ce),Ce++):($=r,Yt===0&&Ze(Mn)),$}function Sn(){var $,ye;if(Yt++,$=[],tr.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(Oe)),ye!==r)for(;ye!==r;)$.push(ye),tr.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(Oe));else $=r;return Yt--,$===r&&(ye=r,Yt===0&&Ze(_i)),$}function ys(){var $,ye;if(Yt++,$=[],Ma.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(hr)),ye!==r)for(;ye!==r;)$.push(ye),Ma.test(t.charAt(Ce))?(ye=t.charAt(Ce),Ce++):(ye=r,Yt===0&&Ze(hr));else $=r;return Yt--,$===r&&(ye=r,Yt===0&&Ze(ii)),$}function We(){var $,ye,Le,pt,ht,Tt;if($=Ce,ye=tt(),ye!==r){for(Le=[],pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Tt=tt(),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);pt!==r;)Le.push(pt),pt=Ce,ht=Sn(),ht===r&&(ht=null),ht!==r?(Tt=tt(),Tt!==r?(ht=[ht,Tt],pt=ht):(Ce=pt,pt=r)):(Ce=pt,pt=r);Le!==r?(ye=[ye,Le],$=ye):(Ce=$,$=r)}else Ce=$,$=r;return $}function tt(){var $;return t.substr(Ce,2)===uc?($=uc,Ce+=2):($=r,Yt===0&&Ze(uu)),$===r&&(t.charCodeAt(Ce)===10?($=Ac,Ce++):($=r,Yt===0&&Ze(El)),$===r&&(t.charCodeAt(Ce)===13?($=DA,Ce++):($=r,Yt===0&&Ze(Au)))),$}let It=2,nr=0;if(Cl=a(),Cl!==r&&Ce===t.length)return Cl;throw Cl!==r&&Ce"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>rV(t[e])):!1}function BT(t,e,r){if(t===null)return`null `;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} `;if(typeof t=="string")return`${eV(t)} `;if(Array.isArray(t)){if(t.length===0)return`[] `;let o=" ".repeat(e);return` ${t.map(n=>`${o}- ${BT(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof zD?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=$K.indexOf(p),I=$K.indexOf(h);return E===-1&&I===-1?ph?1:0:E!==-1&&I===-1?-1:E===-1&&I!==-1?1:E-I});let A=u.filter(p=>!rV(o[p])).map((p,h)=>{let E=o[p],I=eV(p),v=BT(E,e+1,!0),x=h>0||r?n:"",C=I.length>1024?`? ${I} ${x}:`:`${I}:`,R=v.startsWith(` `)?v:` ${v}`;return`${x}${C}${R}`}).join(e===0?` `:"")||` `;return r?` ${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Ba(t){try{let e=BT(t,0,!1);return e!==` `?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function V6e(t){return t.endsWith(` `)||(t+=` `),(0,tV.parse)(t)}function z6e(t){if(J6e.test(t))return V6e(t);let e=(0,XD.safeLoad)(t,{schema:XD.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ki(t){return z6e(t)}var XD,tV,K6e,$K,zD,J6e,nV=Et(()=>{XD=$e(zK()),tV=$e(ZK()),K6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,$K=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],zD=class{constructor(e){this.data=e}};Ba.PreserveOrdering=zD;J6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var rI={};Vt(rI,{parseResolution:()=>MD,parseShell:()=>ND,parseSyml:()=>Ki,stringifyArgument:()=>cT,stringifyArgumentSegment:()=>uT,stringifyArithmeticExpression:()=>OD,stringifyCommand:()=>lT,stringifyCommandChain:()=>uy,stringifyCommandChainThen:()=>aT,stringifyCommandLine:()=>LD,stringifyCommandLineThen:()=>oT,stringifyEnvSegment:()=>TD,stringifyRedirectArgument:()=>Jw,stringifyResolution:()=>UD,stringifyShell:()=>cy,stringifyShellLine:()=>cy,stringifySyml:()=>Ba,stringifyValueArgument:()=>Yg});var Nl=Et(()=>{rW();oW();nV()});var sV=_((Ext,vT)=>{"use strict";var X6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=X6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};vT.exports=iV;vT.exports.default=iV});var oV=_((Cxt,Z6e)=>{Z6e.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var td=_(Xa=>{"use strict";var lV=oV(),qu=process.env;Object.defineProperty(Xa,"_vendors",{value:lV.map(function(t){return t.constant})});Xa.name=null;Xa.isPR=null;lV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return aV(o)});if(Xa[t.constant]=r,r)switch(Xa.name=t.name,typeof t.pr){case"string":Xa.isPR=!!qu[t.pr];break;case"object":"env"in t.pr?Xa.isPR=t.pr.env in qu&&qu[t.pr.env]!==t.pr.ne:"any"in t.pr?Xa.isPR=t.pr.any.some(function(o){return!!qu[o]}):Xa.isPR=aV(t.pr);break;default:Xa.isPR=null}});Xa.isCI=!!(qu.CI||qu.CONTINUOUS_INTEGRATION||qu.BUILD_NUMBER||qu.RUN_ID||Xa.name);function aV(t){return typeof t=="string"?!!qu[t]:Object.keys(t).every(function(e){return qu[e]===t[e]})}});var Hn,cn,rd,DT,ZD,cV,ST,PT,$D=Et(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(Hn||(Hn={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(cn||(cn={}));rd=-1,DT=/^(-h|--help)(?:=([0-9]+))?$/,ZD=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,cV=/^-[a-zA-Z]{2,}$/,ST=/^([^=]+)=([\s\S]*)$/,PT=process.env.DEBUG_CLI==="1"});var it,yy,eS,bT,tS=Et(()=>{$D();it=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},yy=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} ${this.candidates.map(({usage:a})=>`$ ${a}`).join(` `)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: $ ${o} ${bT(e)}`}else this.message=`Command not found; did you mean one of: ${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` `)} ${bT(e)}`}},eS=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: ${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` `)} ${bT(e)}`}},bT=t=>`While running ${t.filter(e=>e!==Hn.EndOfInput&&e!==Hn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function $6e(t){let e=t.split(` `),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` `)}function Do(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` `),t=$6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 `),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` `);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` `)}).join(` `)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} `:""}var xT,uV,AV,kT=Et(()=>{xT=Array(80).fill("\u2501");for(let t=0;t<=24;++t)xT[xT.length-t]=`\x1B[38;5;${232+t}m\u2501`;uV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<80-5?` ${xT.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},AV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Ko(t){return{...t,[nI]:!0}}function ju(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function rS(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function iI(t,e){return e.length===1?new it(`${t}${rS(e[0],{mergeName:!0})}`):new it(`${t}: ${e.map(r=>` - ${rS(r)}`).join("")}`)}function nd(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw iI(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var nI,Ef=Et(()=>{tS();nI=Symbol("clipanion/isOption")});var Vo={};Vt(Vo,{KeyRelationship:()=>Gu,TypeAssertionError:()=>Kp,applyCascade:()=>aI,as:()=>yqe,assert:()=>gqe,assertWithErrors:()=>dqe,cascade:()=>oS,fn:()=>Eqe,hasAtLeastOneKey:()=>OT,hasExactLength:()=>dV,hasForbiddenKeys:()=>Mqe,hasKeyRelationship:()=>cI,hasMaxLength:()=>wqe,hasMinLength:()=>Cqe,hasMutuallyExclusiveKeys:()=>Uqe,hasRequiredKeys:()=>Oqe,hasUniqueItems:()=>Iqe,isArray:()=>nS,isAtLeast:()=>NT,isAtMost:()=>Dqe,isBase64:()=>Rqe,isBoolean:()=>aqe,isDate:()=>cqe,isDict:()=>fqe,isEnum:()=>Ks,isHexColor:()=>Fqe,isISO8601:()=>Qqe,isInExclusiveRange:()=>Pqe,isInInclusiveRange:()=>Sqe,isInstanceOf:()=>hqe,isInteger:()=>LT,isJSON:()=>Tqe,isLiteral:()=>pV,isLowerCase:()=>bqe,isMap:()=>Aqe,isNegative:()=>Bqe,isNullable:()=>Lqe,isNumber:()=>RT,isObject:()=>hV,isOneOf:()=>TT,isOptional:()=>Nqe,isPartial:()=>pqe,isPayload:()=>lqe,isPositive:()=>vqe,isRecord:()=>sS,isSet:()=>uqe,isString:()=>Cy,isTuple:()=>iS,isUUID4:()=>kqe,isUnknown:()=>FT,isUpperCase:()=>xqe,makeTrait:()=>gV,makeValidator:()=>Hr,matchesRegExp:()=>oI,softAssert:()=>mqe});function qn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function Ey(t,e){if(t.length===0)return"nothing";if(t.length===1)return qn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>qn(n)).join(", ")}${a}${qn(o)}`}function Wp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:eqe.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function QT(t,e,r){return t===1?e:r}function pr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function sqe(t,e){return r=>{t[e]=r}}function Yu(t,e){return r=>{let o=t[e];return t[e]=r,Yu(t,e).bind(null,o)}}function sI(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function FT(){return Hr({test:(t,e)=>!0})}function pV(t){return Hr({test:(e,r)=>e!==t?pr(r,`Expected ${qn(t)} (got ${qn(e)})`):!0})}function Cy(){return Hr({test:(t,e)=>typeof t!="string"?pr(e,`Expected a string (got ${qn(t)})`):!0})}function Ks(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?pV([...o][0]):Hr({test:(a,n)=>o.has(a)?!0:r?pr(n,`Expected one of ${Ey(e,"or")} (got ${qn(a)})`):pr(n,`Expected a valid enumeration value (got ${qn(a)})`)})}function aqe(){return Hr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o=oqe.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a boolean (got ${qn(t)})`)}return!0}})}function RT(){return Hr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return pr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a number (got ${qn(t)})`)}return!0}})}function lqe(t){return Hr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return pr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return pr(r,"Unbound coercion result");if(typeof e!="string")return pr(r,`Expected a string (got ${qn(e)})`);let a;try{a=JSON.parse(e)}catch{return pr(r,`Expected a JSON string (got ${qn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Yu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function cqe(){return Hr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return pr(e,"Unbound coercion result");let o;if(typeof t=="string"&&fV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return pr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return pr(e,`Expected a date (got ${qn(t)})`)}return!0}})}function nS(t,{delimiter:e}={}){return Hr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return pr(o,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return pr(o,`Expected an array (got ${qn(r)})`);let u=!0;for(let A=0,p=r.length;A{var n,u;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A=[...o],p=[...o];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,I)=>E!==A[I])?new Set(p):o;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",sI(a.coercion,o,h)]),!0}else{let A=!0;for(let p of o)if(A=t(p,Object.assign({},a))&&A,!A&&a?.errors==null)break;return A}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");let A={value:o};return r(o,Object.assign(Object.assign({},a),{coercion:Yu(A,"value")}))?(a.coercions.push([(u=a.p)!==null&&u!==void 0?u:".",sI(a.coercion,o,()=>new Set(A.value))]),!0):!1}return pr(a,`Expected a set (got ${qn(o)})`)}})}function Aqe(t,e){let r=nS(iS([t,e])),o=sS(e,{keys:t});return Hr({test:(a,n)=>{var u,A,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let I=()=>E.some((v,x)=>v[0]!==h[x][0]||v[1]!==h[x][1])?new Map(E):a;return n.coercions.push([(u=n.p)!==null&&u!==void 0?u:".",sI(n.coercion,a,I)]),!0}else{let h=!0;for(let[E,I]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(I,Object.assign(Object.assign({},n),{p:Wp(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return pr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(A=n.p)!==null&&A!==void 0?A:".",sI(n.coercion,a,()=>new Map(h.value))]),!0):!1:o(a,Object.assign(Object.assign({},n),{coercion:Yu(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",sI(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return pr(n,`Expected a map (got ${qn(a)})`)}})}function iS(t,{delimiter:e}={}){let r=dV(t.length);return Hr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return pr(a,`Expected a tuple (got ${qn(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A{var n;if(Array.isArray(o)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?pr(a,"Unbound coercion result"):r(o,Object.assign(Object.assign({},a),{coercion:void 0}))?(o=Object.fromEntries(o),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return pr(a,`Expected an object (got ${qn(o)})`);let u=Object.keys(o),A=!0;for(let p=0,h=u.length;p{if(typeof a!="object"||a===null)return pr(n,`Expected an object (got ${qn(a)})`);let u=new Set([...r,...Object.keys(a)]),A={},p=!0;for(let h of u){if(h==="constructor"||h==="__proto__")p=pr(Object.assign(Object.assign({},n),{p:Wp(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,I=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(I,Object.assign(Object.assign({},n),{p:Wp(n,h),coercion:Yu(a,h)}))&&p:e===null?p=pr(Object.assign(Object.assign({},n),{p:Wp(n,h)}),`Extraneous property (got ${qn(I)})`):Object.defineProperty(A,h,{enumerable:!0,get:()=>I,set:sqe(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(A,n)&&p),p}});return Object.assign(o,{properties:t})}function pqe(t){return hV(t,{extra:sS(FT())})}function gV(t){return()=>t}function Hr({test:t}){return gV(t)()}function gqe(t,e){if(!e(t))throw new Kp}function dqe(t,e){let r=[];if(!e(t,{errors:r}))throw new Kp({errors:r})}function mqe(t,e){}function yqe(t,e,{coerce:r=!1,errors:o,throw:a}={}){let n=o?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new Kp({errors:n});return{value:void 0,errors:n??!0}}let u={value:t},A=Yu(u,"value"),p=[];if(!e(t,{errors:n,coercion:A,coercions:p})){if(a)throw new Kp({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?u.value:{value:u.value,errors:void 0}}function Eqe(t,e){let r=iS(t);return(...o)=>{if(!r(o))throw new Kp;return e(...o)}}function Cqe(t){return Hr({test:(e,r)=>e.length>=t?!0:pr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function wqe(t){return Hr({test:(e,r)=>e.length<=t?!0:pr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function dV(t){return Hr({test:(e,r)=>e.length!==t?pr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function Iqe({map:t}={}){return Hr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;nt<=0?!0:pr(e,`Expected to be negative (got ${t})`)})}function vqe(){return Hr({test:(t,e)=>t>=0?!0:pr(e,`Expected to be positive (got ${t})`)})}function NT(t){return Hr({test:(e,r)=>e>=t?!0:pr(r,`Expected to be at least ${t} (got ${e})`)})}function Dqe(t){return Hr({test:(e,r)=>e<=t?!0:pr(r,`Expected to be at most ${t} (got ${e})`)})}function Sqe(t,e){return Hr({test:(r,o)=>r>=t&&r<=e?!0:pr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function Pqe(t,e){return Hr({test:(r,o)=>r>=t&&re!==Math.round(e)?pr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?pr(r,`Expected to be a safe integer (got ${e})`):!0})}function oI(t){return Hr({test:(e,r)=>t.test(e)?!0:pr(r,`Expected to match the pattern ${t.toString()} (got ${qn(e)})`)})}function bqe(){return Hr({test:(t,e)=>t!==t.toLowerCase()?pr(e,`Expected to be all-lowercase (got ${t})`):!0})}function xqe(){return Hr({test:(t,e)=>t!==t.toUpperCase()?pr(e,`Expected to be all-uppercase (got ${t})`):!0})}function kqe(){return Hr({test:(t,e)=>iqe.test(t)?!0:pr(e,`Expected to be a valid UUID v4 (got ${qn(t)})`)})}function Qqe(){return Hr({test:(t,e)=>fV.test(t)?!0:pr(e,`Expected to be a valid ISO 8601 date string (got ${qn(t)})`)})}function Fqe({alpha:t=!1}){return Hr({test:(e,r)=>(t?tqe.test(e):rqe.test(e))?!0:pr(r,`Expected to be a valid hexadecimal color string (got ${qn(e)})`)})}function Rqe(){return Hr({test:(t,e)=>nqe.test(t)?!0:pr(e,`Expected to be a valid base 64 string (got ${qn(t)})`)})}function Tqe(t=FT()){return Hr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return pr(r,`Expected to be a valid JSON string (got ${qn(e)})`)}return t(o,r)}})}function oS(t,...e){let r=Array.isArray(e[0])?e[0]:e;return Hr({test:(o,a)=>{var n,u;let A={value:o},p=typeof a?.coercions<"u"?Yu(A,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(o,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,I]of h)E.push(I());try{if(typeof a?.coercions<"u"){if(A.value!==o){if(typeof a?.coercion>"u")return pr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,A.value)])}(u=a?.coercions)===null||u===void 0||u.push(...h)}return r.every(I=>I(A.value,a))}finally{for(let I of E)I()}}})}function aI(t,...e){let r=Array.isArray(e[0])?e[0]:e;return oS(t,r)}function Nqe(t){return Hr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function Lqe(t){return Hr({test:(e,r)=>e===null?!0:t(e,r)})}function Oqe(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)||p.push(h);return p.length>0?pr(u,`Missing required ${QT(p.length,"property","properties")} ${Ey(p,"and")}`):!0}})}function OT(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>Object.keys(n).some(h=>a(o,h,n))?!0:pr(u,`Missing at least one property from ${Ey(Array.from(o),"or")}`)})}function Mqe(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>0?pr(u,`Forbidden ${QT(p.length,"property","properties")} ${Ey(p,"and")}`):!0}})}function Uqe(t,e){var r;let o=new Set(t),a=lI[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return Hr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>1?pr(u,`Mutually exclusive properties ${Ey(p,"and")}`):!0}})}function cI(t,e,r,o){var a,n;let u=new Set((a=o?.ignore)!==null&&a!==void 0?a:[]),A=lI[(n=o?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=_qe[e],E=e===Gu.Forbids?"or":"and";return Hr({test:(I,v)=>{let x=new Set(Object.keys(I));if(!A(x,t,I)||u.has(I[t]))return!0;let C=[];for(let R of p)(A(x,R,I)&&!u.has(I[R]))!==h.expect&&C.push(R);return C.length>=1?pr(v,`Property "${t}" ${h.message} ${QT(C.length,"property","properties")} ${Ey(C,E)}`):!0}})}var eqe,tqe,rqe,nqe,iqe,fV,oqe,hqe,TT,Kp,lI,Gu,_qe,Za=Et(()=>{eqe=/^[a-zA-Z_][a-zA-Z0-9_]*$/;tqe=/^#[0-9a-f]{6}$/i,rqe=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,nqe=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,iqe=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,fV=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;oqe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);hqe=t=>Hr({test:(e,r)=>e instanceof t?!0:pr(r,`Expected an instance of ${t.name} (got ${qn(e)})`)}),TT=(t,{exclusive:e=!1}={})=>Hr({test:(r,o)=>{var a,n,u;let A=[],p=typeof o?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h1?pr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o?.errors)===null||u===void 0||u.push(...p),!1}});Kp=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` `;for(let o of e)r+=` - ${o}`}super(r)}};lI={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Gu||(Gu={}));_qe={[Gu.Forbids]:{expect:!1,message:"forbids using"},[Gu.Requires]:{expect:!0,message:"requires using"}}});var nt,Vp=Et(()=>{Ef();nt=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(Za(),Vo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw iI("Invalid option schema",p);for(let[,I]of h)I()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};nt.isOption=nI;nt.Default=[]});function va(t){PT&&console.log(t)}function yV(){let t={nodes:[]};for(let e=0;e{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let I of h)E.some(({to:v})=>I.to===v)||E.push(I)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:I}])=>p===E&&h.to===I)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(cn.InitialNode)}function jqe(t,{prefix:e=""}={}){if(PT){va(`${e}Nodes are:`);for(let r=0;rE!==cn.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===cn.ErrorNode))throw new yy(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Wqe(h)}if(o.length>0){va(" Results:");for(let n of o)va(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else va(" No results");return o}function Yqe(t,e,{endToken:r=Hn.EndOfInput}={}){let o=Gqe(t,[...e,r]);return Kqe(e,o.map(({state:a})=>a))}function Wqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Kqe(t,e){let r=e.filter(v=>v.selectedIndex!==null),o=r.filter(v=>!v.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(v=>v.selectedIndex===rd||v.requiredOptions.every(x=>x.some(C=>v.options.find(R=>R.name===C))));if(a.length===0)throw new yy(t,r.map(v=>({usage:v.candidateUsage,reason:null})));let n=0;for(let v of a)v.path.length>n&&(n=v.path.length);let u=a.filter(v=>v.path.length===n),A=v=>v.positionals.filter(({extra:x})=>!x).length+v.options.length,p=u.map(v=>({state:v,positionalCount:A(v)})),h=0;for(let{positionalCount:v}of p)v>h&&(h=v);let E=p.filter(({positionalCount:v})=>v===h).map(({state:v})=>v),I=Vqe(E);if(I.length>1)throw new eS(t,I.map(v=>v.candidateUsage));return I[0]}function Vqe(t){let e=[],r=[];for(let o of t)o.selectedIndex===rd?r.push(o):e.push(o);return r.length>0&&e.push({...mV,path:EV(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function EV(t,e,...r){return e===void 0?Array.from(t):EV(t.filter((o,a)=>o===e[a]),...r)}function $a(){return{dynamics:[],shortcuts:[],statics:{}}}function CV(t){return t===cn.SuccessNode||t===cn.ErrorNode}function MT(t,e=0){return{to:CV(t.to)?t.to:t.to>=cn.CustomNode?t.to+e-cn.CustomNode+1:t.to+e,reducer:t.reducer}}function Jqe(t,e=0){let r=$a();for(let[o,a]of t.dynamics)r.dynamics.push([o,MT(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(MT(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>MT(n,e));return r}function Ps(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function wy(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function Jo(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function aS(t,e,r,o,a){if(Array.isArray(e)){let[n,...u]=e;return t[n](r,o,a,...u)}else return t[e](r,o,a)}var mV,zqe,UT,el,_T,Iy,lS=Et(()=>{$D();tS();mV={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:rd,partial:!1,tokens:[]};zqe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===o,isBatchOption:(t,e,r,o)=>!t.ignoreOptions&&cV.test(e)&&[...e.slice(1)].every(a=>o.has(`-${a}`)),isBoundOption:(t,e,r,o,a)=>{let n=e.match(ST);return!t.ignoreOptions&&!!n&&ZD.test(n[1])&&o.has(n[1])&&a.filter(u=>u.nameSet.includes(n[1])).every(u=>u.allowBinding)},isNegatedOption:(t,e,r,o)=>!t.ignoreOptions&&e===`--no-${o.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&DT.test(e),isUnsupportedOption:(t,e,r,o)=>!t.ignoreOptions&&e.startsWith("-")&&ZD.test(e)&&!o.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!ZD.test(e)},UT={setCandidateState:(t,e,r,o)=>({...t,...o}),setSelectedIndex:(t,e,r,o)=>({...t,selectedIndex:o}),setPartialIndex:(t,e,r,o)=>({...t,selectedIndex:o,partial:!0}),pushBatch:(t,e,r,o)=>{let a=t.options.slice(),n=t.tokens.slice();for(let u=1;u{let[,o,a]=e.match(ST),n=t.options.concat({name:o,value:a}),u=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,o.length],option:o},{segmentIndex:r,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:r,type:"value",slice:[o.length+1,o.length+a.length+1]}]);return{...t,options:n,tokens:u}},pushPath:(t,e,r)=>{let o=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:o,tokens:a}},pushPositional:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtra:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:el}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushTrue:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,o)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var o;let a=t.options[t.options.length-1],n=t.options.slice(),u=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((o=a.value)!==null&&o!==void 0?o:[]).concat([e]),{...t,options:n,tokens:u}},setStringValue:(t,e,r)=>{let o=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return o.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,o)=>{let[,,a]=e.match(DT);return typeof a<"u"?{...t,options:[{name:"-c",value:String(o)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(o)}]}},setError:(t,e,r,o)=>e===Hn.EndOfInput||e===Hn.EndOfPartialInput?{...t,errorMessage:`${o}.`}:{...t,errorMessage:`${o} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},el=Symbol(),_T=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===el)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==el?this.arity.extra.push(e):this.arity.extra!==el&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===el)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let A=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,A);this.options.push({preferredName:A,nameSet:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{preferredName:u,nameSet:A,arity:p,hidden:h,description:E,required:I}of this.options){if(h)continue;let v=[];for(let C=0;C`:`[${x}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===el?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=yV(),r=cn.InitialNode,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.nameSet);r=Oc(e,$a()),Jo(e,cn.InitialNode,Hn.StartOfInput,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let v=Oc(e,$a());wy(e,p,v),this.registerOptions(e,v),p=v}for(let v=0;v0||!this.arity.proxy){let v=Oc(e,$a());Ps(e,p,"isHelp",v,["useHelp",this.cliIndex]),Ps(e,v,"always",v,"pushExtra"),Jo(e,v,Hn.EndOfInput,cn.SuccessNode,["setSelectedIndex",rd]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Jo(e,p,Hn.EndOfInput,cn.ErrorNode,["setError","Not enough positional arguments"]),Jo(e,p,Hn.EndOfPartialInput,cn.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let v=0;v0||v+1!==this.arity.leading.length)&&(Jo(e,x,Hn.EndOfInput,cn.ErrorNode,["setError","Not enough positional arguments"]),Jo(e,x,Hn.EndOfPartialInput,cn.SuccessNode,["setPartialIndex",this.cliIndex])),Ps(e,h,"isNotOptionLike",x,"pushPositional"),h=x}let E=h;if(this.arity.extra===el||this.arity.extra.length>0){let v=Oc(e,$a());if(wy(e,h,v),this.arity.extra===el){let x=Oc(e,$a());this.arity.proxy||this.registerOptions(e,x),Ps(e,h,n,x,"pushExtraNoLimits"),Ps(e,x,n,x,"pushExtraNoLimits"),wy(e,x,v)}else for(let x=0;x0)&&this.registerOptions(e,C),Ps(e,E,n,C,"pushExtra"),wy(e,C,v),E=C}E=v}this.arity.trailing.length>0&&(Jo(e,E,Hn.EndOfInput,cn.ErrorNode,["setError","Not enough positional arguments"]),Jo(e,E,Hn.EndOfPartialInput,cn.SuccessNode,["setPartialIndex",this.cliIndex]));let I=E;for(let v=0;v=0&&e{let u=n?Hn.EndOfPartialInput:Hn.EndOfInput;return Yqe(o,a,{endToken:u})}}}}});function IV(){return cS.default&&"getColorDepth"in cS.default.WriteStream.prototype?cS.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function BV(t){let e=wV;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=ve("async_hooks");e=wV=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var cS,wV,vV=Et(()=>{cS=$e(ve("tty"),1)});var By,DV=Et(()=>{Vp();By=class extends nt{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new By(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: `),this.context.stdout.write(` `);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` `),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. `)}}}});async function bV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return as.from(r,e).runExit(o,a)}async function xV(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=kV(t);return as.from(r,e).run(o,a)}function kV(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof nt||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof nt||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function PV(t){return t()}var SV,as,QV=Et(()=>{$D();lS();kT();vV();Vp();DV();SV=Symbol("clipanion/errorCommand");as=class{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new Iy({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new as(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[nt.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...as.defaultContext,...a};switch(p.selectedIndex){case rd:{let E=By.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],I=this.registrations.get(E);if(typeof I>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let v=new E;v.context=h,v.tokens=p.tokens,v.path=p.path;try{for(let[x,{transformer:C}]of I.specs.entries())v[x]=C(I.builder,x,p,h);return v}catch(x){throw x[SV]=v,x}}break}}async run(e,r){var o,a;let n,u={...as.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,I)=>this.error(E,I),format:E=>this.format(E),process:(E,I)=>this.process(E,{...u,...I}),run:(E,I)=>this.run(E,{...u,...I}),usage:(E,I)=>this.usage(E,I)};let p=this.enableCapture&&(a=BV(u))!==null&&a!==void 0?a:PV,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?Do(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?Do(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?Do(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,I])=>[Do(E,{format:this.format(r),paragraphs:!1}),I.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});!a||r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof nt?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=Do(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=` `),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} `,A+=` `);let{usage:I,options:v}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${I} `,v.length>0){A+=` `,A+=`${this.format(r).header("Options")} `;let x=v.reduce((C,R)=>Math.max(C,R.definition.length),0);A+=` `;for(let{definition:C,description:R}of v)A+=` ${this.format(r).bold(C.padEnd(x))} ${Do(R,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` `,A+=`${this.format(r).header("Details")} `,A+=` `,A+=Do(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` `,A+=`${this.format(r).header("Examples")} `;for(let[x,C]of E)A+=` `,A+=Do(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} `}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} `}else{let p=new Map;for(let[v,{index:x}]of this.registrations.entries()){if(typeof v.usage>"u")continue;let C=typeof v.usage.category<"u"?Do(v.usage.category,{format:this.format(r),paragraphs:!1}):null,R=p.get(C);typeof R>"u"&&p.set(C,R=[]);let{usage:L}=this.getUsageByIndex(x);R.push({commandClass:v,usage:L})}let h=Array.from(p.keys()).sort((v,x)=>v===null?-1:x===null?1:v.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",I=typeof this.binaryVersion<"u";E||I?(E&&I?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} `:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} `:A+=`${this.format(r).header(`${this.binaryVersion}`)} `,A+=` ${this.format(r).bold(a)}${this.binaryName} `):A+=`${this.format(r).bold(a)}${this.binaryName} `;for(let v of h){let x=p.get(v).slice().sort((R,L)=>R.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=v!==null?v.trim():"General commands";A+=` `,A+=`${this.format(r).header(`${C}`)} `;for(let{commandClass:R,usage:L}of x){let U=R.usage.description||"undocumented";A+=` `,A+=` ${this.format(r).bold(L)} `,A+=` ${Do(U,{format:this.format(r),paragraphs:!1})}`}}A+=` `,A+=Do("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[SV])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} `;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` `,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} `),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:as.defaultContext.colorDepth>1)?uV:AV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};as.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:IV()}});var uI,FV=Et(()=>{Vp();uI=class extends nt{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} `)}};uI.paths=[["--clipanion=definitions"]]});var AI,RV=Et(()=>{Vp();AI=class extends nt{async execute(){this.context.stdout.write(this.cli.usage())}};AI.paths=[["-h"],["--help"]]});function uS(t={}){return Ko({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var HT=Et(()=>{Ef()});var fI,TV=Et(()=>{Vp();HT();fI=class extends nt{constructor(){super(...arguments),this.args=uS()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} `)}};fI.paths=[["--clipanion=tokens"]]});var pI,NV=Et(()=>{Vp();pI=class extends nt{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} `)}};pI.paths=[["-v"],["--version"]]});var qT={};Vt(qT,{DefinitionsCommand:()=>uI,HelpCommand:()=>AI,TokensCommand:()=>fI,VersionCommand:()=>pI});var LV=Et(()=>{FV();RV();TV();NV()});function OV(t,e,r){let[o,a]=ju(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let I,v=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)!A.has(x)||(I=x,v=v??[],v.push(C));return typeof v<"u"?nd(I??h,v,a.validator):v}})}var MV=Et(()=>{Ef()});function UV(t,e,r){let[o,a]=ju(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)!u.has(I)||(E=v);return E}})}var _V=Et(()=>{Ef()});function HV(t,e,r){let[o,a]=ju(e,r??{}),n=t.split(","),u=new Set(n);return Ko({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:I,value:v}of h.options)!u.has(I)||(E??(E=0),v?E+=1:E=0);return E}})}var qV=Et(()=>{Ef()});function jV(t={}){return Ko({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===el||A.extra===!1&&uu)}})}var GV=Et(()=>{lS();Ef()});function Xqe(t,e,r){let[o,a]=ju(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Ko({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,I){let v,x=o;typeof a.env<"u"&&I.env[a.env]&&(v=a.env,x=I.env[a.env]);for(let{name:C,value:R}of E.options)!A.has(C)||(v=C,x=R);return typeof x=="string"?nd(v??h,x,a.validator):x}})}function Zqe(t={}){let{required:e=!0}=t;return Ko({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u{lS();Ef()});var ge={};Vt(ge,{Array:()=>OV,Boolean:()=>UV,Counter:()=>HV,Proxy:()=>uS,Rest:()=>jV,String:()=>YV,applyValidator:()=>nd,cleanValidationError:()=>rS,formatError:()=>iI,isOptionSymbol:()=>nI,makeCommandOption:()=>Ko,rerouteArguments:()=>ju});var KV=Et(()=>{Ef();HT();MV();_V();qV();GV();WV()});var hI={};Vt(hI,{Builtins:()=>qT,Cli:()=>as,Command:()=>nt,Option:()=>ge,UsageError:()=>it,formatMarkdownish:()=>Do,run:()=>xV,runExit:()=>bV});var qt=Et(()=>{tS();kT();Vp();QV();LV();KV()});var VV=_((Pkt,$qe)=>{$qe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var ZV=_((bkt,Cf)=>{var JV=ve("fs"),GT=ve("path"),eje=ve("os"),tje=ve("crypto"),rje=VV(),YT=rje.version,nje=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function ije(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` `);let o;for(;(o=nje.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,` `),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function sje(t){let e=XV(t),r=bs.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=zV(t).split(","),a=o.length,n;for(let u=0;u=a)throw A}return bs.parse(n)}function oje(t){console.log(`[dotenv@${YT}][INFO] ${t}`)}function aje(t){console.log(`[dotenv@${YT}][WARN] ${t}`)}function jT(t){console.log(`[dotenv@${YT}][DEBUG] ${t}`)}function zV(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function lje(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function XV(t){let e=GT.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function cje(t){return t[0]==="~"?GT.join(eje.homedir(),t.slice(1)):t}function uje(t){oje("Loading env from encrypted .env.vault");let e=bs._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),bs.populate(r,e,t),{parsed:e}}function Aje(t){let e=GT.resolve(process.cwd(),".env"),r="utf8",o=Boolean(t&&t.debug);t&&(t.path!=null&&(e=cje(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=bs.parse(JV.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),bs.populate(n,a,t),{parsed:a}}catch(a){return o&&jT(`Failed to load ${e} ${a.message}`),{error:a}}}function fje(t){let e=XV(t);return zV(t).length===0?bs.configDotenv(t):JV.existsSync(e)?bs._configVault(t):(aje(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),bs.configDotenv(t))}function pje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=tje.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function hje(t,e,r={}){let o=Boolean(r&&r.debug),a=Boolean(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&jT(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var bs={configDotenv:Aje,_configVault:uje,_parseVault:sje,config:fje,decrypt:pje,parse:ije,populate:hje};Cf.exports.configDotenv=bs.configDotenv;Cf.exports._configVault=bs._configVault;Cf.exports._parseVault=bs._parseVault;Cf.exports.config=bs.config;Cf.exports.decrypt=bs.decrypt;Cf.exports.parse=bs.parse;Cf.exports.populate=bs.populate;Cf.exports=bs});var eJ=_((xkt,$V)=>{"use strict";$V.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var id=_((kkt,WT)=>{"use strict";var gje=eJ(),tJ=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=gje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{rnew Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};WT.exports=tJ;WT.exports.default=tJ});function Wu(t){return`YN${t.toString(10).padStart(4,"0")}`}function AS(t){let e=Number(t.slice(2));if(typeof wr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var wr,fS=Et(()=>{wr=(Oe=>(Oe[Oe.UNNAMED=0]="UNNAMED",Oe[Oe.EXCEPTION=1]="EXCEPTION",Oe[Oe.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Oe[Oe.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Oe[Oe.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Oe[Oe.BUILD_DISABLED=5]="BUILD_DISABLED",Oe[Oe.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Oe[Oe.MUST_BUILD=7]="MUST_BUILD",Oe[Oe.MUST_REBUILD=8]="MUST_REBUILD",Oe[Oe.BUILD_FAILED=9]="BUILD_FAILED",Oe[Oe.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Oe[Oe.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Oe[Oe.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Oe[Oe.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Oe[Oe.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Oe[Oe.REMOTE_INVALID=15]="REMOTE_INVALID",Oe[Oe.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Oe[Oe.RESOLUTION_PACK=17]="RESOLUTION_PACK",Oe[Oe.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Oe[Oe.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Oe[Oe.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Oe[Oe.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Oe[Oe.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Oe[Oe.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Oe[Oe.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Oe[Oe.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Oe[Oe.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Oe[Oe.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Oe[Oe.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Oe[Oe.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Oe[Oe.FETCH_FAILED=30]="FETCH_FAILED",Oe[Oe.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Oe[Oe.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Oe[Oe.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Oe[Oe.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Oe[Oe.NETWORK_ERROR=35]="NETWORK_ERROR",Oe[Oe.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Oe[Oe.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Oe[Oe.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Oe[Oe.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Oe[Oe.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Oe[Oe.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Oe[Oe.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Oe[Oe.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Oe[Oe.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Oe[Oe.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Oe[Oe.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Oe[Oe.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Oe[Oe.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Oe[Oe.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Oe[Oe.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Oe[Oe.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Oe[Oe.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Oe[Oe.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Oe[Oe.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Oe[Oe.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Oe[Oe.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Oe[Oe.INVALID_MANIFEST=57]="INVALID_MANIFEST",Oe[Oe.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Oe[Oe.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Oe[Oe.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Oe[Oe.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Oe[Oe.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Oe[Oe.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Oe[Oe.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Oe[Oe.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Oe[Oe.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Oe[Oe.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Oe[Oe.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Oe[Oe.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Oe[Oe.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Oe[Oe.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Oe[Oe.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Oe[Oe.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Oe[Oe.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Oe[Oe.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Oe[Oe.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Oe[Oe.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Oe[Oe.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Oe[Oe.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Oe[Oe.NETWORK_DISABLED=80]="NETWORK_DISABLED",Oe[Oe.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Oe[Oe.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Oe[Oe.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Oe[Oe.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Oe[Oe.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Oe[Oe.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Oe[Oe.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Oe[Oe.VERSION_NOTICE=88]="VERSION_NOTICE",Oe[Oe.TIPS_NOTICE=89]="TIPS_NOTICE",Oe[Oe.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Oe))(wr||{})});var gI=_((Fkt,rJ)=>{var dje="2.0.0",mje=Number.MAX_SAFE_INTEGER||9007199254740991,yje=16,Eje=256-6,Cje=["major","premajor","minor","preminor","patch","prepatch","prerelease"];rJ.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:yje,MAX_SAFE_BUILD_LENGTH:Eje,MAX_SAFE_INTEGER:mje,RELEASE_TYPES:Cje,SEMVER_SPEC_VERSION:dje,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var dI=_((Rkt,nJ)=>{var wje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};nJ.exports=wje});var vy=_((wf,iJ)=>{var{MAX_SAFE_COMPONENT_LENGTH:KT,MAX_SAFE_BUILD_LENGTH:Ije,MAX_LENGTH:Bje}=gI(),vje=dI();wf=iJ.exports={};var Dje=wf.re=[],Sje=wf.safeRe=[],lr=wf.src=[],cr=wf.t={},Pje=0,VT="[a-zA-Z0-9-]",bje=[["\\s",1],["\\d",Bje],[VT,Ije]],xje=t=>{for(let[e,r]of bje)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Jr=(t,e,r)=>{let o=xje(e),a=Pje++;vje(t,a,e),cr[t]=a,lr[a]=e,Dje[a]=new RegExp(e,r?"g":void 0),Sje[a]=new RegExp(o,r?"g":void 0)};Jr("NUMERICIDENTIFIER","0|[1-9]\\d*");Jr("NUMERICIDENTIFIERLOOSE","\\d+");Jr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${VT}*`);Jr("MAINVERSION",`(${lr[cr.NUMERICIDENTIFIER]})\\.(${lr[cr.NUMERICIDENTIFIER]})\\.(${lr[cr.NUMERICIDENTIFIER]})`);Jr("MAINVERSIONLOOSE",`(${lr[cr.NUMERICIDENTIFIERLOOSE]})\\.(${lr[cr.NUMERICIDENTIFIERLOOSE]})\\.(${lr[cr.NUMERICIDENTIFIERLOOSE]})`);Jr("PRERELEASEIDENTIFIER",`(?:${lr[cr.NUMERICIDENTIFIER]}|${lr[cr.NONNUMERICIDENTIFIER]})`);Jr("PRERELEASEIDENTIFIERLOOSE",`(?:${lr[cr.NUMERICIDENTIFIERLOOSE]}|${lr[cr.NONNUMERICIDENTIFIER]})`);Jr("PRERELEASE",`(?:-(${lr[cr.PRERELEASEIDENTIFIER]}(?:\\.${lr[cr.PRERELEASEIDENTIFIER]})*))`);Jr("PRERELEASELOOSE",`(?:-?(${lr[cr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${lr[cr.PRERELEASEIDENTIFIERLOOSE]})*))`);Jr("BUILDIDENTIFIER",`${VT}+`);Jr("BUILD",`(?:\\+(${lr[cr.BUILDIDENTIFIER]}(?:\\.${lr[cr.BUILDIDENTIFIER]})*))`);Jr("FULLPLAIN",`v?${lr[cr.MAINVERSION]}${lr[cr.PRERELEASE]}?${lr[cr.BUILD]}?`);Jr("FULL",`^${lr[cr.FULLPLAIN]}$`);Jr("LOOSEPLAIN",`[v=\\s]*${lr[cr.MAINVERSIONLOOSE]}${lr[cr.PRERELEASELOOSE]}?${lr[cr.BUILD]}?`);Jr("LOOSE",`^${lr[cr.LOOSEPLAIN]}$`);Jr("GTLT","((?:<|>)?=?)");Jr("XRANGEIDENTIFIERLOOSE",`${lr[cr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Jr("XRANGEIDENTIFIER",`${lr[cr.NUMERICIDENTIFIER]}|x|X|\\*`);Jr("XRANGEPLAIN",`[v=\\s]*(${lr[cr.XRANGEIDENTIFIER]})(?:\\.(${lr[cr.XRANGEIDENTIFIER]})(?:\\.(${lr[cr.XRANGEIDENTIFIER]})(?:${lr[cr.PRERELEASE]})?${lr[cr.BUILD]}?)?)?`);Jr("XRANGEPLAINLOOSE",`[v=\\s]*(${lr[cr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${lr[cr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${lr[cr.XRANGEIDENTIFIERLOOSE]})(?:${lr[cr.PRERELEASELOOSE]})?${lr[cr.BUILD]}?)?)?`);Jr("XRANGE",`^${lr[cr.GTLT]}\\s*${lr[cr.XRANGEPLAIN]}$`);Jr("XRANGELOOSE",`^${lr[cr.GTLT]}\\s*${lr[cr.XRANGEPLAINLOOSE]}$`);Jr("COERCE",`(^|[^\\d])(\\d{1,${KT}})(?:\\.(\\d{1,${KT}}))?(?:\\.(\\d{1,${KT}}))?(?:$|[^\\d])`);Jr("COERCERTL",lr[cr.COERCE],!0);Jr("LONETILDE","(?:~>?)");Jr("TILDETRIM",`(\\s*)${lr[cr.LONETILDE]}\\s+`,!0);wf.tildeTrimReplace="$1~";Jr("TILDE",`^${lr[cr.LONETILDE]}${lr[cr.XRANGEPLAIN]}$`);Jr("TILDELOOSE",`^${lr[cr.LONETILDE]}${lr[cr.XRANGEPLAINLOOSE]}$`);Jr("LONECARET","(?:\\^)");Jr("CARETTRIM",`(\\s*)${lr[cr.LONECARET]}\\s+`,!0);wf.caretTrimReplace="$1^";Jr("CARET",`^${lr[cr.LONECARET]}${lr[cr.XRANGEPLAIN]}$`);Jr("CARETLOOSE",`^${lr[cr.LONECARET]}${lr[cr.XRANGEPLAINLOOSE]}$`);Jr("COMPARATORLOOSE",`^${lr[cr.GTLT]}\\s*(${lr[cr.LOOSEPLAIN]})$|^$`);Jr("COMPARATOR",`^${lr[cr.GTLT]}\\s*(${lr[cr.FULLPLAIN]})$|^$`);Jr("COMPARATORTRIM",`(\\s*)${lr[cr.GTLT]}\\s*(${lr[cr.LOOSEPLAIN]}|${lr[cr.XRANGEPLAIN]})`,!0);wf.comparatorTrimReplace="$1$2$3";Jr("HYPHENRANGE",`^\\s*(${lr[cr.XRANGEPLAIN]})\\s+-\\s+(${lr[cr.XRANGEPLAIN]})\\s*$`);Jr("HYPHENRANGELOOSE",`^\\s*(${lr[cr.XRANGEPLAINLOOSE]})\\s+-\\s+(${lr[cr.XRANGEPLAINLOOSE]})\\s*$`);Jr("STAR","(<|>)?=?\\s*\\*");Jr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Jr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var pS=_((Tkt,sJ)=>{var kje=Object.freeze({loose:!0}),Qje=Object.freeze({}),Fje=t=>t?typeof t!="object"?kje:t:Qje;sJ.exports=Fje});var JT=_((Nkt,lJ)=>{var oJ=/^[0-9]+$/,aJ=(t,e)=>{let r=oJ.test(t),o=oJ.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:taJ(e,t);lJ.exports={compareIdentifiers:aJ,rcompareIdentifiers:Rje}});var So=_((Lkt,fJ)=>{var hS=dI(),{MAX_LENGTH:cJ,MAX_SAFE_INTEGER:gS}=gI(),{safeRe:uJ,t:AJ}=vy(),Tje=pS(),{compareIdentifiers:Dy}=JT(),tl=class{constructor(e,r){if(r=Tje(r),e instanceof tl){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>cJ)throw new TypeError(`version is longer than ${cJ} characters`);hS("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?uJ[AJ.LOOSE]:uJ[AJ.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>gS||this.major<0)throw new TypeError("Invalid major version");if(this.minor>gS||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>gS||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];o===!1&&(n=[r]),Dy(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};fJ.exports=tl});var sd=_((Okt,hJ)=>{var pJ=So(),Nje=(t,e,r=!1)=>{if(t instanceof pJ)return t;try{return new pJ(t,e)}catch(o){if(!r)return null;throw o}};hJ.exports=Nje});var dJ=_((Mkt,gJ)=>{var Lje=sd(),Oje=(t,e)=>{let r=Lje(t,e);return r?r.version:null};gJ.exports=Oje});var yJ=_((Ukt,mJ)=>{var Mje=sd(),Uje=(t,e)=>{let r=Mje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};mJ.exports=Uje});var wJ=_((_kt,CJ)=>{var EJ=So(),_je=(t,e,r,o,a)=>{typeof r=="string"&&(a=o,o=r,r=void 0);try{return new EJ(t instanceof EJ?t.version:t,r).inc(e,o,a).version}catch{return null}};CJ.exports=_je});var vJ=_((Hkt,BJ)=>{var IJ=sd(),Hje=(t,e)=>{let r=IJ(t,null,!0),o=IJ(e,null,!0),a=r.compare(o);if(a===0)return null;let n=a>0,u=n?r:o,A=n?o:r,p=!!u.prerelease.length;if(!!A.prerelease.length&&!p)return!A.patch&&!A.minor?"major":u.patch?"patch":u.minor?"minor":"major";let E=p?"pre":"";return r.major!==o.major?E+"major":r.minor!==o.minor?E+"minor":r.patch!==o.patch?E+"patch":"prerelease"};BJ.exports=Hje});var SJ=_((qkt,DJ)=>{var qje=So(),jje=(t,e)=>new qje(t,e).major;DJ.exports=jje});var bJ=_((jkt,PJ)=>{var Gje=So(),Yje=(t,e)=>new Gje(t,e).minor;PJ.exports=Yje});var kJ=_((Gkt,xJ)=>{var Wje=So(),Kje=(t,e)=>new Wje(t,e).patch;xJ.exports=Kje});var FJ=_((Ykt,QJ)=>{var Vje=sd(),Jje=(t,e)=>{let r=Vje(t,e);return r&&r.prerelease.length?r.prerelease:null};QJ.exports=Jje});var Ll=_((Wkt,TJ)=>{var RJ=So(),zje=(t,e,r)=>new RJ(t,r).compare(new RJ(e,r));TJ.exports=zje});var LJ=_((Kkt,NJ)=>{var Xje=Ll(),Zje=(t,e,r)=>Xje(e,t,r);NJ.exports=Zje});var MJ=_((Vkt,OJ)=>{var $je=Ll(),eGe=(t,e)=>$je(t,e,!0);OJ.exports=eGe});var dS=_((Jkt,_J)=>{var UJ=So(),tGe=(t,e,r)=>{let o=new UJ(t,r),a=new UJ(e,r);return o.compare(a)||o.compareBuild(a)};_J.exports=tGe});var qJ=_((zkt,HJ)=>{var rGe=dS(),nGe=(t,e)=>t.sort((r,o)=>rGe(r,o,e));HJ.exports=nGe});var GJ=_((Xkt,jJ)=>{var iGe=dS(),sGe=(t,e)=>t.sort((r,o)=>iGe(o,r,e));jJ.exports=sGe});var mI=_((Zkt,YJ)=>{var oGe=Ll(),aGe=(t,e,r)=>oGe(t,e,r)>0;YJ.exports=aGe});var mS=_(($kt,WJ)=>{var lGe=Ll(),cGe=(t,e,r)=>lGe(t,e,r)<0;WJ.exports=cGe});var zT=_((eQt,KJ)=>{var uGe=Ll(),AGe=(t,e,r)=>uGe(t,e,r)===0;KJ.exports=AGe});var XT=_((tQt,VJ)=>{var fGe=Ll(),pGe=(t,e,r)=>fGe(t,e,r)!==0;VJ.exports=pGe});var yS=_((rQt,JJ)=>{var hGe=Ll(),gGe=(t,e,r)=>hGe(t,e,r)>=0;JJ.exports=gGe});var ES=_((nQt,zJ)=>{var dGe=Ll(),mGe=(t,e,r)=>dGe(t,e,r)<=0;zJ.exports=mGe});var ZT=_((iQt,XJ)=>{var yGe=zT(),EGe=XT(),CGe=mI(),wGe=yS(),IGe=mS(),BGe=ES(),vGe=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return yGe(t,r,o);case"!=":return EGe(t,r,o);case">":return CGe(t,r,o);case">=":return wGe(t,r,o);case"<":return IGe(t,r,o);case"<=":return BGe(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};XJ.exports=vGe});var $J=_((sQt,ZJ)=>{var DGe=So(),SGe=sd(),{safeRe:CS,t:wS}=vy(),PGe=(t,e)=>{if(t instanceof DGe)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(CS[wS.COERCE]);else{let o;for(;(o=CS[wS.COERCERTL].exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||o.index+o[0].length!==r.index+r[0].length)&&(r=o),CS[wS.COERCERTL].lastIndex=o.index+o[1].length+o[2].length;CS[wS.COERCERTL].lastIndex=-1}return r===null?null:SGe(`${r[2]}.${r[3]||"0"}.${r[4]||"0"}`,e)};ZJ.exports=PGe});var tz=_((oQt,ez)=>{"use strict";ez.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var IS=_((aQt,rz)=>{"use strict";rz.exports=Cn;Cn.Node=od;Cn.create=Cn;function Cn(t){var e=this;if(e instanceof Cn||(e=new Cn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};Cn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};Cn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};Cn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};Cn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new Cn;if(ethis.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&othis.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};Cn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o{"use strict";var QGe=IS(),ad=Symbol("max"),Bf=Symbol("length"),Sy=Symbol("lengthCalculator"),EI=Symbol("allowStale"),ld=Symbol("maxAge"),If=Symbol("dispose"),nz=Symbol("noDisposeOnSet"),xs=Symbol("lruList"),Mc=Symbol("cache"),sz=Symbol("updateAgeOnGet"),$T=()=>1,tN=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[ad]=e.max||1/0,o=e.length||$T;if(this[Sy]=typeof o!="function"?$T:o,this[EI]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[ld]=e.maxAge||0,this[If]=e.dispose,this[nz]=e.noDisposeOnSet||!1,this[sz]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[ad]=e||1/0,yI(this)}get max(){return this[ad]}set allowStale(e){this[EI]=!!e}get allowStale(){return this[EI]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[ld]=e,yI(this)}get maxAge(){return this[ld]}set lengthCalculator(e){typeof e!="function"&&(e=$T),e!==this[Sy]&&(this[Sy]=e,this[Bf]=0,this[xs].forEach(r=>{r.length=this[Sy](r.value,r.key),this[Bf]+=r.length})),yI(this)}get lengthCalculator(){return this[Sy]}get length(){return this[Bf]}get itemCount(){return this[xs].length}rforEach(e,r){r=r||this;for(let o=this[xs].tail;o!==null;){let a=o.prev;iz(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[xs].head;o!==null;){let a=o.next;iz(this,e,o,r),o=a}}keys(){return this[xs].toArray().map(e=>e.key)}values(){return this[xs].toArray().map(e=>e.value)}reset(){this[If]&&this[xs]&&this[xs].length&&this[xs].forEach(e=>this[If](e.key,e.value)),this[Mc]=new Map,this[xs]=new QGe,this[Bf]=0}dump(){return this[xs].map(e=>BS(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[xs]}set(e,r,o){if(o=o||this[ld],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[Sy](r,e);if(this[Mc].has(e)){if(n>this[ad])return Py(this,this[Mc].get(e)),!1;let p=this[Mc].get(e).value;return this[If]&&(this[nz]||this[If](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[Bf]+=n-p.length,p.length=n,this.get(e),yI(this),!0}let u=new rN(e,r,n,a,o);return u.length>this[ad]?(this[If]&&this[If](e,r),!1):(this[Bf]+=u.length,this[xs].unshift(u),this[Mc].set(e,this[xs].head),yI(this),!0)}has(e){if(!this[Mc].has(e))return!1;let r=this[Mc].get(e).value;return!BS(this,r)}get(e){return eN(this,e,!0)}peek(e){return eN(this,e,!1)}pop(){let e=this[xs].tail;return e?(Py(this,e),e.value):null}del(e){Py(this,this[Mc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Mc].forEach((e,r)=>eN(this,r,!1))}},eN=(t,e,r)=>{let o=t[Mc].get(e);if(o){let a=o.value;if(BS(t,a)){if(Py(t,o),!t[EI])return}else r&&(t[sz]&&(o.value.now=Date.now()),t[xs].unshiftNode(o));return a.value}},BS=(t,e)=>{if(!e||!e.maxAge&&!t[ld])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[ld]&&r>t[ld]},yI=t=>{if(t[Bf]>t[ad])for(let e=t[xs].tail;t[Bf]>t[ad]&&e!==null;){let r=e.prev;Py(t,e),e=r}},Py=(t,e)=>{if(e){let r=e.value;t[If]&&t[If](r.key,r.value),t[Bf]-=r.length,t[Mc].delete(r.key),t[xs].removeNode(e)}},rN=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},iz=(t,e,r,o)=>{let a=r.value;BS(t,a)&&(Py(t,r),t[EI]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};oz.exports=tN});var Ol=_((cQt,Az)=>{var cd=class{constructor(e,r){if(r=RGe(r),e instanceof cd)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new cd(e.raw,r);if(e instanceof nN)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!cz(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&_Ge(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&MGe)|(this.options.loose&&UGe))+":"+e,a=lz.get(o);if(a)return a;let n=this.options.loose,u=n?Da[zo.HYPHENRANGELOOSE]:Da[zo.HYPHENRANGE];e=e.replace(u,zGe(this.options.includePrerelease)),ci("hyphen replace",e),e=e.replace(Da[zo.COMPARATORTRIM],NGe),ci("comparator trim",e),e=e.replace(Da[zo.TILDETRIM],LGe),ci("tilde trim",e),e=e.replace(Da[zo.CARETTRIM],OGe),ci("caret trim",e);let A=e.split(" ").map(I=>HGe(I,this.options)).join(" ").split(/\s+/).map(I=>JGe(I,this.options));n&&(A=A.filter(I=>(ci("loose invalid filter",I,this.options),!!I.match(Da[zo.COMPARATORLOOSE])))),ci("range list",A);let p=new Map,h=A.map(I=>new nN(I,this.options));for(let I of h){if(cz(I))return[I];p.set(I.value,I)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return lz.set(o,E),E}intersects(e,r){if(!(e instanceof cd))throw new TypeError("a Range is required");return this.set.some(o=>uz(o,r)&&e.set.some(a=>uz(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new TGe(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",_Ge=t=>t.value==="",uz=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},HGe=(t,e)=>(ci("comp",t,e),t=GGe(t,e),ci("caret",t),t=qGe(t,e),ci("tildes",t),t=WGe(t,e),ci("xrange",t),t=VGe(t,e),ci("stars",t),t),Xo=t=>!t||t.toLowerCase()==="x"||t==="*",qGe=(t,e)=>t.trim().split(/\s+/).map(r=>jGe(r,e)).join(" "),jGe=(t,e)=>{let r=e.loose?Da[zo.TILDELOOSE]:Da[zo.TILDE];return t.replace(r,(o,a,n,u,A)=>{ci("tilde",t,o,a,n,u,A);let p;return Xo(a)?p="":Xo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:Xo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(ci("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,ci("tilde return",p),p})},GGe=(t,e)=>t.trim().split(/\s+/).map(r=>YGe(r,e)).join(" "),YGe=(t,e)=>{ci("caret",t,e);let r=e.loose?Da[zo.CARETLOOSE]:Da[zo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{ci("caret",t,a,n,u,A,p);let h;return Xo(n)?h="":Xo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:Xo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(ci("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(ci("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),ci("caret return",h),h})},WGe=(t,e)=>(ci("replaceXRanges",t,e),t.split(/\s+/).map(r=>KGe(r,e)).join(" ")),KGe=(t,e)=>{t=t.trim();let r=e.loose?Da[zo.XRANGELOOSE]:Da[zo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{ci("xRange",t,o,a,n,u,A,p);let h=Xo(n),E=h||Xo(u),I=E||Xo(A),v=I;return a==="="&&v&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&v?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:I&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),ci("xRange return",o),o})},VGe=(t,e)=>(ci("replaceStars",t,e),t.trim().replace(Da[zo.STAR],"")),JGe=(t,e)=>(ci("replaceGTE0",t,e),t.trim().replace(Da[e.includePrerelease?zo.GTE0PRE:zo.GTE0],"")),zGe=t=>(e,r,o,a,n,u,A,p,h,E,I,v,x)=>(Xo(o)?r="":Xo(a)?r=`>=${o}.0.0${t?"-0":""}`:Xo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,Xo(h)?p="":Xo(E)?p=`<${+h+1}.0.0-0`:Xo(I)?p=`<${h}.${+E+1}.0-0`:v?p=`<=${h}.${E}.${I}-${v}`:t?p=`<${h}.${E}.${+I+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),XGe=(t,e,r)=>{for(let o=0;o0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var CI=_((uQt,mz)=>{var wI=Symbol("SemVer ANY"),by=class{static get ANY(){return wI}constructor(e,r){if(r=fz(r),e instanceof by){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),sN("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===wI?this.value="":this.value=this.operator+this.semver.version,sN("comp",this)}parse(e){let r=this.options.loose?pz[hz.COMPARATORLOOSE]:pz[hz.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new gz(o[2],this.options.loose):this.semver=wI}toString(){return this.value}test(e){if(sN("Comparator.test",e,this.options.loose),this.semver===wI||e===wI)return!0;if(typeof e=="string")try{e=new gz(e,this.options)}catch{return!1}return iN(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof by))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new dz(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new dz(this.value,r).test(e.semver):(r=fz(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||iN(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||iN(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};mz.exports=by;var fz=pS(),{safeRe:pz,t:hz}=vy(),iN=ZT(),sN=dI(),gz=So(),dz=Ol()});var II=_((AQt,yz)=>{var ZGe=Ol(),$Ge=(t,e,r)=>{try{e=new ZGe(e,r)}catch{return!1}return e.test(t)};yz.exports=$Ge});var Cz=_((fQt,Ez)=>{var e5e=Ol(),t5e=(t,e)=>new e5e(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));Ez.exports=t5e});var Iz=_((pQt,wz)=>{var r5e=So(),n5e=Ol(),i5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new n5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new r5e(o,r))}),o};wz.exports=i5e});var vz=_((hQt,Bz)=>{var s5e=So(),o5e=Ol(),a5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new o5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new s5e(o,r))}),o};Bz.exports=a5e});var Pz=_((gQt,Sz)=>{var oN=So(),l5e=Ol(),Dz=mI(),c5e=(t,e)=>{t=new l5e(t,e);let r=new oN("0.0.0");if(t.test(r)||(r=new oN("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o{let A=new oN(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||Dz(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||Dz(r,n))&&(r=n)}return r&&t.test(r)?r:null};Sz.exports=c5e});var xz=_((dQt,bz)=>{var u5e=Ol(),A5e=(t,e)=>{try{return new u5e(t,e).range||"*"}catch{return null}};bz.exports=A5e});var vS=_((mQt,Rz)=>{var f5e=So(),Fz=CI(),{ANY:p5e}=Fz,h5e=Ol(),g5e=II(),kz=mI(),Qz=mS(),d5e=ES(),m5e=yS(),y5e=(t,e,r,o)=>{t=new f5e(t,o),e=new h5e(e,o);let a,n,u,A,p;switch(r){case">":a=kz,n=d5e,u=Qz,A=">",p=">=";break;case"<":a=Qz,n=m5e,u=kz,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(g5e(t,e,o))return!1;for(let h=0;h{x.semver===p5e&&(x=new Fz(">=0.0.0")),I=I||x,v=v||x,a(x.semver,I.semver,o)?I=x:u(x.semver,v.semver,o)&&(v=x)}),I.operator===A||I.operator===p||(!v.operator||v.operator===A)&&n(t,v.semver))return!1;if(v.operator===p&&u(t,v.semver))return!1}return!0};Rz.exports=y5e});var Nz=_((yQt,Tz)=>{var E5e=vS(),C5e=(t,e,r)=>E5e(t,e,">",r);Tz.exports=C5e});var Oz=_((EQt,Lz)=>{var w5e=vS(),I5e=(t,e,r)=>w5e(t,e,"<",r);Lz.exports=I5e});var _z=_((CQt,Uz)=>{var Mz=Ol(),B5e=(t,e,r)=>(t=new Mz(t,r),e=new Mz(e,r),t.intersects(e,r));Uz.exports=B5e});var qz=_((wQt,Hz)=>{var v5e=II(),D5e=Ll();Hz.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,I)=>D5e(E,I,r));for(let E of u)v5e(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,I]of o)E===I?A.push(E):!I&&E===u[0]?A.push("*"):I?E===u[0]?A.push(`<=${I}`):A.push(`${E} - ${I}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length{var jz=Ol(),lN=CI(),{ANY:aN}=lN,BI=II(),cN=Ll(),S5e=(t,e,r={})=>{if(t===e)return!0;t=new jz(t,r),e=new jz(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=b5e(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},P5e=[new lN(">=0.0.0-0")],Gz=[new lN(">=0.0.0")],b5e=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===aN){if(e.length===1&&e[0].semver===aN)return!0;r.includePrerelease?t=P5e:t=Gz}if(e.length===1&&e[0].semver===aN){if(r.includePrerelease)return!0;e=Gz}let o=new Set,a,n;for(let x of t)x.operator===">"||x.operator===">="?a=Yz(a,x,r):x.operator==="<"||x.operator==="<="?n=Wz(n,x,r):o.add(x.semver);if(o.size>1)return null;let u;if(a&&n){if(u=cN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let x of o){if(a&&!BI(x,String(a),r)||n&&!BI(x,String(n),r))return null;for(let C of e)if(!BI(x,String(C),r))return!1;return!0}let A,p,h,E,I=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,v=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;I&&I.prerelease.length===1&&n.operator==="<"&&I.prerelease[0]===0&&(I=!1);for(let x of e){if(E=E||x.operator===">"||x.operator===">=",h=h||x.operator==="<"||x.operator==="<=",a){if(v&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===v.major&&x.semver.minor===v.minor&&x.semver.patch===v.patch&&(v=!1),x.operator===">"||x.operator===">="){if(A=Yz(a,x,r),A===x&&A!==a)return!1}else if(a.operator===">="&&!BI(a.semver,String(x),r))return!1}if(n){if(I&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===I.major&&x.semver.minor===I.minor&&x.semver.patch===I.patch&&(I=!1),x.operator==="<"||x.operator==="<="){if(p=Wz(n,x,r),p===x&&p!==n)return!1}else if(n.operator==="<="&&!BI(n.semver,String(x),r))return!1}if(!x.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||v||I)},Yz=(t,e,r)=>{if(!t)return e;let o=cN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},Wz=(t,e,r)=>{if(!t)return e;let o=cN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};Kz.exports=S5e});var zn=_((BQt,Xz)=>{var uN=vy(),Jz=gI(),x5e=So(),zz=JT(),k5e=sd(),Q5e=dJ(),F5e=yJ(),R5e=wJ(),T5e=vJ(),N5e=SJ(),L5e=bJ(),O5e=kJ(),M5e=FJ(),U5e=Ll(),_5e=LJ(),H5e=MJ(),q5e=dS(),j5e=qJ(),G5e=GJ(),Y5e=mI(),W5e=mS(),K5e=zT(),V5e=XT(),J5e=yS(),z5e=ES(),X5e=ZT(),Z5e=$J(),$5e=CI(),e9e=Ol(),t9e=II(),r9e=Cz(),n9e=Iz(),i9e=vz(),s9e=Pz(),o9e=xz(),a9e=vS(),l9e=Nz(),c9e=Oz(),u9e=_z(),A9e=qz(),f9e=Vz();Xz.exports={parse:k5e,valid:Q5e,clean:F5e,inc:R5e,diff:T5e,major:N5e,minor:L5e,patch:O5e,prerelease:M5e,compare:U5e,rcompare:_5e,compareLoose:H5e,compareBuild:q5e,sort:j5e,rsort:G5e,gt:Y5e,lt:W5e,eq:K5e,neq:V5e,gte:J5e,lte:z5e,cmp:X5e,coerce:Z5e,Comparator:$5e,Range:e9e,satisfies:t9e,toComparators:r9e,maxSatisfying:n9e,minSatisfying:i9e,minVersion:s9e,validRange:o9e,outside:a9e,gtr:l9e,ltr:c9e,intersects:u9e,simplifyRange:A9e,subset:f9e,SemVer:x5e,re:uN.re,src:uN.src,tokens:uN.t,SEMVER_SPEC_VERSION:Jz.SEMVER_SPEC_VERSION,RELEASE_TYPES:Jz.RELEASE_TYPES,compareIdentifiers:zz.compareIdentifiers,rcompareIdentifiers:zz.rcompareIdentifiers}});var $z=_((vQt,Zz)=>{"use strict";function p9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ud(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ud)}p9e(ud,Error);ud.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",I;for(I=0;I0){for(I=1,v=1;I{switch(Ne[1]){case"|":return Pe|Ne[3];case"&":return Pe&Ne[3];case"^":return Pe^Ne[3]}},Z)},v="!",x=Re("!",!1),C=function(Z){return!Z},R="(",L=Re("(",!1),U=")",J=Re(")",!1),te=function(Z){return Z},ae=/^[^ \t\n\r()!|&\^]/,fe=ke([" "," ",` `,"\r","(",")","!","|","&","^"],!0,!1),ce=function(Z){return e.queryPattern.test(Z)},me=function(Z){return e.checkFn(Z)},he=Te("whitespace"),Be=/^[ \t\n\r]/,we=ke([" "," ",` `,"\r"],!1,!1),g=0,Ee=0,Se=[{line:1,column:1}],le=0,ne=[],ee=0,Ie;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Fe(){return t.substring(Ee,g)}function At(){return qe(Ee,g)}function H(Z,ie){throw ie=ie!==void 0?ie:qe(Ee,g),P([Te(Z)],t.substring(Ee,g),ie)}function at(Z,ie){throw ie=ie!==void 0?ie:qe(Ee,g),w(Z,ie)}function Re(Z,ie){return{type:"literal",text:Z,ignoreCase:ie}}function ke(Z,ie,Pe){return{type:"class",parts:Z,inverted:ie,ignoreCase:Pe}}function xe(){return{type:"any"}}function He(){return{type:"end"}}function Te(Z){return{type:"other",description:Z}}function Je(Z){var ie=Se[Z],Pe;if(ie)return ie;for(Pe=Z-1;!Se[Pe];)Pe--;for(ie=Se[Pe],ie={line:ie.line,column:ie.column};Pele&&(le=g,ne=[]),ne.push(Z))}function w(Z,ie){return new ud(Z,null,null,ie)}function P(Z,ie,Pe){return new ud(ud.buildMessage(Z,ie),Z,ie,Pe)}function y(){var Z,ie,Pe,Ne,ot,dt,jt,$t;if(Z=g,ie=F(),ie!==r){for(Pe=[],Ne=g,ot=X(),ot!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,ee===0&&b(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,ee===0&&b(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,ee===0&&b(E)))),dt!==r?(jt=X(),jt!==r?($t=F(),$t!==r?(ot=[ot,dt,jt,$t],Ne=ot):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);Ne!==r;)Pe.push(Ne),Ne=g,ot=X(),ot!==r?(t.charCodeAt(g)===124?(dt=n,g++):(dt=r,ee===0&&b(u)),dt===r&&(t.charCodeAt(g)===38?(dt=A,g++):(dt=r,ee===0&&b(p)),dt===r&&(t.charCodeAt(g)===94?(dt=h,g++):(dt=r,ee===0&&b(E)))),dt!==r?(jt=X(),jt!==r?($t=F(),$t!==r?(ot=[ot,dt,jt,$t],Ne=ot):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r)):(g=Ne,Ne=r);Pe!==r?(Ee=Z,ie=I(ie,Pe),Z=ie):(g=Z,Z=r)}else g=Z,Z=r;return Z}function F(){var Z,ie,Pe,Ne,ot,dt;return Z=g,t.charCodeAt(g)===33?(ie=v,g++):(ie=r,ee===0&&b(x)),ie!==r?(Pe=F(),Pe!==r?(Ee=Z,ie=C(Pe),Z=ie):(g=Z,Z=r)):(g=Z,Z=r),Z===r&&(Z=g,t.charCodeAt(g)===40?(ie=R,g++):(ie=r,ee===0&&b(L)),ie!==r?(Pe=X(),Pe!==r?(Ne=y(),Ne!==r?(ot=X(),ot!==r?(t.charCodeAt(g)===41?(dt=U,g++):(dt=r,ee===0&&b(J)),dt!==r?(Ee=Z,ie=te(Ne),Z=ie):(g=Z,Z=r)):(g=Z,Z=r)):(g=Z,Z=r)):(g=Z,Z=r)):(g=Z,Z=r),Z===r&&(Z=z())),Z}function z(){var Z,ie,Pe,Ne,ot;if(Z=g,ie=X(),ie!==r){if(Pe=g,Ne=[],ae.test(t.charAt(g))?(ot=t.charAt(g),g++):(ot=r,ee===0&&b(fe)),ot!==r)for(;ot!==r;)Ne.push(ot),ae.test(t.charAt(g))?(ot=t.charAt(g),g++):(ot=r,ee===0&&b(fe));else Ne=r;Ne!==r?Pe=t.substring(Pe,g):Pe=Ne,Pe!==r?(Ee=g,Ne=ce(Pe),Ne?Ne=void 0:Ne=r,Ne!==r?(Ee=Z,ie=me(Pe),Z=ie):(g=Z,Z=r)):(g=Z,Z=r)}else g=Z,Z=r;return Z}function X(){var Z,ie;for(ee++,Z=[],Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,ee===0&&b(we));ie!==r;)Z.push(ie),Be.test(t.charAt(g))?(ie=t.charAt(g),g++):(ie=r,ee===0&&b(we));return ee--,Z===r&&(ie=r,ee===0&&b(he)),Z}if(Ie=a(),Ie!==r&&g===t.length)return Ie;throw Ie!==r&&g{var{parse:g9e}=$z();DS.makeParser=(t=/[a-z]+/)=>(e,r)=>g9e(e,{queryPattern:t,checkFn:r});DS.parse=DS.makeParser()});var rX=_((SQt,tX)=>{"use strict";tX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var AN=_((PQt,iX)=>{var vI=rX(),nX={};for(let t of Object.keys(vI))nX[vI[t]]=t;var Ar={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};iX.exports=Ar;for(let t of Object.keys(Ar)){if(!("channels"in Ar[t]))throw new Error("missing channels property: "+t);if(!("labels"in Ar[t]))throw new Error("missing channel labels property: "+t);if(Ar[t].labels.length!==Ar[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=Ar[t];delete Ar[t].channels,delete Ar[t].labels,Object.defineProperty(Ar[t],"channels",{value:e}),Object.defineProperty(Ar[t],"labels",{value:r})}Ar.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};Ar.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),I=function(v){return(h-v)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=I(u),r=I(A),o=I(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};Ar.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=Ar.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};Ar.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function d9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}Ar.rgb.keyword=function(t){let e=nX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(vI)){let n=vI[a],u=d9e(t,n);u.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};Ar.rgb.lab=function(t){let e=Ar.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};Ar.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};Ar.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};Ar.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};Ar.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};Ar.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,(u&1)!==0&&(n=1-n);let p=r+n*(A-r),h,E,I;switch(u){default:case 6:case 0:h=A,E=p,I=r;break;case 1:h=p,E=A,I=r;break;case 2:h=r,E=A,I=p;break;case 3:h=r,E=p,I=A;break;case 4:h=p,E=r,I=A;break;case 5:h=A,E=r,I=p;break}return[h*255,E*255,I*255]};Ar.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};Ar.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};Ar.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};Ar.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};Ar.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};Ar.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};Ar.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?Ar.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};Ar.hsv.ansi16=function(t){return Ar.rgb.ansi16(Ar.hsv.rgb(t),t[2])};Ar.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};Ar.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};Ar.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};Ar.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};Ar.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};Ar.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};Ar.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};Ar.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};Ar.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};Ar.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};Ar.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};Ar.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};Ar.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};Ar.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};Ar.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};Ar.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};Ar.gray.hsl=function(t){return[0,0,t[0]]};Ar.gray.hsv=Ar.gray.hsl;Ar.gray.hwb=function(t){return[0,100,t[0]]};Ar.gray.cmyk=function(t){return[0,0,0,t[0]]};Ar.gray.lab=function(t){return[t[0],0,0]};Ar.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};Ar.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var oX=_((bQt,sX)=>{var SS=AN();function m9e(){let t={},e=Object.keys(SS);for(let r=e.length,o=0;o{var fN=AN(),w9e=oX(),xy={},I9e=Object.keys(fN);function B9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function v9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u{xy[t]={},Object.defineProperty(xy[t],"channels",{value:fN[t].channels}),Object.defineProperty(xy[t],"labels",{value:fN[t].labels});let e=w9e(t);Object.keys(e).forEach(o=>{let a=e[o];xy[t][o]=v9e(a),xy[t][o].raw=B9e(a)})});aX.exports=xy});var DI=_((kQt,pX)=>{"use strict";var cX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,uX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},AX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},PS=t=>t,fX=(t,e,r)=>[t,e,r],ky=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},pN,Qy=(t,e,r,o)=>{pN===void 0&&(pN=lX());let a=o?10:0,n={};for(let[u,A]of Object.entries(pN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function D9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",ky(e.color,"ansi",()=>Qy(cX,"ansi16",PS,!1)),ky(e.color,"ansi256",()=>Qy(uX,"ansi256",PS,!1)),ky(e.color,"ansi16m",()=>Qy(AX,"rgb",fX,!1)),ky(e.bgColor,"ansi",()=>Qy(cX,"ansi16",PS,!0)),ky(e.bgColor,"ansi256",()=>Qy(uX,"ansi256",PS,!0)),ky(e.bgColor,"ansi16m",()=>Qy(AX,"rgb",fX,!0)),e}Object.defineProperty(pX,"exports",{enumerable:!0,get:D9e})});var gX=_((QQt,hX)=>{"use strict";hX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o{"use strict";var S9e=ve("os"),dX=ve("tty"),Ml=gX(),{env:ls}=process,Jp;Ml("no-color")||Ml("no-colors")||Ml("color=false")||Ml("color=never")?Jp=0:(Ml("color")||Ml("colors")||Ml("color=true")||Ml("color=always"))&&(Jp=1);"FORCE_COLOR"in ls&&(ls.FORCE_COLOR==="true"?Jp=1:ls.FORCE_COLOR==="false"?Jp=0:Jp=ls.FORCE_COLOR.length===0?1:Math.min(parseInt(ls.FORCE_COLOR,10),3));function hN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function gN(t,e){if(Jp===0)return 0;if(Ml("color=16m")||Ml("color=full")||Ml("color=truecolor"))return 3;if(Ml("color=256"))return 2;if(t&&!e&&Jp===void 0)return 0;let r=Jp||0;if(ls.TERM==="dumb")return r;if(process.platform==="win32"){let o=S9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in ls)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in ls)||ls.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in ls)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(ls.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in ls)return 1;if(ls.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in ls){let o=parseInt((ls.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(ls.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(ls.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(ls.TERM)||"COLORTERM"in ls?1:r}function P9e(t){let e=gN(t,t&&t.isTTY);return hN(e)}mX.exports={supportsColor:P9e,stdout:hN(gN(!0,dX.isatty(1))),stderr:hN(gN(!0,dX.isatty(2)))}});var EX=_((RQt,yX)=>{"use strict";var b9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},x9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r `:` `)+r,a=o+1,o=t.indexOf(` `,a)}while(o!==-1);return n+=t.substr(a),n};yX.exports={stringReplaceAll:b9e,stringEncaseCRLFWithFirstIndex:x9e}});var vX=_((TQt,BX)=>{"use strict";var k9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,CX=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,Q9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,F9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,R9e=new Map([["n",` `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function IX(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):R9e.get(t)||t}function T9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(Q9e))r.push(a[2].replace(F9e,(A,p,h)=>p?IX(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function N9e(t){CX.lastIndex=0;let e=[],r;for(;(r=CX.exec(t))!==null;){let o=r[1];if(r[2]){let a=T9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function wX(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}BX.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(k9e,(n,u,A,p,h,E)=>{if(u)a.push(IX(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:wX(t,r)(I)),r.push({inverse:A,styles:N9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(wX(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var IN=_((NQt,bX)=>{"use strict";var SI=DI(),{stdout:yN,stderr:EN}=dN(),{stringReplaceAll:L9e,stringEncaseCRLFWithFirstIndex:O9e}=EX(),DX=["ansi","ansi","ansi256","ansi16m"],Fy=Object.create(null),M9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=yN?yN.level:0;t.level=e.level===void 0?r:e.level},CN=class{constructor(e){return SX(e)}},SX=t=>{let e={};return M9e(e,t),e.template=(...r)=>H9e(e.template,...r),Object.setPrototypeOf(e,bS.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=CN,e.template};function bS(t){return SX(t)}for(let[t,e]of Object.entries(SI))Fy[t]={get(){let r=xS(this,wN(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Fy.visible={get(){let t=xS(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var PX=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of PX)Fy[t]={get(){let{level:e}=this;return function(...r){let o=wN(SI.color[DX[e]][t](...r),SI.color.close,this._styler);return xS(this,o,this._isEmpty)}}};for(let t of PX){let e="bg"+t[0].toUpperCase()+t.slice(1);Fy[e]={get(){let{level:r}=this;return function(...o){let a=wN(SI.bgColor[DX[r]][t](...o),SI.bgColor.close,this._styler);return xS(this,a,this._isEmpty)}}}}var U9e=Object.defineProperties(()=>{},{...Fy,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),wN=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},xS=(t,e,r)=>{let o=(...a)=>_9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=U9e,o._generator=t,o._styler=e,o._isEmpty=r,o},_9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=L9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` `);return n!==-1&&(e=O9e(e,a,o,n)),o+e+a},mN,H9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";Ul.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Ul.find=(t,e)=>t.nodes.find(r=>r.type===e);Ul.exceedsLimit=(t,e,r=1,o)=>o===!1||!Ul.isInteger(t)||!Ul.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Ul.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];!o||(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Ul.encloseBrace=t=>t.type!=="brace"?!1:t.commas>>0+t.ranges>>0===0?(t.invalid=!0,!0):!1;Ul.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:t.commas>>0+t.ranges>>0===0||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Ul.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Ul.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Ul.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a{"use strict";var xX=kS();kX.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&xX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&xX.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var FX=_((MQt,QX)=>{"use strict";QX.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var HX=_((UQt,_X)=>{"use strict";var RX=FX(),Ad=(t,e,r)=>{if(RX(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(RX(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(Ad.cache.hasOwnProperty(p))return Ad.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let R=t+"|"+e;return o.capture?`(${R})`:o.wrap===!1?R:`(?:${R})`}let I=UX(t)||UX(e),v={min:t,max:e,a:h,b:E},x=[],C=[];if(I&&(v.isPadded=I,v.maxLen=String(v.max).length),h<0){let R=E<0?Math.abs(E):1;C=TX(R,Math.abs(h),v,o),h=v.a=0}return E>=0&&(x=TX(h,E,v,o)),v.negatives=C,v.positives=x,v.result=q9e(C,x,o),o.capture===!0?v.result=`(${v.result})`:o.wrap!==!1&&x.length+C.length>1&&(v.result=`(?:${v.result})`),Ad.cache[p]=v,v.result};function q9e(t,e,r){let o=BN(t,e,"-",!1,r)||[],a=BN(e,t,"",!1,r)||[],n=BN(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function j9e(t,e){let r=1,o=1,a=LX(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=LX(t,r);for(a=OX(e+1,o)-1;t1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+MX(A.count),u=h+1;continue}r.isPadded&&(I=V9e(h,r,o)),E.string=I+E.pattern+MX(E.count),n.push(E),u=h+1,A=E}return n}function BN(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!NX(e,"string",A)&&n.push(r+A),o&&NX(e,"string",A)&&n.push(r+A)}return n}function Y9e(t,e){let r=[];for(let o=0;oe?1:e>t?-1:0}function NX(t,e,r){return t.some(o=>o[e]===r)}function LX(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function OX(t,e){return t-t%Math.pow(10,e)}function MX(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function K9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function UX(t){return/^-?(0+)\d/.test(t)}function V9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}Ad.cache={};Ad.clearCache=()=>Ad.cache={};_X.exports=Ad});var SN=_((_Qt,JX)=>{"use strict";var J9e=ve("util"),GX=HX(),qX=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),z9e=t=>e=>t===!0?Number(e):String(e),vN=t=>typeof t=="number"||typeof t=="string"&&t!=="",bI=t=>Number.isInteger(+t),DN=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},X9e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,Z9e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},jX=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((u,A)=>uA?1:0),t.positives.sort((u,A)=>uA?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},YX=(t,e,r,o)=>{if(r)return GX(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},WX=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return GX(t,e,r)},KX=(...t)=>new RangeError("Invalid range arguments: "+J9e.inspect(...t)),VX=(t,e,r)=>{if(r.strictRanges===!0)throw KX([t,e]);return[]},e7e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},t7e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw KX([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=DN(A)||DN(p)||DN(h),I=E?Math.max(A.length,p.length,h.length):0,v=E===!1&&X9e(t,e,o)===!1,x=o.transform||z9e(v);if(o.toRegex&&r===1)return YX(jX(t,I),jX(e,I),!0,o);let C={negatives:[],positives:[]},R=J=>C[J<0?"negatives":"positives"].push(Math.abs(J)),L=[],U=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?R(a):L.push(Z9e(x(a,U),I,v)),a=u?a-r:a+r,U++;return o.toRegex===!0?r>1?$9e(C,o):WX(L,null,{wrap:!1,...o}):L},r7e=(t,e,r=1,o={})=>{if(!bI(t)&&t.length>1||!bI(e)&&e.length>1)return VX(t,e,o);let a=o.transform||(v=>String.fromCharCode(v)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return YX(p,h,!1,o);let E=[],I=0;for(;A?n>=u:n<=u;)E.push(a(n,I)),n=A?n-r:n+r,I++;return o.toRegex===!0?WX(E,null,{wrap:!1,options:o}):E},RS=(t,e,r,o={})=>{if(e==null&&vN(t))return[t];if(!vN(t)||!vN(e))return VX(t,e,o);if(typeof r=="function")return RS(t,e,1,{transform:r});if(qX(r))return RS(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,bI(r)?bI(t)&&bI(e)?t7e(t,e,r,a):r7e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!qX(r)?e7e(r,a):RS(t,e,1,r)};JX.exports=RS});var ZX=_((HQt,XX)=>{"use strict";var n7e=SN(),zX=kS(),i7e=(t,e={})=>{let r=(o,a={})=>{let n=zX.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=zX.reduce(o.nodes),I=n7e(...E,{...e,wrap:!1,toRegex:!0});if(I.length!==0)return E.length>1&&I.length>1?`(${I})`:I}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};XX.exports=i7e});var tZ=_((qQt,eZ)=>{"use strict";var s7e=SN(),$X=QS(),Ry=kS(),fd=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?Ry.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(fd(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?fd(a,n,r):a+n);return Ry.flatten(o)},o7e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(fd(A.pop(),$X(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(fd(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let I=Ry.reduce(a.nodes);if(Ry.exceedsLimit(...I,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let v=s7e(...I,e);v.length===0&&(v=$X(a,e)),A.push(fd(A.pop(),v)),a.nodes=[];return}let p=Ry.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let I=0;I{"use strict";rZ.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` `,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var lZ=_((GQt,aZ)=>{"use strict";var a7e=QS(),{MAX_LENGTH:iZ,CHAR_BACKSLASH:PN,CHAR_BACKTICK:l7e,CHAR_COMMA:c7e,CHAR_DOT:u7e,CHAR_LEFT_PARENTHESES:A7e,CHAR_RIGHT_PARENTHESES:f7e,CHAR_LEFT_CURLY_BRACE:p7e,CHAR_RIGHT_CURLY_BRACE:h7e,CHAR_LEFT_SQUARE_BRACKET:sZ,CHAR_RIGHT_SQUARE_BRACKET:oZ,CHAR_DOUBLE_QUOTE:g7e,CHAR_SINGLE_QUOTE:d7e,CHAR_NO_BREAK_SPACE:m7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:y7e}=nZ(),E7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(iZ,r.maxLength):iZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,I=0,v,x={},C=()=>t[E++],R=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(R({type:"bos"});E0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:a7e(u)}]}R({type:"comma",value:v}),u.commas++;continue}if(v===u7e&&I>0&&u.commas===0){let L=u.nodes;if(I===0||L.length===0){R({type:"text",value:v});continue}if(A.type==="dot"){if(u.range=[],A.value+=v,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+v,A=U,u.ranges--;continue}R({type:"dot",value:v});continue}R({type:"text",value:v})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(J=>{J.nodes||(J.type==="open"&&(J.isOpen=!0),J.type==="close"&&(J.isClose=!0),J.nodes||(J.type="text"),J.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return R({type:"eos"}),a};aZ.exports=E7e});var AZ=_((YQt,uZ)=>{"use strict";var cZ=QS(),C7e=ZX(),w7e=tZ(),I7e=lZ(),rl=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=rl.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(rl.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};rl.parse=(t,e={})=>I7e(t,e);rl.stringify=(t,e={})=>cZ(typeof t=="string"?rl.parse(t,e):t,e);rl.compile=(t,e={})=>(typeof t=="string"&&(t=rl.parse(t,e)),C7e(t,e));rl.expand=(t,e={})=>{typeof t=="string"&&(t=rl.parse(t,e));let r=w7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};rl.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?rl.compile(t,e):rl.expand(t,e);uZ.exports=rl});var xI=_((WQt,dZ)=>{"use strict";var B7e=ve("path"),Ku="\\\\/",fZ=`[^${Ku}]`,vf="\\.",v7e="\\+",D7e="\\?",TS="\\/",S7e="(?=.)",pZ="[^/]",bN=`(?:${TS}|$)`,hZ=`(?:^|${TS})`,xN=`${vf}{1,2}${bN}`,P7e=`(?!${vf})`,b7e=`(?!${hZ}${xN})`,x7e=`(?!${vf}{0,1}${bN})`,k7e=`(?!${xN})`,Q7e=`[^.${TS}]`,F7e=`${pZ}*?`,gZ={DOT_LITERAL:vf,PLUS_LITERAL:v7e,QMARK_LITERAL:D7e,SLASH_LITERAL:TS,ONE_CHAR:S7e,QMARK:pZ,END_ANCHOR:bN,DOTS_SLASH:xN,NO_DOT:P7e,NO_DOTS:b7e,NO_DOT_SLASH:x7e,NO_DOTS_SLASH:k7e,QMARK_NO_DOT:Q7e,STAR:F7e,START_ANCHOR:hZ},R7e={...gZ,SLASH_LITERAL:`[${Ku}]`,QMARK:fZ,STAR:`${fZ}*?`,DOTS_SLASH:`${vf}{1,2}(?:[${Ku}]|$)`,NO_DOT:`(?!${vf})`,NO_DOTS:`(?!(?:^|[${Ku}])${vf}{1,2}(?:[${Ku}]|$))`,NO_DOT_SLASH:`(?!${vf}{0,1}(?:[${Ku}]|$))`,NO_DOTS_SLASH:`(?!${vf}{1,2}(?:[${Ku}]|$))`,QMARK_NO_DOT:`[^.${Ku}]`,START_ANCHOR:`(?:^|[${Ku}])`,END_ANCHOR:`(?:[${Ku}]|$)`},T7e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};dZ.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:T7e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:B7e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?R7e:gZ}}});var kI=_(Sa=>{"use strict";var N7e=ve("path"),L7e=process.platform==="win32",{REGEX_BACKSLASH:O7e,REGEX_REMOVE_BACKSLASH:M7e,REGEX_SPECIAL_CHARS:U7e,REGEX_SPECIAL_CHARS_GLOBAL:_7e}=xI();Sa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);Sa.hasRegexChars=t=>U7e.test(t);Sa.isRegexChar=t=>t.length===1&&Sa.hasRegexChars(t);Sa.escapeRegex=t=>t.replace(_7e,"\\$1");Sa.toPosixSlashes=t=>t.replace(O7e,"/");Sa.removeBackslashes=t=>t.replace(M7e,e=>e==="\\"?"":e);Sa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};Sa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:L7e===!0||N7e.sep==="\\";Sa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?Sa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};Sa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};Sa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var vZ=_((VQt,BZ)=>{"use strict";var mZ=kI(),{CHAR_ASTERISK:kN,CHAR_AT:H7e,CHAR_BACKWARD_SLASH:QI,CHAR_COMMA:q7e,CHAR_DOT:QN,CHAR_EXCLAMATION_MARK:FN,CHAR_FORWARD_SLASH:IZ,CHAR_LEFT_CURLY_BRACE:RN,CHAR_LEFT_PARENTHESES:TN,CHAR_LEFT_SQUARE_BRACKET:j7e,CHAR_PLUS:G7e,CHAR_QUESTION_MARK:yZ,CHAR_RIGHT_CURLY_BRACE:Y7e,CHAR_RIGHT_PARENTHESES:EZ,CHAR_RIGHT_SQUARE_BRACKET:W7e}=xI(),CZ=t=>t===IZ||t===QI,wZ=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},K7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,I=0,v=!1,x=!1,C=!1,R=!1,L=!1,U=!1,J=!1,te=!1,ae=!1,fe=!1,ce=0,me,he,Be={value:"",depth:0,isGlob:!1},we=()=>h>=o,g=()=>p.charCodeAt(h+1),Ee=()=>(me=he,p.charCodeAt(++h));for(;h0&&(le=p.slice(0,E),p=p.slice(E),I-=E),Se&&C===!0&&I>0?(Se=p.slice(0,I),ne=p.slice(I)):C===!0?(Se="",ne=p):Se=p,Se&&Se!==""&&Se!=="/"&&Se!==p&&CZ(Se.charCodeAt(Se.length-1))&&(Se=Se.slice(0,-1)),r.unescape===!0&&(ne&&(ne=mZ.removeBackslashes(ne)),Se&&J===!0&&(Se=mZ.removeBackslashes(Se)));let ee={prefix:le,input:t,start:E,base:Se,glob:ne,isBrace:v,isBracket:x,isGlob:C,isExtglob:R,isGlobstar:L,negated:te,negatedExtglob:ae};if(r.tokens===!0&&(ee.maxDepth=0,CZ(he)||u.push(Be),ee.tokens=u),r.parts===!0||r.tokens===!0){let Ie;for(let Fe=0;Fe{"use strict";var NS=xI(),nl=kI(),{MAX_LENGTH:LS,POSIX_REGEX_SOURCE:V7e,REGEX_NON_SPECIAL_CHARS:J7e,REGEX_SPECIAL_CHARS_BACKREF:z7e,REPLACEMENTS:DZ}=NS,X7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>nl.escapeRegex(a)).join("..")}return r},Ty=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,NN=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=DZ[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(LS,r.maxLength):LS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=nl.isWindows(e),h=NS.globChars(p),E=NS.extglobChars(h),{DOT_LITERAL:I,PLUS_LITERAL:v,SLASH_LITERAL:x,ONE_CHAR:C,DOTS_SLASH:R,NO_DOT:L,NO_DOT_SLASH:U,NO_DOTS_SLASH:J,QMARK:te,QMARK_NO_DOT:ae,STAR:fe,START_ANCHOR:ce}=h,me=b=>`(${A}(?:(?!${ce}${b.dot?R:I}).)*?)`,he=r.dot?"":L,Be=r.dot?te:ae,we=r.bash===!0?me(r):fe;r.capture&&(we=`(${we})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=nl.removePrefix(t,g),a=t.length;let Ee=[],Se=[],le=[],ne=n,ee,Ie=()=>g.index===a-1,Fe=g.peek=(b=1)=>t[g.index+b],At=g.advance=()=>t[++g.index]||"",H=()=>t.slice(g.index+1),at=(b="",w=0)=>{g.consumed+=b,g.index+=w},Re=b=>{g.output+=b.output!=null?b.output:b.value,at(b.value)},ke=()=>{let b=1;for(;Fe()==="!"&&(Fe(2)!=="("||Fe(3)==="?");)At(),g.start++,b++;return b%2===0?!1:(g.negated=!0,g.start++,!0)},xe=b=>{g[b]++,le.push(b)},He=b=>{g[b]--,le.pop()},Te=b=>{if(ne.type==="globstar"){let w=g.braces>0&&(b.type==="comma"||b.type==="brace"),P=b.extglob===!0||Ee.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!w&&!P&&(g.output=g.output.slice(0,-ne.output.length),ne.type="star",ne.value="*",ne.output=we,g.output+=ne.output)}if(Ee.length&&b.type!=="paren"&&(Ee[Ee.length-1].inner+=b.value),(b.value||b.output)&&Re(b),ne&&ne.type==="text"&&b.type==="text"){ne.value+=b.value,ne.output=(ne.output||"")+b.value;return}b.prev=ne,u.push(b),ne=b},Je=(b,w)=>{let P={...E[w],conditions:1,inner:""};P.prev=ne,P.parens=g.parens,P.output=g.output;let y=(r.capture?"(":"")+P.open;xe("parens"),Te({type:b,value:w,output:g.output?"":C}),Te({type:"paren",extglob:!0,value:At(),output:y}),Ee.push(P)},qe=b=>{let w=b.close+(r.capture?")":""),P;if(b.type==="negate"){let y=we;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(y=me(r)),(y!==we||Ie()||/^\)+$/.test(H()))&&(w=b.close=`)$))${y}`),b.inner.includes("*")&&(P=H())&&/^\.[^\\/.]+$/.test(P)){let F=NN(P,{...e,fastpaths:!1}).output;w=b.close=`)${F})${y})`}b.prev.type==="bos"&&(g.negatedExtglob=!0)}Te({type:"paren",extglob:!0,value:ee,output:w}),He("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let b=!1,w=t.replace(z7e,(P,y,F,z,X,Z)=>z==="\\"?(b=!0,P):z==="?"?y?y+z+(X?te.repeat(X.length):""):Z===0?Be+(X?te.repeat(X.length):""):te.repeat(F.length):z==="."?I.repeat(F.length):z==="*"?y?y+z+(X?we:""):we:y?P:`\\${P}`);return b===!0&&(r.unescape===!0?w=w.replace(/\\/g,""):w=w.replace(/\\+/g,P=>P.length%2===0?"\\\\":P?"\\":"")),w===t&&r.contains===!0?(g.output=t,g):(g.output=nl.wrapOutput(w,g,e),g)}for(;!Ie();){if(ee=At(),ee==="\0")continue;if(ee==="\\"){let P=Fe();if(P==="/"&&r.bash!==!0||P==="."||P===";")continue;if(!P){ee+="\\",Te({type:"text",value:ee});continue}let y=/^\\+/.exec(H()),F=0;if(y&&y[0].length>2&&(F=y[0].length,g.index+=F,F%2!==0&&(ee+="\\")),r.unescape===!0?ee=At():ee+=At(),g.brackets===0){Te({type:"text",value:ee});continue}}if(g.brackets>0&&(ee!=="]"||ne.value==="["||ne.value==="[^")){if(r.posix!==!1&&ee===":"){let P=ne.value.slice(1);if(P.includes("[")&&(ne.posix=!0,P.includes(":"))){let y=ne.value.lastIndexOf("["),F=ne.value.slice(0,y),z=ne.value.slice(y+2),X=V7e[z];if(X){ne.value=F+X,g.backtrack=!0,At(),!n.output&&u.indexOf(ne)===1&&(n.output=C);continue}}}(ee==="["&&Fe()!==":"||ee==="-"&&Fe()==="]")&&(ee=`\\${ee}`),ee==="]"&&(ne.value==="["||ne.value==="[^")&&(ee=`\\${ee}`),r.posix===!0&&ee==="!"&&ne.value==="["&&(ee="^"),ne.value+=ee,Re({value:ee});continue}if(g.quotes===1&&ee!=='"'){ee=nl.escapeRegex(ee),ne.value+=ee,Re({value:ee});continue}if(ee==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&Te({type:"text",value:ee});continue}if(ee==="("){xe("parens"),Te({type:"paren",value:ee});continue}if(ee===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Ty("opening","("));let P=Ee[Ee.length-1];if(P&&g.parens===P.parens+1){qe(Ee.pop());continue}Te({type:"paren",value:ee,output:g.parens?")":"\\)"}),He("parens");continue}if(ee==="["){if(r.nobracket===!0||!H().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Ty("closing","]"));ee=`\\${ee}`}else xe("brackets");Te({type:"bracket",value:ee});continue}if(ee==="]"){if(r.nobracket===!0||ne&&ne.type==="bracket"&&ne.value.length===1){Te({type:"text",value:ee,output:`\\${ee}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Ty("opening","["));Te({type:"text",value:ee,output:`\\${ee}`});continue}He("brackets");let P=ne.value.slice(1);if(ne.posix!==!0&&P[0]==="^"&&!P.includes("/")&&(ee=`/${ee}`),ne.value+=ee,Re({value:ee}),r.literalBrackets===!1||nl.hasRegexChars(P))continue;let y=nl.escapeRegex(ne.value);if(g.output=g.output.slice(0,-ne.value.length),r.literalBrackets===!0){g.output+=y,ne.value=y;continue}ne.value=`(${A}${y}|${ne.value})`,g.output+=ne.value;continue}if(ee==="{"&&r.nobrace!==!0){xe("braces");let P={type:"brace",value:ee,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};Se.push(P),Te(P);continue}if(ee==="}"){let P=Se[Se.length-1];if(r.nobrace===!0||!P){Te({type:"text",value:ee,output:ee});continue}let y=")";if(P.dots===!0){let F=u.slice(),z=[];for(let X=F.length-1;X>=0&&(u.pop(),F[X].type!=="brace");X--)F[X].type!=="dots"&&z.unshift(F[X].value);y=X7e(z,r),g.backtrack=!0}if(P.comma!==!0&&P.dots!==!0){let F=g.output.slice(0,P.outputIndex),z=g.tokens.slice(P.tokensIndex);P.value=P.output="\\{",ee=y="\\}",g.output=F;for(let X of z)g.output+=X.output||X.value}Te({type:"brace",value:ee,output:y}),He("braces"),Se.pop();continue}if(ee==="|"){Ee.length>0&&Ee[Ee.length-1].conditions++,Te({type:"text",value:ee});continue}if(ee===","){let P=ee,y=Se[Se.length-1];y&&le[le.length-1]==="braces"&&(y.comma=!0,P="|"),Te({type:"comma",value:ee,output:P});continue}if(ee==="/"){if(ne.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ne=n;continue}Te({type:"slash",value:ee,output:x});continue}if(ee==="."){if(g.braces>0&&ne.type==="dot"){ne.value==="."&&(ne.output=I);let P=Se[Se.length-1];ne.type="dots",ne.output+=ee,ne.value+=ee,P.dots=!0;continue}if(g.braces+g.parens===0&&ne.type!=="bos"&&ne.type!=="slash"){Te({type:"text",value:ee,output:I});continue}Te({type:"dot",value:ee,output:I});continue}if(ee==="?"){if(!(ne&&ne.value==="(")&&r.noextglob!==!0&&Fe()==="("&&Fe(2)!=="?"){Je("qmark",ee);continue}if(ne&&ne.type==="paren"){let y=Fe(),F=ee;if(y==="<"&&!nl.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ne.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(H()))&&(F=`\\${ee}`),Te({type:"text",value:ee,output:F});continue}if(r.dot!==!0&&(ne.type==="slash"||ne.type==="bos")){Te({type:"qmark",value:ee,output:ae});continue}Te({type:"qmark",value:ee,output:te});continue}if(ee==="!"){if(r.noextglob!==!0&&Fe()==="("&&(Fe(2)!=="?"||!/[!=<:]/.test(Fe(3)))){Je("negate",ee);continue}if(r.nonegate!==!0&&g.index===0){ke();continue}}if(ee==="+"){if(r.noextglob!==!0&&Fe()==="("&&Fe(2)!=="?"){Je("plus",ee);continue}if(ne&&ne.value==="("||r.regex===!1){Te({type:"plus",value:ee,output:v});continue}if(ne&&(ne.type==="bracket"||ne.type==="paren"||ne.type==="brace")||g.parens>0){Te({type:"plus",value:ee});continue}Te({type:"plus",value:v});continue}if(ee==="@"){if(r.noextglob!==!0&&Fe()==="("&&Fe(2)!=="?"){Te({type:"at",extglob:!0,value:ee,output:""});continue}Te({type:"text",value:ee});continue}if(ee!=="*"){(ee==="$"||ee==="^")&&(ee=`\\${ee}`);let P=J7e.exec(H());P&&(ee+=P[0],g.index+=P[0].length),Te({type:"text",value:ee});continue}if(ne&&(ne.type==="globstar"||ne.star===!0)){ne.type="star",ne.star=!0,ne.value+=ee,ne.output=we,g.backtrack=!0,g.globstar=!0,at(ee);continue}let b=H();if(r.noextglob!==!0&&/^\([^?]/.test(b)){Je("star",ee);continue}if(ne.type==="star"){if(r.noglobstar===!0){at(ee);continue}let P=ne.prev,y=P.prev,F=P.type==="slash"||P.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!F||b[0]&&b[0]!=="/")){Te({type:"star",value:ee,output:""});continue}let X=g.braces>0&&(P.type==="comma"||P.type==="brace"),Z=Ee.length&&(P.type==="pipe"||P.type==="paren");if(!F&&P.type!=="paren"&&!X&&!Z){Te({type:"star",value:ee,output:""});continue}for(;b.slice(0,3)==="/**";){let ie=t[g.index+4];if(ie&&ie!=="/")break;b=b.slice(3),at("/**",3)}if(P.type==="bos"&&Ie()){ne.type="globstar",ne.value+=ee,ne.output=me(r),g.output=ne.output,g.globstar=!0,at(ee);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&!z&&Ie()){g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=me(r)+(r.strictSlashes?")":"|$)"),ne.value+=ee,g.globstar=!0,g.output+=P.output+ne.output,at(ee);continue}if(P.type==="slash"&&P.prev.type!=="bos"&&b[0]==="/"){let ie=b[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(P.output+ne.output).length),P.output=`(?:${P.output}`,ne.type="globstar",ne.output=`${me(r)}${x}|${x}${ie})`,ne.value+=ee,g.output+=P.output+ne.output,g.globstar=!0,at(ee+At()),Te({type:"slash",value:"/",output:""});continue}if(P.type==="bos"&&b[0]==="/"){ne.type="globstar",ne.value+=ee,ne.output=`(?:^|${x}|${me(r)}${x})`,g.output=ne.output,g.globstar=!0,at(ee+At()),Te({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ne.output.length),ne.type="globstar",ne.output=me(r),ne.value+=ee,g.output+=ne.output,g.globstar=!0,at(ee);continue}let w={type:"star",value:ee,output:we};if(r.bash===!0){w.output=".*?",(ne.type==="bos"||ne.type==="slash")&&(w.output=he+w.output),Te(w);continue}if(ne&&(ne.type==="bracket"||ne.type==="paren")&&r.regex===!0){w.output=ee,Te(w);continue}(g.index===g.start||ne.type==="slash"||ne.type==="dot")&&(ne.type==="dot"?(g.output+=U,ne.output+=U):r.dot===!0?(g.output+=J,ne.output+=J):(g.output+=he,ne.output+=he),Fe()!=="*"&&(g.output+=C,ne.output+=C)),Te(w)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ty("closing","]"));g.output=nl.escapeLast(g.output,"["),He("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ty("closing",")"));g.output=nl.escapeLast(g.output,"("),He("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Ty("closing","}"));g.output=nl.escapeLast(g.output,"{"),He("braces")}if(r.strictSlashes!==!0&&(ne.type==="star"||ne.type==="bracket")&&Te({type:"maybe_slash",value:"",output:`${x}?`}),g.backtrack===!0){g.output="";for(let b of g.tokens)g.output+=b.output!=null?b.output:b.value,b.suffix&&(g.output+=b.suffix)}return g};NN.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(LS,r.maxLength):LS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=DZ[t]||t;let n=nl.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:I,NO_DOTS_SLASH:v,STAR:x,START_ANCHOR:C}=NS.globChars(n),R=r.dot?I:E,L=r.dot?v:E,U=r.capture?"":"?:",J={negated:!1,prefix:""},te=r.bash===!0?".*?":x;r.capture&&(te=`(${te})`);let ae=he=>he.noglobstar===!0?te:`(${U}(?:(?!${C}${he.dot?h:u}).)*?)`,fe=he=>{switch(he){case"*":return`${R}${p}${te}`;case".*":return`${u}${p}${te}`;case"*.*":return`${R}${te}${u}${p}${te}`;case"*/*":return`${R}${te}${A}${p}${L}${te}`;case"**":return R+ae(r);case"**/*":return`(?:${R}${ae(r)}${A})?${L}${p}${te}`;case"**/*.*":return`(?:${R}${ae(r)}${A})?${L}${te}${u}${p}${te}`;case"**/.*":return`(?:${R}${ae(r)}${A})?${u}${p}${te}`;default:{let Be=/^(.*?)\.(\w+)$/.exec(he);if(!Be)return;let we=fe(Be[1]);return we?we+u+Be[2]:void 0}}},ce=nl.removePrefix(t,J),me=fe(ce);return me&&r.strictSlashes!==!0&&(me+=`${A}?`),me};SZ.exports=NN});var xZ=_((zQt,bZ)=>{"use strict";var Z7e=ve("path"),$7e=vZ(),LN=PZ(),ON=kI(),eYe=xI(),tYe=t=>t&&typeof t=="object"&&!Array.isArray(t),Mi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(v=>Mi(v,e,r));return v=>{for(let x of E){let C=x(v);if(C)return C}return!1}}let o=tYe(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=ON.isWindows(e),u=o?Mi.compileRe(t,e):Mi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Mi(a.ignore,E,r)}let h=(E,I=!1)=>{let{isMatch:v,match:x,output:C}=Mi.test(E,u,e,{glob:t,posix:n}),R={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:x,isMatch:v};return typeof a.onResult=="function"&&a.onResult(R),v===!1?(R.isMatch=!1,I?R:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(R),R.isMatch=!1,I?R:!1):(typeof a.onMatch=="function"&&a.onMatch(R),I?R:!0)};return r&&(h.state=A),h};Mi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?ON.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Mi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:Boolean(A),match:A,output:p}};Mi.matchBase=(t,e,r,o=ON.isWindows(r))=>(e instanceof RegExp?e:Mi.makeRe(e,r)).test(Z7e.basename(t));Mi.isMatch=(t,e,r)=>Mi(e,r)(t);Mi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Mi.parse(r,e)):LN(t,{...e,fastpaths:!1});Mi.scan=(t,e)=>$7e(t,e);Mi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Mi.toRegex(A,e);return o===!0&&(p.state=t),p};Mi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=LN.fastpaths(t,e)),a.output||(a=LN(t,e)),Mi.compileRe(a,e,r,o)};Mi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Mi.constants=eYe;bZ.exports=Mi});var QZ=_((XQt,kZ)=>{"use strict";kZ.exports=xZ()});var Zo=_((ZQt,NZ)=>{"use strict";var RZ=ve("util"),TZ=AZ(),Vu=QZ(),MN=kI(),FZ=t=>t===""||t==="./",yi=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};yi.match=yi;yi.matcher=(t,e)=>Vu(t,e);yi.isMatch=(t,e,r)=>Vu(e,r)(t);yi.any=yi.isMatch;yi.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(yi(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};yi.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>yi.contains(t,o,r));if(typeof e=="string"){if(FZ(t)||FZ(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return yi.isMatch(t,e,{...r,contains:!0})};yi.matchKeys=(t,e,r)=>{if(!MN.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=yi(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};yi.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Vu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};yi.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Vu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};yi.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${RZ.inspect(t)}"`);return[].concat(e).every(o=>Vu(o,r)(t))};yi.capture=(t,e,r)=>{let o=MN.isWindows(r),n=Vu.makeRe(String(t),{...r,capture:!0}).exec(o?MN.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};yi.makeRe=(...t)=>Vu.makeRe(...t);yi.scan=(...t)=>Vu.scan(...t);yi.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of TZ(String(o),e))r.push(Vu.parse(a,e));return r};yi.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:TZ(t,e)};yi.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return yi.braces(t,{...e,expand:!0})};NZ.exports=yi});var OZ=_(($Qt,LZ)=>{"use strict";LZ.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var OS=_((eFt,MZ)=>{"use strict";var rYe=OZ();MZ.exports=t=>typeof t=="string"?t.replace(rYe(),""):t});var _Z=_((tFt,UZ)=>{function nYe(){this.__data__=[],this.size=0}UZ.exports=nYe});var Ny=_((rFt,HZ)=>{function iYe(t,e){return t===e||t!==t&&e!==e}HZ.exports=iYe});var FI=_((nFt,qZ)=>{var sYe=Ny();function oYe(t,e){for(var r=t.length;r--;)if(sYe(t[r][0],e))return r;return-1}qZ.exports=oYe});var GZ=_((iFt,jZ)=>{var aYe=FI(),lYe=Array.prototype,cYe=lYe.splice;function uYe(t){var e=this.__data__,r=aYe(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():cYe.call(e,r,1),--this.size,!0}jZ.exports=uYe});var WZ=_((sFt,YZ)=>{var AYe=FI();function fYe(t){var e=this.__data__,r=AYe(e,t);return r<0?void 0:e[r][1]}YZ.exports=fYe});var VZ=_((oFt,KZ)=>{var pYe=FI();function hYe(t){return pYe(this.__data__,t)>-1}KZ.exports=hYe});var zZ=_((aFt,JZ)=>{var gYe=FI();function dYe(t,e){var r=this.__data__,o=gYe(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}JZ.exports=dYe});var RI=_((lFt,XZ)=>{var mYe=_Z(),yYe=GZ(),EYe=WZ(),CYe=VZ(),wYe=zZ();function Ly(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var IYe=RI();function BYe(){this.__data__=new IYe,this.size=0}ZZ.exports=BYe});var t$=_((uFt,e$)=>{function vYe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}e$.exports=vYe});var n$=_((AFt,r$)=>{function DYe(t){return this.__data__.get(t)}r$.exports=DYe});var s$=_((fFt,i$)=>{function SYe(t){return this.__data__.has(t)}i$.exports=SYe});var UN=_((pFt,o$)=>{var PYe=typeof global=="object"&&global&&global.Object===Object&&global;o$.exports=PYe});var _l=_((hFt,a$)=>{var bYe=UN(),xYe=typeof self=="object"&&self&&self.Object===Object&&self,kYe=bYe||xYe||Function("return this")();a$.exports=kYe});var pd=_((gFt,l$)=>{var QYe=_l(),FYe=QYe.Symbol;l$.exports=FYe});var f$=_((dFt,A$)=>{var c$=pd(),u$=Object.prototype,RYe=u$.hasOwnProperty,TYe=u$.toString,TI=c$?c$.toStringTag:void 0;function NYe(t){var e=RYe.call(t,TI),r=t[TI];try{t[TI]=void 0;var o=!0}catch{}var a=TYe.call(t);return o&&(e?t[TI]=r:delete t[TI]),a}A$.exports=NYe});var h$=_((mFt,p$)=>{var LYe=Object.prototype,OYe=LYe.toString;function MYe(t){return OYe.call(t)}p$.exports=MYe});var hd=_((yFt,m$)=>{var g$=pd(),UYe=f$(),_Ye=h$(),HYe="[object Null]",qYe="[object Undefined]",d$=g$?g$.toStringTag:void 0;function jYe(t){return t==null?t===void 0?qYe:HYe:d$&&d$ in Object(t)?UYe(t):_Ye(t)}m$.exports=jYe});var il=_((EFt,y$)=>{function GYe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}y$.exports=GYe});var MS=_((CFt,E$)=>{var YYe=hd(),WYe=il(),KYe="[object AsyncFunction]",VYe="[object Function]",JYe="[object GeneratorFunction]",zYe="[object Proxy]";function XYe(t){if(!WYe(t))return!1;var e=YYe(t);return e==VYe||e==JYe||e==KYe||e==zYe}E$.exports=XYe});var w$=_((wFt,C$)=>{var ZYe=_l(),$Ye=ZYe["__core-js_shared__"];C$.exports=$Ye});var v$=_((IFt,B$)=>{var _N=w$(),I$=function(){var t=/[^.]+$/.exec(_N&&_N.keys&&_N.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function eWe(t){return!!I$&&I$ in t}B$.exports=eWe});var HN=_((BFt,D$)=>{var tWe=Function.prototype,rWe=tWe.toString;function nWe(t){if(t!=null){try{return rWe.call(t)}catch{}try{return t+""}catch{}}return""}D$.exports=nWe});var P$=_((vFt,S$)=>{var iWe=MS(),sWe=v$(),oWe=il(),aWe=HN(),lWe=/[\\^$.*+?()[\]{}|]/g,cWe=/^\[object .+?Constructor\]$/,uWe=Function.prototype,AWe=Object.prototype,fWe=uWe.toString,pWe=AWe.hasOwnProperty,hWe=RegExp("^"+fWe.call(pWe).replace(lWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function gWe(t){if(!oWe(t)||sWe(t))return!1;var e=iWe(t)?hWe:cWe;return e.test(aWe(t))}S$.exports=gWe});var x$=_((DFt,b$)=>{function dWe(t,e){return t?.[e]}b$.exports=dWe});var zp=_((SFt,k$)=>{var mWe=P$(),yWe=x$();function EWe(t,e){var r=yWe(t,e);return mWe(r)?r:void 0}k$.exports=EWe});var US=_((PFt,Q$)=>{var CWe=zp(),wWe=_l(),IWe=CWe(wWe,"Map");Q$.exports=IWe});var NI=_((bFt,F$)=>{var BWe=zp(),vWe=BWe(Object,"create");F$.exports=vWe});var N$=_((xFt,T$)=>{var R$=NI();function DWe(){this.__data__=R$?R$(null):{},this.size=0}T$.exports=DWe});var O$=_((kFt,L$)=>{function SWe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}L$.exports=SWe});var U$=_((QFt,M$)=>{var PWe=NI(),bWe="__lodash_hash_undefined__",xWe=Object.prototype,kWe=xWe.hasOwnProperty;function QWe(t){var e=this.__data__;if(PWe){var r=e[t];return r===bWe?void 0:r}return kWe.call(e,t)?e[t]:void 0}M$.exports=QWe});var H$=_((FFt,_$)=>{var FWe=NI(),RWe=Object.prototype,TWe=RWe.hasOwnProperty;function NWe(t){var e=this.__data__;return FWe?e[t]!==void 0:TWe.call(e,t)}_$.exports=NWe});var j$=_((RFt,q$)=>{var LWe=NI(),OWe="__lodash_hash_undefined__";function MWe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=LWe&&e===void 0?OWe:e,this}q$.exports=MWe});var Y$=_((TFt,G$)=>{var UWe=N$(),_We=O$(),HWe=U$(),qWe=H$(),jWe=j$();function Oy(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var W$=Y$(),GWe=RI(),YWe=US();function WWe(){this.size=0,this.__data__={hash:new W$,map:new(YWe||GWe),string:new W$}}K$.exports=WWe});var z$=_((LFt,J$)=>{function KWe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}J$.exports=KWe});var LI=_((OFt,X$)=>{var VWe=z$();function JWe(t,e){var r=t.__data__;return VWe(e)?r[typeof e=="string"?"string":"hash"]:r.map}X$.exports=JWe});var $$=_((MFt,Z$)=>{var zWe=LI();function XWe(t){var e=zWe(this,t).delete(t);return this.size-=e?1:0,e}Z$.exports=XWe});var tee=_((UFt,eee)=>{var ZWe=LI();function $We(t){return ZWe(this,t).get(t)}eee.exports=$We});var nee=_((_Ft,ree)=>{var eKe=LI();function tKe(t){return eKe(this,t).has(t)}ree.exports=tKe});var see=_((HFt,iee)=>{var rKe=LI();function nKe(t,e){var r=rKe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}iee.exports=nKe});var _S=_((qFt,oee)=>{var iKe=V$(),sKe=$$(),oKe=tee(),aKe=nee(),lKe=see();function My(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var cKe=RI(),uKe=US(),AKe=_S(),fKe=200;function pKe(t,e){var r=this.__data__;if(r instanceof cKe){var o=r.__data__;if(!uKe||o.length{var hKe=RI(),gKe=$Z(),dKe=t$(),mKe=n$(),yKe=s$(),EKe=lee();function Uy(t){var e=this.__data__=new hKe(t);this.size=e.size}Uy.prototype.clear=gKe;Uy.prototype.delete=dKe;Uy.prototype.get=mKe;Uy.prototype.has=yKe;Uy.prototype.set=EKe;cee.exports=Uy});var Aee=_((YFt,uee)=>{var CKe="__lodash_hash_undefined__";function wKe(t){return this.__data__.set(t,CKe),this}uee.exports=wKe});var pee=_((WFt,fee)=>{function IKe(t){return this.__data__.has(t)}fee.exports=IKe});var gee=_((KFt,hee)=>{var BKe=_S(),vKe=Aee(),DKe=pee();function qS(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new BKe;++e{function SKe(t,e){for(var r=-1,o=t==null?0:t.length;++r{function PKe(t,e){return t.has(e)}yee.exports=PKe});var qN=_((zFt,Cee)=>{var bKe=gee(),xKe=mee(),kKe=Eee(),QKe=1,FKe=2;function RKe(t,e,r,o,a,n){var u=r&QKe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var I=-1,v=!0,x=r&FKe?new bKe:void 0;for(n.set(t,e),n.set(e,t);++I{var TKe=_l(),NKe=TKe.Uint8Array;wee.exports=NKe});var Bee=_((ZFt,Iee)=>{function LKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}Iee.exports=LKe});var Dee=_(($Ft,vee)=>{function OKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}vee.exports=OKe});var kee=_((eRt,xee)=>{var See=pd(),Pee=jN(),MKe=Ny(),UKe=qN(),_Ke=Bee(),HKe=Dee(),qKe=1,jKe=2,GKe="[object Boolean]",YKe="[object Date]",WKe="[object Error]",KKe="[object Map]",VKe="[object Number]",JKe="[object RegExp]",zKe="[object Set]",XKe="[object String]",ZKe="[object Symbol]",$Ke="[object ArrayBuffer]",eVe="[object DataView]",bee=See?See.prototype:void 0,GN=bee?bee.valueOf:void 0;function tVe(t,e,r,o,a,n,u){switch(r){case eVe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case $Ke:return!(t.byteLength!=e.byteLength||!n(new Pee(t),new Pee(e)));case GKe:case YKe:case VKe:return MKe(+t,+e);case WKe:return t.name==e.name&&t.message==e.message;case JKe:case XKe:return t==e+"";case KKe:var A=_Ke;case zKe:var p=o&qKe;if(A||(A=HKe),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=jKe,u.set(t,e);var E=UKe(A(t),A(e),o,a,n,u);return u.delete(t),E;case ZKe:if(GN)return GN.call(t)==GN.call(e)}return!1}xee.exports=tVe});var jS=_((tRt,Qee)=>{function rVe(t,e){for(var r=-1,o=e.length,a=t.length;++r{var nVe=Array.isArray;Fee.exports=nVe});var YN=_((nRt,Ree)=>{var iVe=jS(),sVe=Hl();function oVe(t,e,r){var o=e(t);return sVe(t)?o:iVe(o,r(t))}Ree.exports=oVe});var Nee=_((iRt,Tee)=>{function aVe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r{function lVe(){return[]}Lee.exports=lVe});var GS=_((oRt,Mee)=>{var cVe=Nee(),uVe=WN(),AVe=Object.prototype,fVe=AVe.propertyIsEnumerable,Oee=Object.getOwnPropertySymbols,pVe=Oee?function(t){return t==null?[]:(t=Object(t),cVe(Oee(t),function(e){return fVe.call(t,e)}))}:uVe;Mee.exports=pVe});var _ee=_((aRt,Uee)=>{function hVe(t,e){for(var r=-1,o=Array(t);++r{function gVe(t){return t!=null&&typeof t=="object"}Hee.exports=gVe});var jee=_((cRt,qee)=>{var dVe=hd(),mVe=Ju(),yVe="[object Arguments]";function EVe(t){return mVe(t)&&dVe(t)==yVe}qee.exports=EVe});var OI=_((uRt,Wee)=>{var Gee=jee(),CVe=Ju(),Yee=Object.prototype,wVe=Yee.hasOwnProperty,IVe=Yee.propertyIsEnumerable,BVe=Gee(function(){return arguments}())?Gee:function(t){return CVe(t)&&wVe.call(t,"callee")&&!IVe.call(t,"callee")};Wee.exports=BVe});var Vee=_((ARt,Kee)=>{function vVe(){return!1}Kee.exports=vVe});var UI=_((MI,_y)=>{var DVe=_l(),SVe=Vee(),Xee=typeof MI=="object"&&MI&&!MI.nodeType&&MI,Jee=Xee&&typeof _y=="object"&&_y&&!_y.nodeType&&_y,PVe=Jee&&Jee.exports===Xee,zee=PVe?DVe.Buffer:void 0,bVe=zee?zee.isBuffer:void 0,xVe=bVe||SVe;_y.exports=xVe});var _I=_((fRt,Zee)=>{var kVe=9007199254740991,QVe=/^(?:0|[1-9]\d*)$/;function FVe(t,e){var r=typeof t;return e=e??kVe,!!e&&(r=="number"||r!="symbol"&&QVe.test(t))&&t>-1&&t%1==0&&t{var RVe=9007199254740991;function TVe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=RVe}$ee.exports=TVe});var tte=_((hRt,ete)=>{var NVe=hd(),LVe=YS(),OVe=Ju(),MVe="[object Arguments]",UVe="[object Array]",_Ve="[object Boolean]",HVe="[object Date]",qVe="[object Error]",jVe="[object Function]",GVe="[object Map]",YVe="[object Number]",WVe="[object Object]",KVe="[object RegExp]",VVe="[object Set]",JVe="[object String]",zVe="[object WeakMap]",XVe="[object ArrayBuffer]",ZVe="[object DataView]",$Ve="[object Float32Array]",eJe="[object Float64Array]",tJe="[object Int8Array]",rJe="[object Int16Array]",nJe="[object Int32Array]",iJe="[object Uint8Array]",sJe="[object Uint8ClampedArray]",oJe="[object Uint16Array]",aJe="[object Uint32Array]",ui={};ui[$Ve]=ui[eJe]=ui[tJe]=ui[rJe]=ui[nJe]=ui[iJe]=ui[sJe]=ui[oJe]=ui[aJe]=!0;ui[MVe]=ui[UVe]=ui[XVe]=ui[_Ve]=ui[ZVe]=ui[HVe]=ui[qVe]=ui[jVe]=ui[GVe]=ui[YVe]=ui[WVe]=ui[KVe]=ui[VVe]=ui[JVe]=ui[zVe]=!1;function lJe(t){return OVe(t)&&LVe(t.length)&&!!ui[NVe(t)]}ete.exports=lJe});var WS=_((gRt,rte)=>{function cJe(t){return function(e){return t(e)}}rte.exports=cJe});var KS=_((HI,Hy)=>{var uJe=UN(),nte=typeof HI=="object"&&HI&&!HI.nodeType&&HI,qI=nte&&typeof Hy=="object"&&Hy&&!Hy.nodeType&&Hy,AJe=qI&&qI.exports===nte,KN=AJe&&uJe.process,fJe=function(){try{var t=qI&&qI.require&&qI.require("util").types;return t||KN&&KN.binding&&KN.binding("util")}catch{}}();Hy.exports=fJe});var VS=_((dRt,ote)=>{var pJe=tte(),hJe=WS(),ite=KS(),ste=ite&&ite.isTypedArray,gJe=ste?hJe(ste):pJe;ote.exports=gJe});var VN=_((mRt,ate)=>{var dJe=_ee(),mJe=OI(),yJe=Hl(),EJe=UI(),CJe=_I(),wJe=VS(),IJe=Object.prototype,BJe=IJe.hasOwnProperty;function vJe(t,e){var r=yJe(t),o=!r&&mJe(t),a=!r&&!o&&EJe(t),n=!r&&!o&&!a&&wJe(t),u=r||o||a||n,A=u?dJe(t.length,String):[],p=A.length;for(var h in t)(e||BJe.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||CJe(h,p)))&&A.push(h);return A}ate.exports=vJe});var JS=_((yRt,lte)=>{var DJe=Object.prototype;function SJe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||DJe;return t===r}lte.exports=SJe});var JN=_((ERt,cte)=>{function PJe(t,e){return function(r){return t(e(r))}}cte.exports=PJe});var Ate=_((CRt,ute)=>{var bJe=JN(),xJe=bJe(Object.keys,Object);ute.exports=xJe});var pte=_((wRt,fte)=>{var kJe=JS(),QJe=Ate(),FJe=Object.prototype,RJe=FJe.hasOwnProperty;function TJe(t){if(!kJe(t))return QJe(t);var e=[];for(var r in Object(t))RJe.call(t,r)&&r!="constructor"&&e.push(r);return e}fte.exports=TJe});var jI=_((IRt,hte)=>{var NJe=MS(),LJe=YS();function OJe(t){return t!=null&&LJe(t.length)&&!NJe(t)}hte.exports=OJe});var zS=_((BRt,gte)=>{var MJe=VN(),UJe=pte(),_Je=jI();function HJe(t){return _Je(t)?MJe(t):UJe(t)}gte.exports=HJe});var zN=_((vRt,dte)=>{var qJe=YN(),jJe=GS(),GJe=zS();function YJe(t){return qJe(t,GJe,jJe)}dte.exports=YJe});var Ete=_((DRt,yte)=>{var mte=zN(),WJe=1,KJe=Object.prototype,VJe=KJe.hasOwnProperty;function JJe(t,e,r,o,a,n){var u=r&WJe,A=mte(t),p=A.length,h=mte(e),E=h.length;if(p!=E&&!u)return!1;for(var I=p;I--;){var v=A[I];if(!(u?v in e:VJe.call(e,v)))return!1}var x=n.get(t),C=n.get(e);if(x&&C)return x==e&&C==t;var R=!0;n.set(t,e),n.set(e,t);for(var L=u;++I{var zJe=zp(),XJe=_l(),ZJe=zJe(XJe,"DataView");Cte.exports=ZJe});var Bte=_((PRt,Ite)=>{var $Je=zp(),eze=_l(),tze=$Je(eze,"Promise");Ite.exports=tze});var Dte=_((bRt,vte)=>{var rze=zp(),nze=_l(),ize=rze(nze,"Set");vte.exports=ize});var Pte=_((xRt,Ste)=>{var sze=zp(),oze=_l(),aze=sze(oze,"WeakMap");Ste.exports=aze});var GI=_((kRt,Tte)=>{var XN=wte(),ZN=US(),$N=Bte(),eL=Dte(),tL=Pte(),Rte=hd(),qy=HN(),bte="[object Map]",lze="[object Object]",xte="[object Promise]",kte="[object Set]",Qte="[object WeakMap]",Fte="[object DataView]",cze=qy(XN),uze=qy(ZN),Aze=qy($N),fze=qy(eL),pze=qy(tL),gd=Rte;(XN&&gd(new XN(new ArrayBuffer(1)))!=Fte||ZN&&gd(new ZN)!=bte||$N&&gd($N.resolve())!=xte||eL&&gd(new eL)!=kte||tL&&gd(new tL)!=Qte)&&(gd=function(t){var e=Rte(t),r=e==lze?t.constructor:void 0,o=r?qy(r):"";if(o)switch(o){case cze:return Fte;case uze:return bte;case Aze:return xte;case fze:return kte;case pze:return Qte}return e});Tte.exports=gd});var qte=_((QRt,Hte)=>{var rL=HS(),hze=qN(),gze=kee(),dze=Ete(),Nte=GI(),Lte=Hl(),Ote=UI(),mze=VS(),yze=1,Mte="[object Arguments]",Ute="[object Array]",XS="[object Object]",Eze=Object.prototype,_te=Eze.hasOwnProperty;function Cze(t,e,r,o,a,n){var u=Lte(t),A=Lte(e),p=u?Ute:Nte(t),h=A?Ute:Nte(e);p=p==Mte?XS:p,h=h==Mte?XS:h;var E=p==XS,I=h==XS,v=p==h;if(v&&Ote(t)){if(!Ote(e))return!1;u=!0,E=!1}if(v&&!E)return n||(n=new rL),u||mze(t)?hze(t,e,r,o,a,n):gze(t,e,p,r,o,a,n);if(!(r&yze)){var x=E&&_te.call(t,"__wrapped__"),C=I&&_te.call(e,"__wrapped__");if(x||C){var R=x?t.value():t,L=C?e.value():e;return n||(n=new rL),a(R,L,r,o,n)}}return v?(n||(n=new rL),dze(t,e,r,o,a,n)):!1}Hte.exports=Cze});var Wte=_((FRt,Yte)=>{var wze=qte(),jte=Ju();function Gte(t,e,r,o,a){return t===e?!0:t==null||e==null||!jte(t)&&!jte(e)?t!==t&&e!==e:wze(t,e,r,o,Gte,a)}Yte.exports=Gte});var Vte=_((RRt,Kte)=>{var Ize=Wte();function Bze(t,e){return Ize(t,e)}Kte.exports=Bze});var nL=_((TRt,Jte)=>{var vze=zp(),Dze=function(){try{var t=vze(Object,"defineProperty");return t({},"",{}),t}catch{}}();Jte.exports=Dze});var ZS=_((NRt,Xte)=>{var zte=nL();function Sze(t,e,r){e=="__proto__"&&zte?zte(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Xte.exports=Sze});var iL=_((LRt,Zte)=>{var Pze=ZS(),bze=Ny();function xze(t,e,r){(r!==void 0&&!bze(t[e],r)||r===void 0&&!(e in t))&&Pze(t,e,r)}Zte.exports=xze});var ere=_((ORt,$te)=>{function kze(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}$te.exports=kze});var rre=_((MRt,tre)=>{var Qze=ere(),Fze=Qze();tre.exports=Fze});var sL=_((YI,jy)=>{var Rze=_l(),ore=typeof YI=="object"&&YI&&!YI.nodeType&&YI,nre=ore&&typeof jy=="object"&&jy&&!jy.nodeType&&jy,Tze=nre&&nre.exports===ore,ire=Tze?Rze.Buffer:void 0,sre=ire?ire.allocUnsafe:void 0;function Nze(t,e){if(e)return t.slice();var r=t.length,o=sre?sre(r):new t.constructor(r);return t.copy(o),o}jy.exports=Nze});var $S=_((URt,lre)=>{var are=jN();function Lze(t){var e=new t.constructor(t.byteLength);return new are(e).set(new are(t)),e}lre.exports=Lze});var oL=_((_Rt,cre)=>{var Oze=$S();function Mze(t,e){var r=e?Oze(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}cre.exports=Mze});var eP=_((HRt,ure)=>{function Uze(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r{var _ze=il(),Are=Object.create,Hze=function(){function t(){}return function(e){if(!_ze(e))return{};if(Are)return Are(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();fre.exports=Hze});var tP=_((jRt,hre)=>{var qze=JN(),jze=qze(Object.getPrototypeOf,Object);hre.exports=jze});var aL=_((GRt,gre)=>{var Gze=pre(),Yze=tP(),Wze=JS();function Kze(t){return typeof t.constructor=="function"&&!Wze(t)?Gze(Yze(t)):{}}gre.exports=Kze});var mre=_((YRt,dre)=>{var Vze=jI(),Jze=Ju();function zze(t){return Jze(t)&&Vze(t)}dre.exports=zze});var lL=_((WRt,Ere)=>{var Xze=hd(),Zze=tP(),$ze=Ju(),eXe="[object Object]",tXe=Function.prototype,rXe=Object.prototype,yre=tXe.toString,nXe=rXe.hasOwnProperty,iXe=yre.call(Object);function sXe(t){if(!$ze(t)||Xze(t)!=eXe)return!1;var e=Zze(t);if(e===null)return!0;var r=nXe.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&yre.call(r)==iXe}Ere.exports=sXe});var cL=_((KRt,Cre)=>{function oXe(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}Cre.exports=oXe});var rP=_((VRt,wre)=>{var aXe=ZS(),lXe=Ny(),cXe=Object.prototype,uXe=cXe.hasOwnProperty;function AXe(t,e,r){var o=t[e];(!(uXe.call(t,e)&&lXe(o,r))||r===void 0&&!(e in t))&&aXe(t,e,r)}wre.exports=AXe});var dd=_((JRt,Ire)=>{var fXe=rP(),pXe=ZS();function hXe(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n{function gXe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}Bre.exports=gXe});var Sre=_((XRt,Dre)=>{var dXe=il(),mXe=JS(),yXe=vre(),EXe=Object.prototype,CXe=EXe.hasOwnProperty;function wXe(t){if(!dXe(t))return yXe(t);var e=mXe(t),r=[];for(var o in t)o=="constructor"&&(e||!CXe.call(t,o))||r.push(o);return r}Dre.exports=wXe});var Gy=_((ZRt,Pre)=>{var IXe=VN(),BXe=Sre(),vXe=jI();function DXe(t){return vXe(t)?IXe(t,!0):BXe(t)}Pre.exports=DXe});var xre=_(($Rt,bre)=>{var SXe=dd(),PXe=Gy();function bXe(t){return SXe(t,PXe(t))}bre.exports=bXe});var Nre=_((eTt,Tre)=>{var kre=iL(),xXe=sL(),kXe=oL(),QXe=eP(),FXe=aL(),Qre=OI(),Fre=Hl(),RXe=mre(),TXe=UI(),NXe=MS(),LXe=il(),OXe=lL(),MXe=VS(),Rre=cL(),UXe=xre();function _Xe(t,e,r,o,a,n,u){var A=Rre(t,r),p=Rre(e,r),h=u.get(p);if(h){kre(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,I=E===void 0;if(I){var v=Fre(p),x=!v&&TXe(p),C=!v&&!x&&MXe(p);E=p,v||x||C?Fre(A)?E=A:RXe(A)?E=QXe(A):x?(I=!1,E=xXe(p,!0)):C?(I=!1,E=kXe(p,!0)):E=[]:OXe(p)||Qre(p)?(E=A,Qre(A)?E=UXe(A):(!LXe(A)||NXe(A))&&(E=FXe(p))):I=!1}I&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),kre(t,r,E)}Tre.exports=_Xe});var Mre=_((tTt,Ore)=>{var HXe=HS(),qXe=iL(),jXe=rre(),GXe=Nre(),YXe=il(),WXe=Gy(),KXe=cL();function Lre(t,e,r,o,a){t!==e&&jXe(e,function(n,u){if(a||(a=new HXe),YXe(n))GXe(t,e,u,r,Lre,o,a);else{var A=o?o(KXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),qXe(t,u,A)}},WXe)}Ore.exports=Lre});var uL=_((rTt,Ure)=>{function VXe(t){return t}Ure.exports=VXe});var Hre=_((nTt,_re)=>{function JXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}_re.exports=JXe});var AL=_((iTt,jre)=>{var zXe=Hre(),qre=Math.max;function XXe(t,e,r){return e=qre(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=qre(o.length-e,0),u=Array(n);++a{function ZXe(t){return function(){return t}}Gre.exports=ZXe});var Vre=_((oTt,Kre)=>{var $Xe=Yre(),Wre=nL(),eZe=uL(),tZe=Wre?function(t,e){return Wre(t,"toString",{configurable:!0,enumerable:!1,value:$Xe(e),writable:!0})}:eZe;Kre.exports=tZe});var zre=_((aTt,Jre)=>{var rZe=800,nZe=16,iZe=Date.now;function sZe(t){var e=0,r=0;return function(){var o=iZe(),a=nZe-(o-r);if(r=o,a>0){if(++e>=rZe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}Jre.exports=sZe});var fL=_((lTt,Xre)=>{var oZe=Vre(),aZe=zre(),lZe=aZe(oZe);Xre.exports=lZe});var $re=_((cTt,Zre)=>{var cZe=uL(),uZe=AL(),AZe=fL();function fZe(t,e){return AZe(uZe(t,e,cZe),t+"")}Zre.exports=fZe});var tne=_((uTt,ene)=>{var pZe=Ny(),hZe=jI(),gZe=_I(),dZe=il();function mZe(t,e,r){if(!dZe(r))return!1;var o=typeof e;return(o=="number"?hZe(r)&&gZe(e,r.length):o=="string"&&e in r)?pZe(r[e],t):!1}ene.exports=mZe});var nne=_((ATt,rne)=>{var yZe=$re(),EZe=tne();function CZe(t){return yZe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&EZe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o{var wZe=Mre(),IZe=nne(),BZe=IZe(function(t,e,r,o){wZe(t,e,r,o)});ine.exports=BZe});var _e={};Vt(_e,{AsyncActions:()=>gL,BufferStream:()=>hL,CachingStrategy:()=>mne,DefaultStream:()=>dL,allSettledSafe:()=>Uc,assertNever:()=>yL,bufferStream:()=>Vy,buildIgnorePattern:()=>kZe,convertMapsToIndexableObjects:()=>iP,dynamicRequire:()=>Df,escapeRegExp:()=>DZe,getArrayWithDefault:()=>Yy,getFactoryWithDefault:()=>ol,getMapWithDefault:()=>Wy,getSetWithDefault:()=>md,groupBy:()=>wL,isIndexableObject:()=>pL,isPathLike:()=>QZe,isTaggedYarnVersion:()=>vZe,makeDeferred:()=>hne,mapAndFilter:()=>sl,mapAndFind:()=>KI,mergeIntoTarget:()=>Ene,overrideType:()=>SZe,parseBoolean:()=>VI,parseInt:()=>Jy,parseOptionalBoolean:()=>yne,plural:()=>nP,prettifyAsyncErrors:()=>Ky,prettifySyncErrors:()=>EL,releaseAfterUseAsync:()=>bZe,replaceEnvVariables:()=>sP,sortMap:()=>ks,toMerged:()=>FZe,tryParseOptionalBoolean:()=>CL,validateEnum:()=>PZe});function vZe(t){return!!(Ane.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function nP(t,{one:e,more:r,zero:o=r}){return t===0?o:t===1?e:r}function DZe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function SZe(t){}function yL(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function PZe(t,e){let r=Object.values(t);if(!r.includes(e))throw new it(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function sl(t,e){let r=[];for(let o of t){let a=e(o);a!==fne&&r.push(a)}return r}function KI(t,e){for(let r of t){let o=e(r);if(o!==pne)return o}}function pL(t){return typeof t=="object"&&t!==null}async function Uc(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function iP(t){if(t instanceof Map&&(t=Object.fromEntries(t)),pL(t))for(let e of Object.keys(t)){let r=t[e];pL(r)&&(t[e]=iP(r))}return t}function ol(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function Yy(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function md(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function Wy(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function bZe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function Ky(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function EL(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Vy(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function hne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function gne(t){return WI(ue.fromPortablePath(t))}function dne(path){let physicalPath=ue.fromPortablePath(path),currentCacheEntry=WI.cache[physicalPath];delete WI.cache[physicalPath];let result;try{result=gne(physicalPath);let freshCacheEntry=WI.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{WI.cache[physicalPath]=currentCacheEntry}return result}function xZe(t){let e=one.get(t),r=oe.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let o=dne(t);return one.set(t,{mtime:r.mtimeMs,instance:o}),o}function Df(t,{cachingStrategy:e=2}={}){switch(e){case 0:return dne(t);case 1:return xZe(t);case 2:return gne(t);default:throw new Error("Unsupported caching strategy")}}function ks(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function kZe(t){return t.length===0?null:t.map(e=>`(${cne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function sP(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.hasOwn(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new it(`Environment variable not found (${a})`)})}function VI(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function yne(t){return typeof t>"u"?t:VI(t)}function CL(t){try{return yne(t)}catch{return null}}function QZe(t){return!!(ue.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function Ene(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,lne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,ane.default)(h,p))||u.push(p);return u}});return n}function FZe(...t){return Ene({},...t)}function wL(t,e){let r=Object.create(null);for(let o of t){let a=o[e];r[a]??=[],r[a].push(o)}return r}function Jy(t){return typeof t=="string"?Number.parseInt(t,10):t}var ane,lne,cne,une,Ane,mL,fne,pne,hL,gL,dL,WI,one,mne,ql=Et(()=>{St();qt();ane=$e(Vte()),lne=$e(sne()),cne=$e(Zo()),une=$e(id()),Ane=$e(zn()),mL=ve("stream");fne=Symbol();sl.skip=fne;pne=Symbol();KI.skip=pne;hL=class extends mL.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};gL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,une.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=hne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},dL=class extends mL.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},WI=eval("require");one=new Map;mne=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(mne||{})});var zy,IL,BL,Cne=Et(()=>{zy=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))(zy||{}),IL=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(IL||{}),BL=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(BL||{})});var de={};Vt(de,{LogLevel:()=>uP,Style:()=>aP,Type:()=>yt,addLogFilterSupport:()=>XI,applyColor:()=>Vs,applyHyperlink:()=>Zy,applyStyle:()=>yd,json:()=>Ed,jsonOrPretty:()=>NZe,mark:()=>bL,pretty:()=>Mt,prettyField:()=>zu,prettyList:()=>PL,prettyTruncatedLocatorList:()=>cP,stripAnsi:()=>Xy.default,supportsColor:()=>lP,supportsHyperlinks:()=>SL,tuple:()=>_c});function wne(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let o=1024**r;return`${Math.floor(t*100/o)/100} ${e[r-1]}`}function _c(t,e){return[e,t]}function yd(t,e,r){return t.get("enableColors")&&r&2&&(e=zI.default.bold(e)),e}function Vs(t,e,r){if(!t.get("enableColors"))return e;let o=RZe.get(r);if(o===null)return e;let a=typeof o>"u"?r:DL.level>=3?o[0]:o[1],n=typeof a=="number"?vL.ansi256(a):a.startsWith("#")?vL.hex(a):vL[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function Zy(t,e,r){return t.get("enableHyperlinks")?TZe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Mt(t,e,r){if(e===null)return Vs(t,"null",yt.NULL);if(Object.hasOwn(oP,r))return oP[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Vs(t,e,r)}function PL(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Mt(t,a,r)).join(o)}function Ed(t,e){if(t===null)return null;if(Object.hasOwn(oP,e))return oP[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function NZe(t,e,[r,o]){return t?Ed(r,o):Mt(e,r,o)}function bL(t){return{Check:Vs(t,"\u2713","green"),Cross:Vs(t,"\u2718","red"),Question:Vs(t,"?","cyan")}}function zu(t,{label:e,value:[r,o]}){return`${Mt(t,e,yt.CODE)}: ${Mt(t,r,o)}`}function cP(t,e,r){let o=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${qr(t,h)}, `,I=xL(h).length+2;if(o.length>0&&nh).join("").slice(0,-2);let u="X".repeat(a.length.toString().length),A=`and ${u} more.`,p=a.length;for(;o.length>1&&nh).join(""),A.replace(u,Mt(t,p,yt.NUMBER))].join("")}function XI(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let I of r){let v=I.get("level");if(typeof v>"u")continue;let x=I.get("code");typeof x<"u"&&o.set(x,v);let C=I.get("text");typeof C<"u"&&a.set(C,v);let R=I.get("pattern");typeof R<"u"&&n.push([Ine.default.matcher(R,{contains:!0}),v])}n.reverse();let u=(I,v,x)=>{if(I===null||I===0)return x;let C=a.size>0||n.length>0?(0,Xy.default)(v):v;if(a.size>0){let R=a.get(C);if(typeof R<"u")return R??x}if(n.length>0){for(let[R,L]of n)if(R(C))return L??x}if(o.size>0){let R=o.get(Wu(I));if(typeof R<"u")return R??x}return x},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(I,v,x,C){switch(u(v,x,C)){case"info":A.call(I,v,x);break;case"warning":p.call(I,v??0,x);break;case"error":h.call(I,v??0,x);break}};t.reportInfo=function(...I){return E(this,...I,"info")},t.reportWarning=function(...I){return E(this,...I,"warning")},t.reportError=function(...I){return E(this,...I,"error")}}var zI,JI,Ine,Xy,Bne,yt,aP,DL,lP,SL,vL,RZe,Po,oP,TZe,uP,jl=Et(()=>{St();zI=$e(IN()),JI=$e(td());qt();Ine=$e(Zo()),Xy=$e(OS()),Bne=ve("util");fS();bo();yt={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},aP=(e=>(e[e.BOLD=2]="BOLD",e))(aP||{}),DL=JI.default.GITHUB_ACTIONS?{level:2}:zI.default.supportsColor?{level:zI.default.supportsColor.level}:{level:0},lP=DL.level!==0,SL=lP&&!JI.default.GITHUB_ACTIONS&&!JI.default.CIRCLE&&!JI.default.GITLAB,vL=new zI.default.Instance(DL),RZe=new Map([[yt.NO_HINT,null],[yt.NULL,["#a853b5",129]],[yt.SCOPE,["#d75f00",166]],[yt.NAME,["#d7875f",173]],[yt.RANGE,["#00afaf",37]],[yt.REFERENCE,["#87afff",111]],[yt.NUMBER,["#ffd700",220]],[yt.PATH,["#d75fd7",170]],[yt.URL,["#d75fd7",170]],[yt.ADDED,["#5faf00",70]],[yt.REMOVED,["#ff3131",160]],[yt.CODE,["#87afff",111]],[yt.SIZE,["#ffd700",220]]]),Po=t=>t;oP={[yt.ID]:Po({pretty:(t,e)=>typeof e=="number"?Vs(t,`${e}`,yt.NUMBER):Vs(t,e,yt.CODE),json:t=>t}),[yt.INSPECT]:Po({pretty:(t,e)=>(0,Bne.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[yt.NUMBER]:Po({pretty:(t,e)=>Vs(t,`${e}`,yt.NUMBER),json:t=>t}),[yt.IDENT]:Po({pretty:(t,e)=>cs(t,e),json:t=>fn(t)}),[yt.LOCATOR]:Po({pretty:(t,e)=>qr(t,e),json:t=>ba(t)}),[yt.DESCRIPTOR]:Po({pretty:(t,e)=>jn(t,e),json:t=>Pa(t)}),[yt.RESOLUTION]:Po({pretty:(t,{descriptor:e,locator:r})=>ZI(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:Pa(t),locator:e!==null?ba(e):null})}),[yt.DEPENDENT]:Po({pretty:(t,{locator:e,descriptor:r})=>kL(t,e,r),json:({locator:t,descriptor:e})=>({locator:ba(t),descriptor:Pa(e)})}),[yt.PACKAGE_EXTENSION]:Po({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${Vs(t,"dependencies",yt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependency":return`${cs(t,e.parentDescriptor)} \u27A4 ${Vs(t,"peerDependencies",yt.CODE)} \u27A4 ${cs(t,e.descriptor)}`;case"PeerDependencyMeta":return`${cs(t,e.parentDescriptor)} \u27A4 ${Vs(t,"peerDependenciesMeta",yt.CODE)} \u27A4 ${cs(t,Js(e.selector))} \u27A4 ${Vs(t,e.key,yt.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${fn(t.parentDescriptor)} > ${fn(t.descriptor)}`;case"PeerDependency":return`${fn(t.parentDescriptor)} >> ${fn(t.descriptor)}`;case"PeerDependencyMeta":return`${fn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[yt.SETTING]:Po({pretty:(t,e)=>(t.get(e),Zy(t,Vs(t,e,yt.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[yt.DURATION]:Po({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[yt.SIZE]:Po({pretty:(t,e)=>Vs(t,wne(e),yt.NUMBER),json:t=>t}),[yt.SIZE_DIFF]:Po({pretty:(t,e)=>{let r=e>=0?"+":"-",o=r==="+"?yt.REMOVED:yt.ADDED;return Vs(t,`${r} ${wne(Math.max(Math.abs(e),1))}`,o)},json:t=>t}),[yt.PATH]:Po({pretty:(t,e)=>Vs(t,ue.fromPortablePath(e),yt.PATH),json:t=>ue.fromPortablePath(t)}),[yt.MARKDOWN]:Po({pretty:(t,{text:e,format:r,paragraphs:o})=>Do(e,{format:r,paragraphs:o}),json:({text:t})=>t}),[yt.MARKDOWN_INLINE]:Po({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,a)=>Mt(t,o+a+o,yt.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,a)=>yd(t,a,2)),e),json:t=>t})};TZe=!!process.env.KONSOLE_VERSION;uP=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(uP||{})});var vne=_($y=>{"use strict";Object.defineProperty($y,"__esModule",{value:!0});$y.splitWhen=$y.flatten=void 0;function LZe(t){return t.reduce((e,r)=>[].concat(e,r),[])}$y.flatten=LZe;function OZe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}$y.splitWhen=OZe});var Dne=_(AP=>{"use strict";Object.defineProperty(AP,"__esModule",{value:!0});AP.isEnoentCodeError=void 0;function MZe(t){return t.code==="ENOENT"}AP.isEnoentCodeError=MZe});var Sne=_(fP=>{"use strict";Object.defineProperty(fP,"__esModule",{value:!0});fP.createDirentFromStats=void 0;var QL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function UZe(t,e){return new QL(t,e)}fP.createDirentFromStats=UZe});var Pne=_(Xu=>{"use strict";Object.defineProperty(Xu,"__esModule",{value:!0});Xu.removeLeadingDotSegment=Xu.escape=Xu.makeAbsolute=Xu.unixify=void 0;var _Ze=ve("path"),HZe=2,qZe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\())/g;function jZe(t){return t.replace(/\\/g,"/")}Xu.unixify=jZe;function GZe(t,e){return _Ze.resolve(t,e)}Xu.makeAbsolute=GZe;function YZe(t){return t.replace(qZe,"\\$2")}Xu.escape=YZe;function WZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(HZe)}return t}Xu.removeLeadingDotSegment=WZe});var xne=_((PTt,bne)=>{bne.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Fne=_((bTt,Qne)=>{var KZe=xne(),kne={"{":"}","(":")","[":"]"},VZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;ee&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=kne[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},JZe=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var zZe=Fne(),XZe=ve("path").posix.dirname,ZZe=ve("os").platform()==="win32",FL="/",$Ze=/\\/g,e$e=/[\{\[].*[\}\]]$/,t$e=/(^|[^\\])([\{\[]|\([^\)]+$)/,r$e=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Rne.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&ZZe&&e.indexOf(FL)<0&&(e=e.replace($Ze,FL)),e$e.test(e)&&(e+=FL),e+="a";do e=XZe(e);while(zZe(e)||t$e.test(e));return e.replace(r$e,"$1")}});var qne=_(jr=>{"use strict";Object.defineProperty(jr,"__esModule",{value:!0});jr.matchAny=jr.convertPatternsToRe=jr.makeRe=jr.getPatternParts=jr.expandBraceExpansion=jr.expandPatternsWithBraceExpansion=jr.isAffectDepthOfReadingPattern=jr.endsWithSlashGlobStar=jr.hasGlobStar=jr.getBaseDirectory=jr.isPatternRelatedToParentDirectory=jr.getPatternsOutsideCurrentDirectory=jr.getPatternsInsideCurrentDirectory=jr.getPositivePatterns=jr.getNegativePatterns=jr.isPositivePattern=jr.isNegativePattern=jr.convertToNegativePattern=jr.convertToPositivePattern=jr.isDynamicPattern=jr.isStaticPattern=void 0;var n$e=ve("path"),i$e=Tne(),RL=Zo(),Nne="**",s$e="\\",o$e=/[*?]|^!/,a$e=/\[[^[]*]/,l$e=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,c$e=/[!*+?@]\([^(]*\)/,u$e=/,|\.\./;function Lne(t,e={}){return!One(t,e)}jr.isStaticPattern=Lne;function One(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(s$e)||o$e.test(t)||a$e.test(t)||l$e.test(t)||e.extglob!==!1&&c$e.test(t)||e.braceExpansion!==!1&&A$e(t))}jr.isDynamicPattern=One;function A$e(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return u$e.test(o)}function f$e(t){return pP(t)?t.slice(1):t}jr.convertToPositivePattern=f$e;function p$e(t){return"!"+t}jr.convertToNegativePattern=p$e;function pP(t){return t.startsWith("!")&&t[1]!=="("}jr.isNegativePattern=pP;function Mne(t){return!pP(t)}jr.isPositivePattern=Mne;function h$e(t){return t.filter(pP)}jr.getNegativePatterns=h$e;function g$e(t){return t.filter(Mne)}jr.getPositivePatterns=g$e;function d$e(t){return t.filter(e=>!TL(e))}jr.getPatternsInsideCurrentDirectory=d$e;function m$e(t){return t.filter(TL)}jr.getPatternsOutsideCurrentDirectory=m$e;function TL(t){return t.startsWith("..")||t.startsWith("./..")}jr.isPatternRelatedToParentDirectory=TL;function y$e(t){return i$e(t,{flipBackslashes:!1})}jr.getBaseDirectory=y$e;function E$e(t){return t.includes(Nne)}jr.hasGlobStar=E$e;function Une(t){return t.endsWith("/"+Nne)}jr.endsWithSlashGlobStar=Une;function C$e(t){let e=n$e.basename(t);return Une(t)||Lne(e)}jr.isAffectDepthOfReadingPattern=C$e;function w$e(t){return t.reduce((e,r)=>e.concat(_ne(r)),[])}jr.expandPatternsWithBraceExpansion=w$e;function _ne(t){return RL.braces(t,{expand:!0,nodupes:!0})}jr.expandBraceExpansion=_ne;function I$e(t,e){let{parts:r}=RL.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}jr.getPatternParts=I$e;function Hne(t,e){return RL.makeRe(t,e)}jr.makeRe=Hne;function B$e(t,e){return t.map(r=>Hne(r,e))}jr.convertPatternsToRe=B$e;function v$e(t,e){return e.some(r=>r.test(t))}jr.matchAny=v$e});var Wne=_((QTt,Yne)=>{"use strict";var D$e=ve("stream"),jne=D$e.PassThrough,S$e=Array.prototype.slice;Yne.exports=P$e;function P$e(){let t=[],e=S$e.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=jne(o);function A(){for(let E=0,I=arguments.length;E0||(r=!1,p())}function x(C){function R(){C.removeListener("merge2UnpipeEnd",R),C.removeListener("end",R),n&&C.removeListener("error",L),v()}function L(U){u.emit("error",U)}if(C._readableState.endEmitted)return v();C.on("merge2UnpipeEnd",R),C.on("end",R),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C{"use strict";Object.defineProperty(hP,"__esModule",{value:!0});hP.merge=void 0;var b$e=Wne();function x$e(t){let e=b$e(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Kne(t)),e.once("end",()=>Kne(t)),e}hP.merge=x$e;function Kne(t){t.forEach(e=>e.emit("close"))}});var Jne=_(eE=>{"use strict";Object.defineProperty(eE,"__esModule",{value:!0});eE.isEmpty=eE.isString=void 0;function k$e(t){return typeof t=="string"}eE.isString=k$e;function Q$e(t){return t===""}eE.isEmpty=Q$e});var Sf=_(xo=>{"use strict";Object.defineProperty(xo,"__esModule",{value:!0});xo.string=xo.stream=xo.pattern=xo.path=xo.fs=xo.errno=xo.array=void 0;var F$e=vne();xo.array=F$e;var R$e=Dne();xo.errno=R$e;var T$e=Sne();xo.fs=T$e;var N$e=Pne();xo.path=N$e;var L$e=qne();xo.pattern=L$e;var O$e=Vne();xo.stream=O$e;var M$e=Jne();xo.string=M$e});var Zne=_(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.convertPatternGroupToTask=ko.convertPatternGroupsToTasks=ko.groupPatternsByBaseDirectory=ko.getNegativePatternsAsPositive=ko.getPositivePatterns=ko.convertPatternsToTasks=ko.generate=void 0;var Pf=Sf();function U$e(t,e){let r=zne(t),o=Xne(t,e.ignore),a=r.filter(p=>Pf.pattern.isStaticPattern(p,e)),n=r.filter(p=>Pf.pattern.isDynamicPattern(p,e)),u=NL(a,o,!1),A=NL(n,o,!0);return u.concat(A)}ko.generate=U$e;function NL(t,e,r){let o=[],a=Pf.pattern.getPatternsOutsideCurrentDirectory(t),n=Pf.pattern.getPatternsInsideCurrentDirectory(t),u=LL(a),A=LL(n);return o.push(...OL(u,e,r)),"."in A?o.push(ML(".",n,e,r)):o.push(...OL(A,e,r)),o}ko.convertPatternsToTasks=NL;function zne(t){return Pf.pattern.getPositivePatterns(t)}ko.getPositivePatterns=zne;function Xne(t,e){return Pf.pattern.getNegativePatterns(t).concat(e).map(Pf.pattern.convertToPositivePattern)}ko.getNegativePatternsAsPositive=Xne;function LL(t){let e={};return t.reduce((r,o)=>{let a=Pf.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}ko.groupPatternsByBaseDirectory=LL;function OL(t,e,r){return Object.keys(t).map(o=>ML(o,t[o],e,r))}ko.convertPatternGroupsToTasks=OL;function ML(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Pf.pattern.convertToNegativePattern))}}ko.convertPatternGroupToTask=ML});var eie=_(tE=>{"use strict";Object.defineProperty(tE,"__esModule",{value:!0});tE.removeDuplicateSlashes=tE.transform=void 0;var _$e=/(?!^)\/{2,}/g;function H$e(t){return t.map(e=>$ne(e))}tE.transform=H$e;function $ne(t){return t.replace(_$e,"/")}tE.removeDuplicateSlashes=$ne});var rie=_(gP=>{"use strict";Object.defineProperty(gP,"__esModule",{value:!0});gP.read=void 0;function q$e(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){tie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){UL(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){tie(r,n);return}UL(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),UL(r,u)})})}gP.read=q$e;function tie(t,e){t(e)}function UL(t,e){t(null,e)}});var nie=_(dP=>{"use strict";Object.defineProperty(dP,"__esModule",{value:!0});dP.read=void 0;function j$e(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}dP.read=j$e});var iie=_(Xp=>{"use strict";Object.defineProperty(Xp,"__esModule",{value:!0});Xp.createFileSystemAdapter=Xp.FILE_SYSTEM_ADAPTER=void 0;var mP=ve("fs");Xp.FILE_SYSTEM_ADAPTER={lstat:mP.lstat,stat:mP.stat,lstatSync:mP.lstatSync,statSync:mP.statSync};function G$e(t){return t===void 0?Xp.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},Xp.FILE_SYSTEM_ADAPTER),t)}Xp.createFileSystemAdapter=G$e});var sie=_(HL=>{"use strict";Object.defineProperty(HL,"__esModule",{value:!0});var Y$e=iie(),_L=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=Y$e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};HL.default=_L});var Cd=_(Zp=>{"use strict";Object.defineProperty(Zp,"__esModule",{value:!0});Zp.statSync=Zp.stat=Zp.Settings=void 0;var oie=rie(),W$e=nie(),qL=sie();Zp.Settings=qL.default;function K$e(t,e,r){if(typeof e=="function"){oie.read(t,jL(),e);return}oie.read(t,jL(e),r)}Zp.stat=K$e;function V$e(t,e){let r=jL(e);return W$e.read(t,r)}Zp.statSync=V$e;function jL(t={}){return t instanceof qL.default?t:new qL.default(t)}});var lie=_((qTt,aie)=>{aie.exports=J$e;function J$e(t,e){var r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?process.nextTick(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,I){A(h,E,I)})}):u(null),n=!1}});var YL=_(EP=>{"use strict";Object.defineProperty(EP,"__esModule",{value:!0});EP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var yP=process.versions.node.split(".");if(yP[0]===void 0||yP[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var cie=Number.parseInt(yP[0],10),z$e=Number.parseInt(yP[1],10),uie=10,X$e=10,Z$e=cie>uie,$$e=cie===uie&&z$e>=X$e;EP.IS_SUPPORT_READDIR_WITH_FILE_TYPES=Z$e||$$e});var Aie=_(CP=>{"use strict";Object.defineProperty(CP,"__esModule",{value:!0});CP.createDirentFromStats=void 0;var WL=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function eet(t,e){return new WL(t,e)}CP.createDirentFromStats=eet});var KL=_(wP=>{"use strict";Object.defineProperty(wP,"__esModule",{value:!0});wP.fs=void 0;var tet=Aie();wP.fs=tet});var VL=_(IP=>{"use strict";Object.defineProperty(IP,"__esModule",{value:!0});IP.joinPathSegments=void 0;function ret(t,e,r){return t.endsWith(r)?t+e:t+r+e}IP.joinPathSegments=ret});var mie=_($p=>{"use strict";Object.defineProperty($p,"__esModule",{value:!0});$p.readdir=$p.readdirWithFileTypes=$p.read=void 0;var net=Cd(),fie=lie(),iet=YL(),pie=KL(),hie=VL();function set(t,e,r){if(!e.stats&&iet.IS_SUPPORT_READDIR_WITH_FILE_TYPES){gie(t,e,r);return}die(t,e,r)}$p.read=set;function gie(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){BP(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:hie.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){JL(r,n);return}let u=n.map(A=>oet(A,e));fie(u,(A,p)=>{if(A!==null){BP(r,A);return}JL(r,p)})})}$p.readdirWithFileTypes=gie;function oet(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=pie.fs.createDirentFromStats(t.name,a),r(null,t)})}}function die(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){BP(r,o);return}let n=a.map(u=>{let A=hie.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{net.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let I={name:u,path:A,dirent:pie.fs.createDirentFromStats(u,E)};e.stats&&(I.stats=E),p(null,I)})}});fie(n,(u,A)=>{if(u!==null){BP(r,u);return}JL(r,A)})})}$p.readdir=die;function BP(t,e){t(e)}function JL(t,e){t(null,e)}});var Iie=_(eh=>{"use strict";Object.defineProperty(eh,"__esModule",{value:!0});eh.readdir=eh.readdirWithFileTypes=eh.read=void 0;var aet=Cd(),cet=YL(),yie=KL(),Eie=VL();function uet(t,e){return!e.stats&&cet.IS_SUPPORT_READDIR_WITH_FILE_TYPES?Cie(t,e):wie(t,e)}eh.read=uet;function Cie(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:Eie.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=yie.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}eh.readdirWithFileTypes=Cie;function wie(t,e){return e.fs.readdirSync(t).map(o=>{let a=Eie.joinPathSegments(t,o,e.pathSegmentSeparator),n=aet.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:yie.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}eh.readdir=wie});var Bie=_(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.createFileSystemAdapter=th.FILE_SYSTEM_ADAPTER=void 0;var rE=ve("fs");th.FILE_SYSTEM_ADAPTER={lstat:rE.lstat,stat:rE.stat,lstatSync:rE.lstatSync,statSync:rE.statSync,readdir:rE.readdir,readdirSync:rE.readdirSync};function Aet(t){return t===void 0?th.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},th.FILE_SYSTEM_ADAPTER),t)}th.createFileSystemAdapter=Aet});var vie=_(XL=>{"use strict";Object.defineProperty(XL,"__esModule",{value:!0});var fet=ve("path"),pet=Cd(),het=Bie(),zL=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=het.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,fet.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new pet.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};XL.default=zL});var vP=_(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.Settings=rh.scandirSync=rh.scandir=void 0;var Die=mie(),get=Iie(),ZL=vie();rh.Settings=ZL.default;function det(t,e,r){if(typeof e=="function"){Die.read(t,$L(),e);return}Die.read(t,$L(e),r)}rh.scandir=det;function met(t,e){let r=$L(e);return get.read(t,r)}rh.scandirSync=met;function $L(t={}){return t instanceof ZL.default?t:new ZL.default(t)}});var Pie=_((ZTt,Sie)=>{"use strict";function yet(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}Sie.exports=yet});var xie=_(($Tt,eO)=>{"use strict";var Eet=Pie();function bie(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),r<1)throw new Error("fastqueue concurrency must be greater than 1");var o=Eet(Cet),a=null,n=null,u=0,A=null,p={push:R,drain:Gl,saturated:Gl,pause:E,paused:!1,concurrency:r,running:h,resume:x,idle:C,length:I,getQueue:v,unshift:L,empty:Gl,kill:J,killAndDrain:te,error:ae};return p;function h(){return u}function E(){p.paused=!0}function I(){for(var fe=a,ce=0;fe;)fe=fe.next,ce++;return ce}function v(){for(var fe=a,ce=[];fe;)ce.push(fe.value),fe=fe.next;return ce}function x(){if(!!p.paused){p.paused=!1;for(var fe=0;fe{"use strict";Object.defineProperty(Zu,"__esModule",{value:!0});Zu.joinPathSegments=Zu.replacePathSegmentSeparator=Zu.isAppliedFilter=Zu.isFatalError=void 0;function Iet(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}Zu.isFatalError=Iet;function Bet(t,e){return t===null||t(e)}Zu.isAppliedFilter=Bet;function vet(t,e){return t.split(/[/\\]/).join(e)}Zu.replacePathSegmentSeparator=vet;function Det(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}Zu.joinPathSegments=Det});var nO=_(rO=>{"use strict";Object.defineProperty(rO,"__esModule",{value:!0});var Pet=DP(),tO=class{constructor(e,r){this._root=e,this._settings=r,this._root=Pet.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};rO.default=tO});var oO=_(sO=>{"use strict";Object.defineProperty(sO,"__esModule",{value:!0});var bet=ve("events"),xet=vP(),ket=xie(),SP=DP(),Qet=nO(),iO=class extends Qet.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=xet.scandir,this._emitter=new bet.EventEmitter,this._queue=ket(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!SP.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=SP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),SP.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&SP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};sO.default=iO});var kie=_(lO=>{"use strict";Object.defineProperty(lO,"__esModule",{value:!0});var Fet=oO(),aO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Fet.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{Ret(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{Tet(e,this._storage)}),this._reader.read()}};lO.default=aO;function Ret(t,e){t(e)}function Tet(t,e){t(null,e)}});var Qie=_(uO=>{"use strict";Object.defineProperty(uO,"__esModule",{value:!0});var Net=ve("stream"),Let=oO(),cO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Let.default(this._root,this._settings),this._stream=new Net.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};uO.default=cO});var Fie=_(fO=>{"use strict";Object.defineProperty(fO,"__esModule",{value:!0});var Oet=vP(),PP=DP(),Met=nO(),AO=class extends Met.default{constructor(){super(...arguments),this._scandir=Oet.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(!!PP.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=PP.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),PP.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&PP.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};fO.default=AO});var Rie=_(hO=>{"use strict";Object.defineProperty(hO,"__esModule",{value:!0});var Uet=Fie(),pO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Uet.default(this._root,this._settings)}read(){return this._reader.read()}};hO.default=pO});var Tie=_(dO=>{"use strict";Object.defineProperty(dO,"__esModule",{value:!0});var _et=ve("path"),Het=vP(),gO=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,_et.sep),this.fsScandirSettings=new Het.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};dO.default=gO});var xP=_($u=>{"use strict";Object.defineProperty($u,"__esModule",{value:!0});$u.Settings=$u.walkStream=$u.walkSync=$u.walk=void 0;var Nie=kie(),qet=Qie(),jet=Rie(),mO=Tie();$u.Settings=mO.default;function Get(t,e,r){if(typeof e=="function"){new Nie.default(t,bP()).read(e);return}new Nie.default(t,bP(e)).read(r)}$u.walk=Get;function Yet(t,e){let r=bP(e);return new jet.default(t,r).read()}$u.walkSync=Yet;function Wet(t,e){let r=bP(e);return new qet.default(t,r).read()}$u.walkStream=Wet;function bP(t={}){return t instanceof mO.default?t:new mO.default(t)}});var kP=_(EO=>{"use strict";Object.defineProperty(EO,"__esModule",{value:!0});var Ket=ve("path"),Vet=Cd(),Lie=Sf(),yO=class{constructor(e){this._settings=e,this._fsStatSettings=new Vet.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Ket.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Lie.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Lie.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};EO.default=yO});var IO=_(wO=>{"use strict";Object.defineProperty(wO,"__esModule",{value:!0});var Jet=ve("stream"),zet=Cd(),Xet=xP(),Zet=kP(),CO=class extends Zet.default{constructor(){super(...arguments),this._walkStream=Xet.walkStream,this._stat=zet.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new Jet.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;nthis._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};wO.default=CO});var Oie=_(vO=>{"use strict";Object.defineProperty(vO,"__esModule",{value:!0});var $et=xP(),ett=kP(),ttt=IO(),BO=class extends ett.default{constructor(){super(...arguments),this._walkAsync=$et.walk,this._readerStream=new ttt.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};vO.default=BO});var Mie=_(SO=>{"use strict";Object.defineProperty(SO,"__esModule",{value:!0});var nE=Sf(),DO=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){let e=nE.pattern.expandPatternsWithBraceExpansion(this._patterns);for(let r of e){let o=this._getPatternSegments(r),a=this._splitSegmentsIntoSections(o);this._storage.push({complete:a.length<=1,pattern:r,segments:o,sections:a})}}_getPatternSegments(e){return nE.pattern.getPatternParts(e,this._micromatchOptions).map(o=>nE.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:nE.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return nE.array.splitWhen(e,r=>r.dynamic&&nE.pattern.hasGlobStar(r.pattern))}};SO.default=DO});var Uie=_(bO=>{"use strict";Object.defineProperty(bO,"__esModule",{value:!0});var rtt=Mie(),PO=class extends rtt.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};bO.default=PO});var _ie=_(kO=>{"use strict";Object.defineProperty(kO,"__esModule",{value:!0});var QP=Sf(),ntt=Uie(),xO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new ntt.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(QP.pattern.isAffectDepthOfReadingPattern);return QP.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=QP.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!QP.pattern.matchAny(e,r)}};kO.default=xO});var Hie=_(FO=>{"use strict";Object.defineProperty(FO,"__esModule",{value:!0});var wd=Sf(),QO=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=wd.pattern.convertPatternsToRe(e,this._micromatchOptions),a=wd.pattern.convertPatternsToRe(r,this._micromatchOptions);return n=>this._filter(n,o,a)}_filter(e,r,o){if(this._settings.unique&&this._isDuplicateEntry(e)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(e.path,o))return!1;let a=this._settings.baseNameMatch?e.name:e.path,n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(e.path,o,n);return this._settings.unique&&u&&this._createIndexRecord(e),u}_isDuplicateEntry(e){return this.index.has(e.path)}_createIndexRecord(e){this.index.set(e.path,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=wd.path.makeAbsolute(this._settings.cwd,e);return wd.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=wd.path.removeLeadingDotSegment(e),n=wd.pattern.matchAny(a,r);return!n&&o?wd.pattern.matchAny(a+"/",r):n}};FO.default=QO});var qie=_(TO=>{"use strict";Object.defineProperty(TO,"__esModule",{value:!0});var itt=Sf(),RO=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return itt.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};TO.default=RO});var Gie=_(LO=>{"use strict";Object.defineProperty(LO,"__esModule",{value:!0});var jie=Sf(),NO=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=jie.path.makeAbsolute(this._settings.cwd,r),r=jie.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};LO.default=NO});var FP=_(MO=>{"use strict";Object.defineProperty(MO,"__esModule",{value:!0});var stt=ve("path"),ott=_ie(),att=Hie(),ltt=qie(),ctt=Gie(),OO=class{constructor(e){this._settings=e,this.errorFilter=new ltt.default(this._settings),this.entryFilter=new att.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new ott.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ctt.default(this._settings)}_getRootDirectory(e){return stt.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};MO.default=OO});var Yie=_(_O=>{"use strict";Object.defineProperty(_O,"__esModule",{value:!0});var utt=Oie(),Att=FP(),UO=class extends Att.default{constructor(){super(...arguments),this._reader=new utt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};_O.default=UO});var Wie=_(qO=>{"use strict";Object.defineProperty(qO,"__esModule",{value:!0});var ftt=ve("stream"),ptt=IO(),htt=FP(),HO=class extends htt.default{constructor(){super(...arguments),this._reader=new ptt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new ftt.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};qO.default=HO});var Kie=_(GO=>{"use strict";Object.defineProperty(GO,"__esModule",{value:!0});var gtt=Cd(),dtt=xP(),mtt=kP(),jO=class extends mtt.default{constructor(){super(...arguments),this._walkSync=dtt.walkSync,this._statSync=gtt.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};GO.default=jO});var Vie=_(WO=>{"use strict";Object.defineProperty(WO,"__esModule",{value:!0});var ytt=Kie(),Ett=FP(),YO=class extends Ett.default{constructor(){super(...arguments),this._reader=new ytt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};WO.default=YO});var Jie=_(sE=>{"use strict";Object.defineProperty(sE,"__esModule",{value:!0});sE.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var iE=ve("fs"),Ctt=ve("os"),wtt=Math.max(Ctt.cpus().length,1);sE.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:iE.lstat,lstatSync:iE.lstatSync,stat:iE.stat,statSync:iE.statSync,readdir:iE.readdir,readdirSync:iE.readdirSync};var KO=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,wtt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},sE.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};sE.default=KO});var RP=_((vNt,Zie)=>{"use strict";var zie=Zne(),Xie=eie(),Itt=Yie(),Btt=Wie(),vtt=Vie(),VO=Jie(),Id=Sf();async function JO(t,e){oE(t);let r=zO(t,Itt.default,e),o=await Promise.all(r);return Id.array.flatten(o)}(function(t){function e(u,A){oE(u);let p=zO(u,vtt.default,A);return Id.array.flatten(p)}t.sync=e;function r(u,A){oE(u);let p=zO(u,Btt.default,A);return Id.stream.merge(p)}t.stream=r;function o(u,A){oE(u);let p=Xie.transform([].concat(u)),h=new VO.default(A);return zie.generate(p,h)}t.generateTasks=o;function a(u,A){oE(u);let p=new VO.default(A);return Id.pattern.isDynamicPattern(u,p)}t.isDynamicPattern=a;function n(u){return oE(u),Id.path.escape(u)}t.escapePath=n})(JO||(JO={}));function zO(t,e,r){let o=Xie.transform([].concat(t)),a=new VO.default(r),n=zie.generate(o,a),u=new e(a);return n.map(u.read,u)}function oE(t){if(![].concat(t).every(o=>Id.string.isString(o)&&!Id.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}Zie.exports=JO});var wn={};Vt(wn,{checksumFile:()=>NP,checksumPattern:()=>LP,makeHash:()=>zs});function zs(...t){let e=(0,TP.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function NP(t,{baseFs:e,algorithm:r}={baseFs:oe,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,TP.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function LP(t,{cwd:e}){let o=(await(0,XO.default)(t,{cwd:ue.fromPortablePath(e),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,XO.default)([t,...o],{cwd:ue.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=ue.toPortablePath(A),E=await oe.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await oe.readlinkPromise(h))):E.isFile()&&p.push(await oe.readFilePromise(h)),p.join("\0")})),u=(0,TP.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var TP,XO,nh=Et(()=>{St();TP=ve("crypto"),XO=$e(RP())});var W={};Vt(W,{areDescriptorsEqual:()=>nse,areIdentsEqual:()=>n1,areLocatorsEqual:()=>i1,areVirtualPackagesEquivalent:()=>Rtt,bindDescriptor:()=>Qtt,bindLocator:()=>Ftt,convertDescriptorToLocator:()=>OP,convertLocatorToDescriptor:()=>$O,convertPackageToLocator:()=>btt,convertToIdent:()=>Ptt,convertToManifestRange:()=>jtt,copyPackage:()=>e1,devirtualizeDescriptor:()=>t1,devirtualizeLocator:()=>r1,ensureDevirtualizedDescriptor:()=>xtt,ensureDevirtualizedLocator:()=>ktt,getIdentVendorPath:()=>nM,isPackageCompatible:()=>qP,isVirtualDescriptor:()=>bf,isVirtualLocator:()=>Hc,makeDescriptor:()=>In,makeIdent:()=>eA,makeLocator:()=>Qs,makeRange:()=>_P,parseDescriptor:()=>ih,parseFileStyleRange:()=>Htt,parseIdent:()=>Js,parseLocator:()=>xf,parseRange:()=>Bd,prettyDependent:()=>kL,prettyDescriptor:()=>jn,prettyIdent:()=>cs,prettyLocator:()=>qr,prettyLocatorNoColors:()=>xL,prettyRange:()=>cE,prettyReference:()=>o1,prettyResolution:()=>ZI,prettyWorkspace:()=>a1,renamePackage:()=>eM,slugifyIdent:()=>ZO,slugifyLocator:()=>lE,sortDescriptors:()=>uE,stringifyDescriptor:()=>Pa,stringifyIdent:()=>fn,stringifyLocator:()=>ba,tryParseDescriptor:()=>s1,tryParseIdent:()=>ise,tryParseLocator:()=>UP,tryParseRange:()=>_tt,virtualizeDescriptor:()=>tM,virtualizePackage:()=>rM});function eA(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:zs(t,e),scope:t,name:e}}function In(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:zs(t.identHash,e),range:e}}function Qs(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:zs(t.identHash,e),reference:e}}function Ptt(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function OP(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function $O(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function btt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function eM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function e1(t){return eM(t,t)}function tM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return In(t,`virtual:${e}#${t.range}`)}function rM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return eM(t,Qs(t,`virtual:${e}#${t.reference}`))}function bf(t){return t.range.startsWith($I)}function Hc(t){return t.reference.startsWith($I)}function t1(t){if(!bf(t))throw new Error("Not a virtual descriptor");return In(t,t.range.replace(MP,""))}function r1(t){if(!Hc(t))throw new Error("Not a virtual descriptor");return Qs(t,t.reference.replace(MP,""))}function xtt(t){return bf(t)?In(t,t.range.replace(MP,"")):t}function ktt(t){return Hc(t)?Qs(t,t.reference.replace(MP,"")):t}function Qtt(t,e){return t.range.includes("::")?t:In(t,`${t.range}::${aE.default.stringify(e)}`)}function Ftt(t,e){return t.reference.includes("::")?t:Qs(t,`${t.reference}::${aE.default.stringify(e)}`)}function n1(t,e){return t.identHash===e.identHash}function nse(t,e){return t.descriptorHash===e.descriptorHash}function i1(t,e){return t.locatorHash===e.locatorHash}function Rtt(t,e){if(!Hc(t))throw new Error("Invalid package type");if(!Hc(e))throw new Error("Invalid package type");if(!n1(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!nse(r,o))return!1}return!0}function Js(t){let e=ise(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function ise(t){let e=t.match(Ttt);if(!e)return null;let[,r,o]=e;return eA(typeof r<"u"?r:null,o)}function ih(t,e=!1){let r=s1(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function s1(t,e=!1){let r=e?t.match(Ntt):t.match(Ltt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return In(eA(u,a),A)}function xf(t,e=!1){let r=UP(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function UP(t,e=!1){let r=e?t.match(Ott):t.match(Mtt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return Qs(eA(u,a),A)}function Bd(t,e){let r=t.match(Utt);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if(e?.requireProtocol&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e?.parseSelector?aE.default.parse(n):n,A=typeof r[4]<"u"?aE.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function _tt(t,e){try{return Bd(t,e)}catch{return null}}function Htt(t,{protocol:e}){let{selector:r,params:o}=Bd(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:xf(o.locator,!0),path:r}}function $ie(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function qtt(t){return t===null?!1:Object.entries(t).length>0}function _P({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${$ie(e)}#`),a+=$ie(r),qtt(o)&&(a+=`::${aE.default.stringify(o)}`),a}function jtt(t){let{params:e,protocol:r,source:o,selector:a}=Bd(t);for(let n in e)n.startsWith("__")&&delete e[n];return _P({protocol:r,source:o,params:e,selector:a})}function fn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function Pa(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function ba(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function ZO(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function lE(t){let{protocol:e,selector:r}=Bd(t.reference),o=e!==null?e.replace(Gtt,""):"exotic",a=ese.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10;return t.scope?`${ZO(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${ZO(t)}-${n}-${t.locatorHash.slice(0,u)}`}function cs(t,e){return e.scope?`${Mt(t,`@${e.scope}/`,yt.SCOPE)}${Mt(t,e.name,yt.NAME)}`:`${Mt(t,e.name,yt.NAME)}`}function HP(t){if(t.startsWith($I)){let e=HP(t.substring(t.indexOf("#")+1)),r=t.substring($I.length,$I.length+Dtt);return`${e} [${r}]`}else return t.replace(Ytt,"?[...]")}function cE(t,e){return`${Mt(t,HP(e),yt.RANGE)}`}function jn(t,e){return`${cs(t,e)}${Mt(t,"@",yt.RANGE)}${cE(t,e.range)}`}function o1(t,e){return`${Mt(t,HP(e),yt.REFERENCE)}`}function qr(t,e){return`${cs(t,e)}${Mt(t,"@",yt.REFERENCE)}${o1(t,e.reference)}`}function xL(t){return`${fn(t)}@${HP(t.reference)}`}function uE(t){return ks(t,[e=>fn(e),e=>e.range])}function a1(t,e){return cs(t,e.anchoredLocator)}function ZI(t,e,r){let o=bf(e)?t1(e):e;return r===null?`${jn(t,o)} \u2192 ${bL(t).Cross}`:o.identHash===r.identHash?`${jn(t,o)} \u2192 ${o1(t,r.reference)}`:`${jn(t,o)} \u2192 ${qr(t,r)}`}function kL(t,e,r){return r===null?`${qr(t,e)}`:`${qr(t,e)} (via ${cE(t,r.range)})`}function nM(t){return`node_modules/${fn(t)}`}function qP(t,e){return t.conditions?Stt(t.conditions,r=>{let[,o,a]=r.match(rse),n=e[o];return n?n.includes(a):!0}):!0}var aE,ese,tse,$I,Dtt,rse,Stt,MP,Ttt,Ntt,Ltt,Ott,Mtt,Utt,Gtt,Ytt,bo=Et(()=>{aE=$e(ve("querystring")),ese=$e(zn()),tse=$e(eX());jl();nh();ql();bo();$I="virtual:",Dtt=5,rse=/(os|cpu|libc)=([a-z0-9_-]+)/,Stt=(0,tse.makeParser)(rse);MP=/^[^#]*#/;Ttt=/^(?:@([^/]+?)\/)?([^@/]+)$/;Ntt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,Ltt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Ott=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,Mtt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Utt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Gtt=/:$/;Ytt=/\?.*/});var sse,ose=Et(()=>{bo();sse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==fn(r)||e.configuration.normalizeLocator(Qs(Js(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==fn(t)||e.configuration.normalizeDependency(In(xf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(In(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=a1(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var l1,Xn,vd=Et(()=>{l1=class{supportsDescriptor(e,r){return!!(e.range.startsWith(l1.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(l1.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(l1.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}},Xn=l1;Xn.protocol="workspace:"});var kr={};Vt(kr,{SemVer:()=>Ase.SemVer,clean:()=>Ktt,getComparator:()=>cse,mergeComparators:()=>iM,satisfiesWithPrereleases:()=>kf,simplifyRanges:()=>sM,stringifyComparator:()=>use,validRange:()=>xa});function kf(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=ase.get(o);if(typeof a>"u")try{a=new sh.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{ase.set(o,a||null)}else if(a===null)return!1;let n;try{n=new sh.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function xa(t){if(t.indexOf(":")!==-1)return null;let e=lse.get(t);if(typeof e<"u")return e;try{e=new sh.default.Range(t)}catch{e=null}return lse.set(t,e),e}function Ktt(t){let e=Wtt.exec(t);return e?e[1]:null}function cse(t){if(t.semver===sh.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function iM(t){if(t.length===0)return null;let e=null,r=null;for(let o of t){if(o.gt){let a=e!==null?sh.default.compare(o.gt[1],e[1]):null;(a===null||a>0||a===0&&o.gt[0]===">")&&(e=o.gt)}if(o.lt){let a=r!==null?sh.default.compare(o.lt[1],r[1]):null;(a===null||a<0||a===0&&o.lt[0]==="<")&&(r=o.lt)}}if(e&&r){let o=sh.default.compare(e[1],r[1]);if(o===0&&(e[0]===">"||r[0]==="<")||o>0)return null}return{gt:e,lt:r}}function use(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function sM(t){let e=t.map(o=>xa(o).set.map(a=>a.map(n=>cse(n)))),r=e.shift().map(o=>iM(o)).filter(o=>o!==null);for(let o of e){let a=[];for(let n of r)for(let u of o){let A=iM([n,...u]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(o=>use(o)).join(" || ")}var sh,Ase,ase,lse,Wtt,Qf=Et(()=>{sh=$e(zn()),Ase=$e(zn()),ase=new Map;lse=new Map;Wtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function fse(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function pse(t){return t.charCodeAt(0)===65279?t.slice(1):t}function $o(t){return t.replace(/\\/g,"/")}function jP(t,{yamlCompatibilityMode:e}){return e?CL(t):typeof t>"u"||typeof t=="boolean"?t:null}function hse(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function oM(t,e){return e.length===1?hse(t,e[0]):`(${e.map(r=>hse(t,r)).join(" | ")})`}var gse,AE,Ot,fE=Et(()=>{St();Nl();gse=$e(zn());vd();ql();Qf();bo();AE=class{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static async tryFind(e,{baseFs:r=new Tn}={}){let o=V.join(e,"package.json");try{return await AE.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await AE.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new Tn}={}){let o=new AE;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new AE;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(pse(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=fse(e)}async loadFile(e,{baseFs:r=new Tn}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(pse(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=fse(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=Js(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=$o(e.main):this.main=null,typeof e.module=="string"?this.module=$o(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=$o(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set($o(n),typeof u=="string"?$o(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?o.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,$o(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"||u.trim()===""){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=Js(n);this.bin.set(A.name,$o(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(Xn.protocol)&&!xa(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=In(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=ih(n),p=this.ensureDependencyMeta(A),h=jP(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=jP(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let I=jP(u.unplugged,{yamlCompatibilityMode:r});if(I===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:I})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=ih(n),p=this.ensurePeerDependencyMeta(A),h=jP(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:MD(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=$o(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=$o(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=$o(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set($o(n),typeof u=="string"?$o(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,$o(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,$o(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add($o(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Js(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=In(A,u);this.dependencies.set(p.identHash,p);let h=In(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(oM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(oM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(oM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!gse.default.valid(e.range))throw new Error(`Invalid meta field range for '${Pa(e)}'`);let r=fn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${Pa(e)}'`);let r=fn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=fn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(fn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...uE(o).map(n=>({[fn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...uE(a).map(n=>({[fn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...uE(this.devDependencies.values()).map(n=>({[fn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...uE(this.peerDependencies.values()).map(n=>({[fn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of ks(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of ks(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?Pa(In(Js(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...ks(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[UD(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}},Ot=AE;Ot.fileName="package.json",Ot.allDependencies=["dependencies","devDependencies","peerDependencies"],Ot.hardDependencies=["dependencies","devDependencies"]});var mse=_((UNt,dse)=>{var Vtt=_l(),Jtt=function(){return Vtt.Date.now()};dse.exports=Jtt});var Ese=_((_Nt,yse)=>{var ztt=/\s/;function Xtt(t){for(var e=t.length;e--&&ztt.test(t.charAt(e)););return e}yse.exports=Xtt});var wse=_((HNt,Cse)=>{var Ztt=Ese(),$tt=/^\s+/;function ert(t){return t&&t.slice(0,Ztt(t)+1).replace($tt,"")}Cse.exports=ert});var pE=_((qNt,Ise)=>{var trt=hd(),rrt=Ju(),nrt="[object Symbol]";function irt(t){return typeof t=="symbol"||rrt(t)&&trt(t)==nrt}Ise.exports=irt});var Sse=_((jNt,Dse)=>{var srt=wse(),Bse=il(),ort=pE(),vse=0/0,art=/^[-+]0x[0-9a-f]+$/i,lrt=/^0b[01]+$/i,crt=/^0o[0-7]+$/i,urt=parseInt;function Art(t){if(typeof t=="number")return t;if(ort(t))return vse;if(Bse(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Bse(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=srt(t);var r=lrt.test(t);return r||crt.test(t)?urt(t.slice(2),r?2:8):art.test(t)?vse:+t}Dse.exports=Art});var xse=_((GNt,bse)=>{var frt=il(),aM=mse(),Pse=Sse(),prt="Expected a function",hrt=Math.max,grt=Math.min;function drt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,I=!1,v=!0;if(typeof t!="function")throw new TypeError(prt);e=Pse(e)||0,frt(r)&&(E=!!r.leading,I="maxWait"in r,n=I?hrt(Pse(r.maxWait)||0,e):n,v="trailing"in r?!!r.trailing:v);function x(ce){var me=o,he=a;return o=a=void 0,h=ce,u=t.apply(he,me),u}function C(ce){return h=ce,A=setTimeout(U,e),E?x(ce):u}function R(ce){var me=ce-p,he=ce-h,Be=e-me;return I?grt(Be,n-he):Be}function L(ce){var me=ce-p,he=ce-h;return p===void 0||me>=e||me<0||I&&he>=n}function U(){var ce=aM();if(L(ce))return J(ce);A=setTimeout(U,R(ce))}function J(ce){return A=void 0,v&&o?x(ce):(o=a=void 0,u)}function te(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function ae(){return A===void 0?u:J(aM())}function fe(){var ce=aM(),me=L(ce);if(o=arguments,a=this,p=ce,me){if(A===void 0)return C(p);if(I)return clearTimeout(A),A=setTimeout(U,e),x(p)}return A===void 0&&(A=setTimeout(U,e)),u}return fe.cancel=te,fe.flush=ae,fe}bse.exports=drt});var lM=_((YNt,kse)=>{var mrt=xse(),yrt=il(),Ert="Expected a function";function Crt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(Ert);return yrt(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),mrt(t,e,{leading:o,maxWait:e,trailing:a})}kse.exports=Crt});function Irt(t){return typeof t.reportCode<"u"}var Qse,Fse,Rse,wrt,zt,Xs,Yl=Et(()=>{Qse=$e(lM()),Fse=ve("stream"),Rse=ve("string_decoder"),wrt=15,zt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Xs=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r{r=u}),a=(0,Qse.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/wrt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),o?.reportExtra?.(this))}reportWarningOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),o?.reportExtra?.(this))}reportErrorOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),o?.reportExtra?.(this))}reportExceptionOnce(e){Irt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new Fse.PassThrough,o=new Rse.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` `),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var hE,cM=Et(()=>{Yl();bo();hE=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new zt(11,`${qr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var Dd,uM=Et(()=>{bo();Dd=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${qr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var gE,AM=Et(()=>{St();bo();gE=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Qs(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Qs(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return lE(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=mi.makeVirtualPath(n,u,a),p=new Uu(A,{baseFs:r.packageFs,pathUtils:V});return{...r,packageFs:p}}}});var dE,c1,Tse=Et(()=>{dE=class{static isVirtualDescriptor(e){return!!e.range.startsWith(dE.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(dE.protocol)}supportsDescriptor(e,r){return dE.isVirtualDescriptor(e)}supportsLocator(e,r){return dE.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}},c1=dE;c1.protocol="virtual:"});var mE,fM=Et(()=>{St();vd();mE=class{supports(e){return!!e.reference.startsWith(Xn.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new gn(o),prefixPath:Bt.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(Xn.protocol.length))}}});function u1(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Nse(t){return typeof t>"u"?3:u1(t)?0:Array.isArray(t)?1:2}function gM(t,e){return Object.hasOwn(t,e)}function vrt(t){return u1(t)&&gM(t,"onConflict")&&typeof t.onConflict=="string"}function Drt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!vrt(t))return{onConflict:"default",value:t};if(gM(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function Lse(t,e){let r=u1(t)&&gM(t,e)?t[e]:void 0;return Drt(r)}function yE(t,e){return[t,e,Ose]}function dM(t){return Array.isArray(t)?t[2]===Ose:!1}function pM(t,e){if(u1(t)){let r={};for(let o of Object.keys(t))r[o]=pM(t[o],e);return yE(e,r)}return Array.isArray(t)?yE(e,t.map(r=>pM(r,e))):yE(e,t)}function hM(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[I,v]=t[E],{onConflict:x,value:C}=Lse(v,r),R=Nse(C);if(R!==3){if(n??=R,R!==n||x==="hardReset"){p=A;break}if(R===2)return yE(I,C);if(u.unshift([I,C]),x==="reset"){p=E;break}x==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return yE(h,new Array().concat(...u.map(([E,I])=>I.map(v=>pM(v,E)))));case 0:{let E=Object.assign({},...u.map(([,R])=>R)),I=Object.keys(E),v={},x=t.map(([R,L])=>[R,Lse(L,r).value]),C=Brt(x,([R,L])=>{let U=Nse(L);return U!==0&&U!==3});if(C!==-1){let R=x.slice(C+1);for(let L of I)v[L]=hM(R,e,L,0,R.length)}else for(let R of I)v[R]=hM(x,e,R,p,x.length);return yE(h,v)}default:throw new Error("Assertion failed: Non-extendable value type")}}function Mse(t){return hM(t.map(([e,r])=>[e,{["."]:r}]),[],".",0,t.length)}function A1(t){return dM(t)?t[1]:t}function GP(t){let e=dM(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>GP(r));if(u1(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=GP(a);return r}return e}function mM(t){return dM(t)?t[0]:null}var Brt,Ose,Use=Et(()=>{Brt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Ose=Symbol()});var YP={};Vt(YP,{getDefaultGlobalFolder:()=>EM,getHomeFolder:()=>EE,isFolderInside:()=>CM});function EM(){if(process.platform==="win32"){let t=ue.toPortablePath(process.env.LOCALAPPDATA||ue.join((0,yM.homedir)(),"AppData","Local"));return V.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=ue.toPortablePath(process.env.XDG_DATA_HOME);return V.resolve(t,"yarn/berry")}return V.resolve(EE(),".yarn/berry")}function EE(){return ue.toPortablePath((0,yM.homedir)()||"/usr/local/share")}function CM(t,e){let r=V.relative(e,t);return r&&!r.startsWith("..")&&!V.isAbsolute(r)}var yM,WP=Et(()=>{St();yM=ve("os")});var jse=_(CE=>{"use strict";var iLt=ve("net"),Prt=ve("tls"),wM=ve("http"),_se=ve("https"),brt=ve("events"),sLt=ve("assert"),xrt=ve("util");CE.httpOverHttp=krt;CE.httpsOverHttp=Qrt;CE.httpOverHttps=Frt;CE.httpsOverHttps=Rrt;function krt(t){var e=new Ff(t);return e.request=wM.request,e}function Qrt(t){var e=new Ff(t);return e.request=wM.request,e.createSocket=Hse,e.defaultPort=443,e}function Frt(t){var e=new Ff(t);return e.request=_se.request,e}function Rrt(t){var e=new Ff(t);return e.request=_se.request,e.createSocket=Hse,e.defaultPort=443,e}function Ff(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||wM.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=qse(a,n,u),p=0,h=e.requests.length;p=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};Ff.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=IM({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),oh("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(I){I.upgrade=!0}function p(I,v,x){process.nextTick(function(){h(I,v,x)})}function h(I,v,x){if(u.removeAllListeners(),v.removeAllListeners(),I.statusCode!==200){oh("tunneling socket could not be established, statusCode=%d",I.statusCode),v.destroy();var C=new Error("tunneling socket could not be established, statusCode="+I.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(x.length>0){oh("got illegal response body from proxy"),v.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return oh("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=v,r(v)}function E(I){u.removeAllListeners(),oh(`tunneling socket could not be established, cause=%s `,I.message,I.stack);var v=new Error("tunneling socket could not be established, cause="+I.message);v.code="ECONNRESET",e.request.emit("error",v),o.removeSocket(a)}};Ff.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function Hse(t,e){var r=this;Ff.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=IM({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Prt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function qse(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function IM(t){for(var e=1,r=arguments.length;e{Gse.exports=jse()});var Tf=_((Rf,KP)=>{"use strict";Object.defineProperty(Rf,"__esModule",{value:!0});var Wse=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Trt(t){return Wse.includes(t)}var Nrt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Wse];function Lrt(t){return Nrt.includes(t)}var Ort=["null","undefined","string","number","bigint","boolean","symbol"];function Mrt(t){return Ort.includes(t)}function wE(t){return e=>typeof e===t}var{toString:Kse}=Object.prototype,f1=t=>{let e=Kse.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&be.domElement(t))return"HTMLElement";if(Lrt(e))return e},ei=t=>e=>f1(e)===t;function be(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(be.observable(t))return"Observable";if(be.array(t))return"Array";if(be.buffer(t))return"Buffer";let e=f1(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}be.undefined=wE("undefined");be.string=wE("string");var Urt=wE("number");be.number=t=>Urt(t)&&!be.nan(t);be.bigint=wE("bigint");be.function_=wE("function");be.null_=t=>t===null;be.class_=t=>be.function_(t)&&t.toString().startsWith("class ");be.boolean=t=>t===!0||t===!1;be.symbol=wE("symbol");be.numericString=t=>be.string(t)&&!be.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));be.array=(t,e)=>Array.isArray(t)?be.function_(e)?t.every(e):!0:!1;be.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};be.nullOrUndefined=t=>be.null_(t)||be.undefined(t);be.object=t=>!be.null_(t)&&(typeof t=="object"||be.function_(t));be.iterable=t=>{var e;return be.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};be.asyncIterable=t=>{var e;return be.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};be.generator=t=>be.iterable(t)&&be.function_(t.next)&&be.function_(t.throw);be.asyncGenerator=t=>be.asyncIterable(t)&&be.function_(t.next)&&be.function_(t.throw);be.nativePromise=t=>ei("Promise")(t);var _rt=t=>{var e,r;return be.function_((e=t)===null||e===void 0?void 0:e.then)&&be.function_((r=t)===null||r===void 0?void 0:r.catch)};be.promise=t=>be.nativePromise(t)||_rt(t);be.generatorFunction=ei("GeneratorFunction");be.asyncGeneratorFunction=t=>f1(t)==="AsyncGeneratorFunction";be.asyncFunction=t=>f1(t)==="AsyncFunction";be.boundFunction=t=>be.function_(t)&&!t.hasOwnProperty("prototype");be.regExp=ei("RegExp");be.date=ei("Date");be.error=ei("Error");be.map=t=>ei("Map")(t);be.set=t=>ei("Set")(t);be.weakMap=t=>ei("WeakMap")(t);be.weakSet=t=>ei("WeakSet")(t);be.int8Array=ei("Int8Array");be.uint8Array=ei("Uint8Array");be.uint8ClampedArray=ei("Uint8ClampedArray");be.int16Array=ei("Int16Array");be.uint16Array=ei("Uint16Array");be.int32Array=ei("Int32Array");be.uint32Array=ei("Uint32Array");be.float32Array=ei("Float32Array");be.float64Array=ei("Float64Array");be.bigInt64Array=ei("BigInt64Array");be.bigUint64Array=ei("BigUint64Array");be.arrayBuffer=ei("ArrayBuffer");be.sharedArrayBuffer=ei("SharedArrayBuffer");be.dataView=ei("DataView");be.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;be.urlInstance=t=>ei("URL")(t);be.urlString=t=>{if(!be.string(t))return!1;try{return new URL(t),!0}catch{return!1}};be.truthy=t=>Boolean(t);be.falsy=t=>!t;be.nan=t=>Number.isNaN(t);be.primitive=t=>be.null_(t)||Mrt(typeof t);be.integer=t=>Number.isInteger(t);be.safeInteger=t=>Number.isSafeInteger(t);be.plainObject=t=>{if(Kse.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};be.typedArray=t=>Trt(f1(t));var Hrt=t=>be.safeInteger(t)&&t>=0;be.arrayLike=t=>!be.nullOrUndefined(t)&&!be.function_(t)&&Hrt(t.length);be.inRange=(t,e)=>{if(be.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(be.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var qrt=1,jrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];be.domElement=t=>be.object(t)&&t.nodeType===qrt&&be.string(t.nodeName)&&!be.plainObject(t)&&jrt.every(e=>e in t);be.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};be.nodeStream=t=>be.object(t)&&be.function_(t.pipe)&&!be.observable(t);be.infinite=t=>t===1/0||t===-1/0;var Vse=t=>e=>be.integer(e)&&Math.abs(e%2)===t;be.evenInteger=Vse(0);be.oddInteger=Vse(1);be.emptyArray=t=>be.array(t)&&t.length===0;be.nonEmptyArray=t=>be.array(t)&&t.length>0;be.emptyString=t=>be.string(t)&&t.length===0;be.nonEmptyString=t=>be.string(t)&&t.length>0;var Grt=t=>be.string(t)&&!/\S/.test(t);be.emptyStringOrWhitespace=t=>be.emptyString(t)||Grt(t);be.emptyObject=t=>be.object(t)&&!be.map(t)&&!be.set(t)&&Object.keys(t).length===0;be.nonEmptyObject=t=>be.object(t)&&!be.map(t)&&!be.set(t)&&Object.keys(t).length>0;be.emptySet=t=>be.set(t)&&t.size===0;be.nonEmptySet=t=>be.set(t)&&t.size>0;be.emptyMap=t=>be.map(t)&&t.size===0;be.nonEmptyMap=t=>be.map(t)&&t.size>0;be.propertyKey=t=>be.any([be.string,be.number,be.symbol],t);be.formData=t=>ei("FormData")(t);be.urlSearchParams=t=>ei("URLSearchParams")(t);var Jse=(t,e,r)=>{if(!be.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};be.any=(t,...e)=>(be.array(t)?t:[t]).some(o=>Jse(Array.prototype.some,o,e));be.all=(t,...e)=>Jse(Array.prototype.every,t,e);var Ht=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${be(u)}\``))].join(", ")}`:`received value of type \`${be(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Rf.assert={undefined:t=>Ht(be.undefined(t),"undefined",t),string:t=>Ht(be.string(t),"string",t),number:t=>Ht(be.number(t),"number",t),bigint:t=>Ht(be.bigint(t),"bigint",t),function_:t=>Ht(be.function_(t),"Function",t),null_:t=>Ht(be.null_(t),"null",t),class_:t=>Ht(be.class_(t),"Class",t),boolean:t=>Ht(be.boolean(t),"boolean",t),symbol:t=>Ht(be.symbol(t),"symbol",t),numericString:t=>Ht(be.numericString(t),"string with a number",t),array:(t,e)=>{Ht(be.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Ht(be.buffer(t),"Buffer",t),nullOrUndefined:t=>Ht(be.nullOrUndefined(t),"null or undefined",t),object:t=>Ht(be.object(t),"Object",t),iterable:t=>Ht(be.iterable(t),"Iterable",t),asyncIterable:t=>Ht(be.asyncIterable(t),"AsyncIterable",t),generator:t=>Ht(be.generator(t),"Generator",t),asyncGenerator:t=>Ht(be.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Ht(be.nativePromise(t),"native Promise",t),promise:t=>Ht(be.promise(t),"Promise",t),generatorFunction:t=>Ht(be.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Ht(be.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Ht(be.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Ht(be.boundFunction(t),"Function",t),regExp:t=>Ht(be.regExp(t),"RegExp",t),date:t=>Ht(be.date(t),"Date",t),error:t=>Ht(be.error(t),"Error",t),map:t=>Ht(be.map(t),"Map",t),set:t=>Ht(be.set(t),"Set",t),weakMap:t=>Ht(be.weakMap(t),"WeakMap",t),weakSet:t=>Ht(be.weakSet(t),"WeakSet",t),int8Array:t=>Ht(be.int8Array(t),"Int8Array",t),uint8Array:t=>Ht(be.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Ht(be.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Ht(be.int16Array(t),"Int16Array",t),uint16Array:t=>Ht(be.uint16Array(t),"Uint16Array",t),int32Array:t=>Ht(be.int32Array(t),"Int32Array",t),uint32Array:t=>Ht(be.uint32Array(t),"Uint32Array",t),float32Array:t=>Ht(be.float32Array(t),"Float32Array",t),float64Array:t=>Ht(be.float64Array(t),"Float64Array",t),bigInt64Array:t=>Ht(be.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Ht(be.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Ht(be.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Ht(be.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Ht(be.dataView(t),"DataView",t),urlInstance:t=>Ht(be.urlInstance(t),"URL",t),urlString:t=>Ht(be.urlString(t),"string with a URL",t),truthy:t=>Ht(be.truthy(t),"truthy",t),falsy:t=>Ht(be.falsy(t),"falsy",t),nan:t=>Ht(be.nan(t),"NaN",t),primitive:t=>Ht(be.primitive(t),"primitive",t),integer:t=>Ht(be.integer(t),"integer",t),safeInteger:t=>Ht(be.safeInteger(t),"integer",t),plainObject:t=>Ht(be.plainObject(t),"plain object",t),typedArray:t=>Ht(be.typedArray(t),"TypedArray",t),arrayLike:t=>Ht(be.arrayLike(t),"array-like",t),domElement:t=>Ht(be.domElement(t),"HTMLElement",t),observable:t=>Ht(be.observable(t),"Observable",t),nodeStream:t=>Ht(be.nodeStream(t),"Node.js Stream",t),infinite:t=>Ht(be.infinite(t),"infinite number",t),emptyArray:t=>Ht(be.emptyArray(t),"empty array",t),nonEmptyArray:t=>Ht(be.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Ht(be.emptyString(t),"empty string",t),nonEmptyString:t=>Ht(be.nonEmptyString(t),"non-empty string",t),emptyStringOrWhitespace:t=>Ht(be.emptyStringOrWhitespace(t),"empty string or whitespace",t),emptyObject:t=>Ht(be.emptyObject(t),"empty object",t),nonEmptyObject:t=>Ht(be.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Ht(be.emptySet(t),"empty set",t),nonEmptySet:t=>Ht(be.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Ht(be.emptyMap(t),"empty map",t),nonEmptyMap:t=>Ht(be.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Ht(be.propertyKey(t),"PropertyKey",t),formData:t=>Ht(be.formData(t),"FormData",t),urlSearchParams:t=>Ht(be.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Ht(be.evenInteger(t),"even integer",t),oddInteger:t=>Ht(be.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Ht(be.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Ht(be.inRange(t,e),"in range",t),any:(t,...e)=>Ht(be.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Ht(be.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(be,{class:{value:be.class_},function:{value:be.function_},null:{value:be.null_}});Object.defineProperties(Rf.assert,{class:{value:Rf.assert.class_},function:{value:Rf.assert.function_},null:{value:Rf.assert.null_}});Rf.default=be;KP.exports=be;KP.exports.default=be;KP.exports.assert=Rf.assert});var zse=_((lLt,BM)=>{"use strict";var VP=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},IE=class{static fn(e){return(...r)=>new IE((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new VP(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(IE.prototype,Promise.prototype);BM.exports=IE;BM.exports.CancelError=VP});var Xse=_((DM,SM)=>{"use strict";Object.defineProperty(DM,"__esModule",{value:!0});var Yrt=ve("tls"),vM=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),t instanceof Yrt.TLSSocket&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};DM.default=vM;SM.exports=vM;SM.exports.default=vM});var Zse=_((bM,xM)=>{"use strict";Object.defineProperty(bM,"__esModule",{value:!0});var Wrt=Xse(),Krt=Number(process.versions.node.split(".")[0]),PM=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||Krt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Wrt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(()=>typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))()?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};bM.default=PM;xM.exports=PM;xM.exports.default=PM});var soe=_((cLt,FM)=>{"use strict";var{V4MAPPED:Vrt,ADDRCONFIG:Jrt,ALL:ioe,promises:{Resolver:$se},lookup:zrt}=ve("dns"),{promisify:kM}=ve("util"),Xrt=ve("os"),BE=Symbol("cacheableLookupCreateConnection"),QM=Symbol("cacheableLookupInstance"),eoe=Symbol("expires"),Zrt=typeof ioe=="number",toe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},$rt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},roe=()=>{let t=!1,e=!1;for(let r of Object.values(Xrt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},ent=t=>Symbol.iterator in t,noe={ttl:!0},tnt={all:!0},JP=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new $se,lookup:u=zrt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=kM(u),this._resolver instanceof $se?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=kM(this._resolver.resolve4.bind(this._resolver)),this._resolve6=kM(this._resolver.resolve6.bind(this._resolver))),this._iface=roe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Vrt&&(Zrt&&r.hints&ioe||a.length===0)?$rt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&Jrt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,noe),this._resolve6(e,noe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[eoe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}ent(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,tnt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[eoe];a>=A?this._cache.delete(n):A("lookup"in r||(r.lookup=this.lookup),e[BE](r,o))}uninstall(e){if(toe(e),e[BE]){if(e[QM]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[BE],delete e[BE],delete e[QM]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=roe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};FM.exports=JP;FM.exports.default=JP});var loe=_((uLt,RM)=>{"use strict";var rnt=typeof URL>"u"?ve("url").URL:URL,nnt="text/plain",int="us-ascii",ooe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),snt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[I,v=""]=E.split("=").map(x=>x.trim());return I==="charset"&&(v=v.toLowerCase(),v===int)?"":`${I}${v?`=${v}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==nnt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},aoe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return snt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new rnt(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];ooe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])ooe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};RM.exports=aoe;RM.exports.default=aoe});var Aoe=_((ALt,uoe)=>{uoe.exports=coe;function coe(t,e){if(t&&e)return coe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a{var foe=Aoe();TM.exports=foe(zP);TM.exports.strict=foe(poe);zP.proto=zP(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return zP(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return poe(this)},configurable:!0})});function zP(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function poe(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var LM=_((pLt,goe)=>{var ont=NM(),ant=function(){},lnt=function(t){return t.setHeader&&typeof t.abort=="function"},cnt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},hoe=function(t,e,r){if(typeof e=="function")return hoe(t,null,e);e||(e={}),r=ont(r||ant);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},I=function(C){r.call(t,C)},v=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},x=function(){t.req.on("finish",p)};return lnt(t)?(t.on("complete",p),t.on("abort",v),t.req?x():t.on("request",x)):u&&!o&&(t.on("end",A),t.on("close",A)),cnt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",I),t.on("close",v),function(){t.removeListener("complete",p),t.removeListener("abort",v),t.removeListener("request",x),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",I),t.removeListener("close",v)}};goe.exports=hoe});var yoe=_((hLt,moe)=>{var unt=NM(),Ant=LM(),OM=ve("fs"),p1=function(){},fnt=/^v?\.0/.test(process.version),XP=function(t){return typeof t=="function"},pnt=function(t){return!fnt||!OM?!1:(t instanceof(OM.ReadStream||p1)||t instanceof(OM.WriteStream||p1))&&XP(t.close)},hnt=function(t){return t.setHeader&&XP(t.abort)},gnt=function(t,e,r,o){o=unt(o);var a=!1;t.on("close",function(){a=!0}),Ant(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,pnt(t))return t.close(p1);if(hnt(t))return t.abort();if(XP(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},doe=function(t){t()},dnt=function(t,e){return t.pipe(e)},mnt=function(){var t=Array.prototype.slice.call(arguments),e=XP(t[t.length-1]||p1)&&t.pop()||p1;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n0;return gnt(a,u,A,function(p){r||(r=p),p&&o.forEach(doe),!u&&(o.forEach(doe),e(r))})});return t.reduce(dnt)};moe.exports=mnt});var Coe=_((gLt,Eoe)=>{"use strict";var{PassThrough:ynt}=ve("stream");Eoe.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new ynt({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var woe=_((dLt,vE)=>{"use strict";var Ent=yoe(),Cnt=Coe(),ZP=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function $P(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=Ent(t,Cnt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new ZP)})}),o.getBufferedValue()}vE.exports=$P;vE.exports.default=$P;vE.exports.buffer=(t,e)=>$P(t,{...e,encoding:"buffer"});vE.exports.array=(t,e)=>$P(t,{...e,array:!0});vE.exports.MaxBufferError=ZP});var Boe=_((yLt,Ioe)=>{"use strict";var wnt=new Set([200,203,204,206,300,301,404,405,410,414,501]),Int=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),Bnt=new Set([500,502,503,504]),vnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},Dnt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Sd(t){let e=parseInt(t,10);return isFinite(e)?e:0}function Snt(t){return t?Bnt.has(t.status):!0}function MM(t){let e={};if(!t)return e;let r=t.trim().split(/\s*,\s*/);for(let o of r){let[a,n]=o.split(/\s*=\s*/,2);e[a]=n===void 0?!0:n.replace(/^"|"$/g,"")}return e}function Pnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(!!e.length)return e.join(", ")}Ioe.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=MM(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=MM(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Pnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&Int.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||wnt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=MM(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)vnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return Sd(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Sd(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Sd(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||oo)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+Sd(this._rescc["stale-if-error"]),o=e+Sd(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Sd(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Sd(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Snt(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!Dnt[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var eb=_((ELt,voe)=>{"use strict";voe.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var Soe=_((CLt,Doe)=>{"use strict";var bnt=ve("stream").Readable,xnt=eb(),UM=class extends bnt{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=xnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};Doe.exports=UM});var boe=_((wLt,Poe)=>{"use strict";var knt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];Poe.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(knt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var koe=_((ILt,xoe)=>{"use strict";var Qnt=ve("stream").PassThrough,Fnt=boe(),Rnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new Qnt;return Fnt(t,e),t.pipe(e)};xoe.exports=Rnt});var Qoe=_(_M=>{_M.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};_M.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Toe=_((vLt,Roe)=>{"use strict";var Tnt=ve("events"),Foe=Qoe(),Nnt=t=>{let e={redis:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql"};if(t.adapter||t.uri){let r=t.adapter||/^[^:]*/.exec(t.uri)[0];return new(ve(e[r]))(t)}return new Map},HM=class extends Tnt{constructor(e,r){if(super(),this.opts=Object.assign({namespace:"keyv",serialize:Foe.stringify,deserialize:Foe.parse},typeof e=="string"?{uri:e}:e,r),!this.opts.store){let o=Object.assign({},this.opts);this.opts.store=Nnt(o)}typeof this.opts.store.on=="function"&&this.opts.store.on("error",o=>this.emit("error",o)),this.opts.store.namespace=this.opts.namespace}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}get(e,r){e=this._getKeyPrefix(e);let{store:o}=this.opts;return Promise.resolve().then(()=>o.get(e)).then(a=>typeof a=="string"?this.opts.deserialize(a):a).then(a=>{if(a!==void 0){if(typeof a.expires=="number"&&Date.now()>a.expires){this.delete(e);return}return r&&r.raw?a:a.value}})}set(e,r,o){e=this._getKeyPrefix(e),typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:a}=this.opts;return Promise.resolve().then(()=>{let n=typeof o=="number"?Date.now()+o:null;return r={value:r,expires:n},this.opts.serialize(r)}).then(n=>a.set(e,n,o)).then(()=>!0)}delete(e){e=this._getKeyPrefix(e);let{store:r}=this.opts;return Promise.resolve().then(()=>r.delete(e))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}};Roe.exports=HM});var Ooe=_((SLt,Loe)=>{"use strict";var Lnt=ve("events"),tb=ve("url"),Ont=loe(),Mnt=woe(),qM=Boe(),Noe=Soe(),Unt=eb(),_nt=koe(),Hnt=Toe(),qc=class{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Hnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=jM(tb.parse(r)),r={};else if(r instanceof tb.URL)a=jM(tb.parse(r.toString())),r={};else{let[I,...v]=(r.path||"").split("?"),x=v.length>0?`?${v.join("?")}`:"";a=jM({...r,pathname:I,search:x})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...qnt(a)},r.headers=Unt(r.headers);let n=new Lnt,u=Ont(tb.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=I=>{h=!0;let v=!1,x,C=new Promise(L=>{x=()=>{v||(v=!0,L())}}),R=L=>{if(p&&!I.forceRefresh){L.status=L.statusCode;let J=qM.fromObject(p.cachePolicy).revalidatedPolicy(I,L);if(!J.modified){let te=J.policy.responseHeaders();L=new Noe(p.statusCode,te,p.body,p.url),L.cachePolicy=J.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new qM(I,L,I),L.fromCache=!1);let U;I.cache&&L.cachePolicy.storable()?(U=_nt(L),(async()=>{try{let J=Mnt.buffer(L);if(await Promise.race([C,new Promise(ce=>L.once("end",ce))]),v)return;let te=await J,ae={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:te},fe=I.strictTtl?L.cachePolicy.timeToLive():void 0;I.maxTtl&&(fe=fe?Math.min(fe,I.maxTtl):I.maxTtl),await this.cache.set(A,ae,fe)}catch(J){n.emit("error",new qc.CacheError(J))}})()):I.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(J){n.emit("error",new qc.CacheError(J))}})(),n.emit("response",U||L),typeof o=="function"&&o(U||L)};try{let L=e(I,R);L.once("error",x),L.once("abort",x),n.emit("request",L)}catch(L){n.emit("error",new qc.RequestError(L))}};return(async()=>{let I=async x=>{await Promise.resolve();let C=x.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(x);let R=qM.fromObject(C.cachePolicy);if(R.satisfiesWithoutRevalidation(x)&&!x.forceRefresh){let L=R.responseHeaders(),U=new Noe(C.statusCode,L,C.body,C.url);U.cachePolicy=R,U.fromCache=!0,n.emit("response",U),typeof o=="function"&&o(U)}else p=C,x.headers=R.revalidationHeaders(x),E(x)},v=x=>n.emit("error",new qc.CacheError(x));this.cache.once("error",v),n.on("response",()=>this.cache.removeListener("error",v));try{await I(r)}catch(x){r.automaticFailover&&!h&&E(r),n.emit("error",new qc.CacheError(x))}})(),n}}};function qnt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function jM(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}qc.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};qc.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};Loe.exports=qc});var Uoe=_((xLt,Moe)=>{"use strict";var jnt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Moe.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(jnt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var Hoe=_((kLt,_oe)=>{"use strict";var{Transform:Gnt,PassThrough:Ynt}=ve("stream"),GM=ve("zlib"),Wnt=Uoe();_oe.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof GM.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Gnt({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new Ynt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?GM.createBrotliDecompress():GM.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Wnt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var WM=_((QLt,qoe)=>{"use strict";var YM=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};qoe.exports=YM});var VM=_((FLt,Woe)=>{"use strict";var Knt=ve("events"),Vnt=ve("tls"),Jnt=ve("http2"),znt=WM(),ea=Symbol("currentStreamsCount"),joe=Symbol("request"),Wl=Symbol("cachedOriginSet"),DE=Symbol("gracefullyClosing"),Xnt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Znt=(t,e,r)=>{let o=0,a=t.length;for(;o>>1;r(t[n],e)?o=n+1:a=n}return o},$nt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,KM=(t,e)=>{for(let r of t)r[Wl].lengthe[Wl].includes(o))&&r[ea]+e[ea]<=e.remoteSettings.maxConcurrentStreams&&Yoe(r)},eit=(t,e)=>{for(let r of t)e[Wl].lengthr[Wl].includes(o))&&e[ea]+r[ea]<=r.remoteSettings.maxConcurrentStreams&&Yoe(e)},Goe=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[tA.kCurrentStreamsCount]{t[DE]=!0,t[ea]===0&&t.close()},tA=class extends Knt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new znt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of Xnt)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=tA.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],I=-1,v=-1,x;for(let C of E){let R=C.remoteSettings.maxConcurrentStreams;if(R=R||C[DE]||C.destroyed)continue;x||(I=R),L>v&&(x=C,v=L)}}if(x){if(o.length!==1){for(let{reject:C}of o){let R=new Error(`Expected the length of listeners to be 1, got ${o.length}. Please report this to https://github.com/szmarczak/http2-wrapper/`);C(R)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,I=!1;try{let v=Jnt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});v[ea]=0,v[DE]=!1;let x=()=>v[ea]{this.tlsSessionCache.set(E,L)}),v.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),v.setTimeout(this.timeout,()=>{v.destroy()}),v.once("close",()=>{if(I){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(v),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let R=()=>{if(!(!(u in this.queue)||!x())){for(let L of v[Wl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(v);let J=this.queue[u];if(J[L].listeners.length===0&&(delete J[L],Object.keys(J).length===0)){delete this.queue[u];break}if(!x())break}}};v.on("origin",()=>{v[Wl]=v.originSet,x()&&(R(),KM(this.sessions[u],v))}),v.once("remoteSettings",()=>{if(v.ref(),v.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);v.destroy();return}v[Wl]=v.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(Znt(U,v,$nt),0,v)}else L[u]=[v]}this._freeSessionsCount+=1,I=!0,this.emit("session",v),R(),p(),v[ea]===0&&this._freeSessionsCount>this.maxFreeSessions&&v.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),v.on("remoteSettings",()=>{R(),KM(this.sessions[u],v)})}),v[joe]=v.request,v.request=(L,U)=>{if(v[DE])throw new Error("The session is gracefully closing. No new streams are allowed.");let J=v[joe](L,U);return v.ref(),++v[ea],v[ea]===v.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,J.once("close",()=>{if(C=x(),--v[ea],!v.destroyed&&!v.closed&&(eit(this.sessions[u],v),x()&&!v.closed)){C||(this._freeSessionsCount++,C=!0);let te=v[ea]===0;te&&v.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||v[DE])?v.close():(KM(this.sessions[u],v),R())}}),J}}catch(v){for(let x of o)x.reject(v);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return tA.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Vnt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ea]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return Goe({agent:this,isFree:!0})}get busySessions(){return Goe({agent:this,isFree:!1})}};tA.kCurrentStreamsCount=ea;tA.kGracefullyClosing=DE;Woe.exports={Agent:tA,globalAgent:new tA}});var zM=_((RLt,Koe)=>{"use strict";var{Readable:tit}=ve("stream"),JM=class extends tit{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Koe.exports=JM});var XM=_((TLt,Voe)=>{"use strict";Voe.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var zoe=_((NLt,Joe)=>{"use strict";Joe.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var Zoe=_((LLt,Xoe)=>{"use strict";Xoe.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var eae=_((MLt,$oe)=>{"use strict";var SE=(t,e,r)=>{$oe.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};SE(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});SE(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);SE(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);SE(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);SE(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);SE(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var r4=_((ULt,aae)=>{"use strict";var rit=ve("http2"),{Writable:nit}=ve("stream"),{Agent:tae,globalAgent:iit}=VM(),sit=zM(),oit=XM(),ait=zoe(),lit=Zoe(),{ERR_INVALID_ARG_TYPE:ZM,ERR_INVALID_PROTOCOL:cit,ERR_HTTP_HEADERS_SENT:rae,ERR_INVALID_HTTP_TOKEN:uit,ERR_HTTP_INVALID_HEADER_VALUE:Ait,ERR_INVALID_CHAR:fit}=eae(),{HTTP2_HEADER_STATUS:nae,HTTP2_HEADER_METHOD:iae,HTTP2_HEADER_PATH:sae,HTTP2_METHOD_CONNECT:pit}=rit.constants,Qo=Symbol("headers"),$M=Symbol("origin"),e4=Symbol("session"),oae=Symbol("options"),rb=Symbol("flushedHeaders"),h1=Symbol("jobs"),hit=/^[\^`\-\w!#$%&*+.|~]+$/,git=/[^\t\u0020-\u007E\u0080-\u00FF]/,t4=class extends nit{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=oit(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[e4]=r.h2session;else if(r.agent===!1)this.agent=new tae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new tae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=iit;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new ZM("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new cit(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[Qo]=Object.create(null),this[h1]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[Qo])&&(this[Qo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[oae]=r,n===443?(this[$M]=`https://${u}`,":authority"in this[Qo]||(this[Qo][":authority"]=u)):(this[$M]=`https://${u}:${n}`,":authority"in this[Qo]||(this[Qo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[rb]=!1}get method(){return this[Qo][iae]}set method(e){e&&(this[Qo][iae]=e.toUpperCase())}get path(){return this[Qo][sae]}set path(e){e&&(this[Qo][sae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[h1].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[h1].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[rb]||this.destroyed)return;this[rb]=!0;let e=this.method===pit,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||ait(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new sit(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[nae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[nae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[h1])u();this.emit("socket",this.socket)};if(this[e4])try{r(this[e4].request(this[Qo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[$M],this[oae],this[Qo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new ZM("name","string",e);return this[Qo][e.toLowerCase()]}get headersSent(){return this[rb]}removeHeader(e){if(typeof e!="string")throw new ZM("name","string",e);if(this.headersSent)throw new rae("remove");delete this[Qo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new rae("set");if(typeof e!="string"||!hit.test(e)&&!lit(e))throw new uit("Header name",e);if(typeof r>"u")throw new Ait(r,e);if(git.test(r))throw new fit("header content",e);this[Qo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[h1].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};aae.exports=t4});var cae=_((_Lt,lae)=>{"use strict";var dit=ve("tls");lae.exports=(t={})=>new Promise((e,r)=>{let o=dit.connect(t,()=>{t.resolveSocket?(o.off("error",r),e({alpnProtocol:o.alpnProtocol,socket:o})):(o.destroy(),e({alpnProtocol:o.alpnProtocol}))});o.on("error",r)})});var Aae=_((HLt,uae)=>{"use strict";var mit=ve("net");uae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),mit.isIP(e)?"":e}});var hae=_((qLt,i4)=>{"use strict";var fae=ve("http"),n4=ve("https"),yit=cae(),Eit=WM(),Cit=r4(),wit=Aae(),Iit=XM(),nb=new Eit({maxSize:100}),g1=new Map,pae=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},Bit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!nb.has(e)){if(g1.has(e))return(await g1.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=yit(t);g1.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(nb.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=n4,p=n4.Agent.prototype.createConnection;o?o.createConnection===p?pae(o,n,t):n.destroy():A.createConnection===p?pae(A,n,t):n.destroy()}return g1.delete(e),u}catch(n){throw g1.delete(e),n}}return nb.get(e)};i4.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=Iit(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||wit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?n4.globalAgent:fae.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await Bit(e)==="h2"?(a&&(e.agent=a.http2),new Cit(e,r)):fae.request(e,r)};i4.exports.protocolCache=nb});var dae=_((jLt,gae)=>{"use strict";var vit=ve("http2"),Dit=VM(),s4=r4(),Sit=zM(),Pit=hae(),bit=(t,e,r)=>new s4(t,e,r),xit=(t,e,r)=>{let o=new s4(t,e,r);return o.end(),o};gae.exports={...vit,ClientRequest:s4,IncomingMessage:Sit,...Dit,request:bit,get:xit,auto:Pit}});var a4=_(o4=>{"use strict";Object.defineProperty(o4,"__esModule",{value:!0});var mae=Tf();o4.default=t=>mae.default.nodeStream(t)&&mae.default.function_(t.getBoundary)});var wae=_(l4=>{"use strict";Object.defineProperty(l4,"__esModule",{value:!0});var Eae=ve("fs"),Cae=ve("util"),yae=Tf(),kit=a4(),Qit=Cae.promisify(Eae.stat);l4.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(yae.default.string(t))return Buffer.byteLength(t);if(yae.default.buffer(t))return t.length;if(kit.default(t))return Cae.promisify(t.getLength.bind(t))();if(t instanceof Eae.ReadStream){let{size:r}=await Qit(t.path);return r===0?void 0:r}}});var u4=_(c4=>{"use strict";Object.defineProperty(c4,"__esModule",{value:!0});function Fit(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}c4.default=Fit});var Iae=_(A4=>{"use strict";Object.defineProperty(A4,"__esModule",{value:!0});A4.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var vae=_(d1=>{"use strict";Object.defineProperty(d1,"__esModule",{value:!0});d1.TimeoutError=void 0;var Rit=ve("net"),Tit=Iae(),Bae=Symbol("reentry"),Nit=()=>{},ib=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};d1.TimeoutError=ib;d1.default=(t,e,r)=>{if(Bae in t)return Nit;t[Bae]=!0;let o=[],{once:a,unhandleAll:n}=Tit.default(),u=(I,v,x)=>{var C;let R=setTimeout(v,I,I,x);(C=R.unref)===null||C===void 0||C.call(R);let L=()=>{clearTimeout(R)};return o.push(L),L},{host:A,hostname:p}=r,h=(I,v)=>{t.destroy(new ib(I,v))},E=()=>{for(let I of o)I();n()};if(t.once("error",I=>{if(E(),t.listenerCount("error")===0)throw I}),t.once("close",E),a(t,"response",I=>{a(I,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let I=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,I),o.push(()=>{t.removeListener("timeout",I)})}return a(t,"socket",I=>{var v;let{socketPath:x}=t;if(I.connecting){let C=Boolean(x??Rit.isIP((v=p??A)!==null&&v!==void 0?v:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof I.address().address>"u"){let R=u(e.lookup,h,"lookup");a(I,"lookup",R)}if(typeof e.connect<"u"){let R=()=>u(e.connect,h,"connect");C?a(I,"connect",R()):a(I,"lookup",L=>{L===null&&a(I,"connect",R())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(I,"connect",()=>{let R=u(e.secureConnect,h,"secureConnect");a(I,"secureConnect",R)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");I.connecting?a(I,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let I=u(e.response,h,"response");a(t,"response",I)}),E}});var Sae=_(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});var Dae=Tf();f4.default=t=>{t=t;let e={protocol:t.protocol,hostname:Dae.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return Dae.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Pae=_(p4=>{"use strict";Object.defineProperty(p4,"__esModule",{value:!0});var Lit=ve("url"),Oit=["protocol","host","hostname","port","pathname","search"];p4.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new Lit.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of Oit)e[n]&&(a[n]=e[n].toString());return a}});var bae=_(g4=>{"use strict";Object.defineProperty(g4,"__esModule",{value:!0});var h4=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};g4.default=h4});var m4=_(d4=>{"use strict";Object.defineProperty(d4,"__esModule",{value:!0});var Mit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};d4.default=Mit});var kae=_(Pd=>{"use strict";Object.defineProperty(Pd,"__esModule",{value:!0});Pd.dnsLookupIpVersionToFamily=Pd.isDnsLookupIpVersion=void 0;var xae={auto:0,ipv4:4,ipv6:6};Pd.isDnsLookupIpVersion=t=>t in xae;Pd.dnsLookupIpVersionToFamily=t=>{if(Pd.isDnsLookupIpVersion(t))return xae[t];throw new Error("Invalid DNS lookup IP version")}});var y4=_(sb=>{"use strict";Object.defineProperty(sb,"__esModule",{value:!0});sb.isResponseOk=void 0;sb.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Fae=_(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});var Qae=new Set;E4.default=t=>{Qae.has(t)||(Qae.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var Rae=_(C4=>{"use strict";Object.defineProperty(C4,"__esModule",{value:!0});var Ai=Tf(),Uit=(t,e)=>{if(Ai.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");Ai.assert.any([Ai.default.string,Ai.default.undefined],t.encoding),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.resolveBodyOnly),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.methodRewriting),Ai.assert.any([Ai.default.boolean,Ai.default.undefined],t.isStream),Ai.assert.any([Ai.default.string,Ai.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},Ai.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):Ai.default.number(r)&&(t.retry.limit=r),Ai.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(Ai.default.number))),Ai.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!Ai.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!Ai.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!Ai.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!Ai.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};C4.default=Uit});var Tae=_(m1=>{"use strict";Object.defineProperty(m1,"__esModule",{value:!0});m1.retryAfterStatusCodes=void 0;m1.retryAfterStatusCodes=new Set([413,429,503]);var _it=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};m1.default=_it});var C1=_(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.UnsupportedProtocolError=Bn.ReadError=Bn.TimeoutError=Bn.UploadError=Bn.CacheError=Bn.HTTPError=Bn.MaxRedirectsError=Bn.RequestError=Bn.setNonEnumerableProperties=Bn.knownHookEvents=Bn.withoutBody=Bn.kIsNormalizedAlready=void 0;var Nae=ve("util"),Lae=ve("stream"),Hit=ve("fs"),ah=ve("url"),Oae=ve("http"),w4=ve("http"),qit=ve("https"),jit=Zse(),Git=soe(),Mae=Ooe(),Yit=Hoe(),Wit=dae(),Kit=eb(),st=Tf(),Vit=wae(),Uae=a4(),Jit=u4(),_ae=vae(),zit=Sae(),Hae=Pae(),Xit=bae(),Zit=m4(),qae=kae(),$it=y4(),lh=Fae(),est=Rae(),tst=Tae(),I4,Zs=Symbol("request"),lb=Symbol("response"),PE=Symbol("responseSize"),bE=Symbol("downloadedSize"),xE=Symbol("bodySize"),kE=Symbol("uploadedSize"),ob=Symbol("serverResponsesPiped"),jae=Symbol("unproxyEvents"),Gae=Symbol("isFromCache"),B4=Symbol("cancelTimeouts"),Yae=Symbol("startedReading"),QE=Symbol("stopReading"),ab=Symbol("triggerRead"),ch=Symbol("body"),y1=Symbol("jobs"),Wae=Symbol("originalResponse"),Kae=Symbol("retryTimeout");Bn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var rst=st.default.string(process.versions.brotli);Bn.withoutBody=new Set(["GET","HEAD"]);Bn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function nst(t){for(let e in t){let r=t[e];if(!st.default.string(r)&&!st.default.number(r)&&!st.default.boolean(r)&&!st.default.null_(r)&&!st.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function ist(t){return st.default.object(t)&&!("statusCode"in t)}var v4=new Xit.default,sst=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),ost=new Set([300,301,302,303,304,307,308]),ast=["context","body","json","form"];Bn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(!!o)for(let a of ast)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var Vi=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof db?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[lb]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,st.default.string(r.stack)&&st.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` `).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` `).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` `)}${A.reverse().join(` `)}`}}};Bn.RequestError=Vi;var ub=class extends Vi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Bn.MaxRedirectsError=ub;var Ab=class extends Vi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Bn.HTTPError=Ab;var fb=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Bn.CacheError=fb;var pb=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Bn.UploadError=pb;var hb=class extends Vi{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Bn.TimeoutError=hb;var E1=class extends Vi{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Bn.ReadError=E1;var gb=class extends Vi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Bn.UnsupportedProtocolError=gb;var lst=["socket","connect","continue","information","upgrade","timeout"],db=class extends Lae.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[bE]=0,this[kE]=0,this.requestInitialized=!1,this[ob]=new Set,this.redirects=[],this[QE]=!1,this[ab]=!1,this[y1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof w4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Bn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){st.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Hit.ReadStream&&await sst(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[Zs])===null||h===void 0||h.destroy();return}for(let I of this[y1])I();this[y1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof Vi){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(st.default.object(e)&&!st.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),st.default.urlInstance(r.url)&&(r.url=new ah.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),st.assert.any([st.default.string,st.default.undefined],r.method),st.assert.any([st.default.object,st.default.undefined],r.headers),st.assert.any([st.default.string,st.default.urlInstance,st.default.undefined],r.prefixUrl),st.assert.any([st.default.object,st.default.undefined],r.cookieJar),st.assert.any([st.default.object,st.default.string,st.default.undefined],r.searchParams),st.assert.any([st.default.object,st.default.string,st.default.undefined],r.cache),st.assert.any([st.default.object,st.default.number,st.default.undefined],r.timeout),st.assert.any([st.default.object,st.default.undefined],r.context),st.assert.any([st.default.object,st.default.undefined],r.hooks),st.assert.any([st.default.boolean,st.default.undefined],r.decompress),st.assert.any([st.default.boolean,st.default.undefined],r.ignoreInvalidCookies),st.assert.any([st.default.boolean,st.default.undefined],r.followRedirect),st.assert.any([st.default.number,st.default.undefined],r.maxRedirects),st.assert.any([st.default.boolean,st.default.undefined],r.throwHttpErrors),st.assert.any([st.default.boolean,st.default.undefined],r.http2),st.assert.any([st.default.boolean,st.default.undefined],r.allowGetBody),st.assert.any([st.default.string,st.default.undefined],r.localAddress),st.assert.any([qae.isDnsLookupIpVersion,st.default.undefined],r.dnsLookupIpVersion),st.assert.any([st.default.object,st.default.undefined],r.https),st.assert.any([st.default.boolean,st.default.undefined],r.rejectUnauthorized),r.https&&(st.assert.any([st.default.boolean,st.default.undefined],r.https.rejectUnauthorized),st.assert.any([st.default.function_,st.default.undefined],r.https.checkServerIdentity),st.assert.any([st.default.string,st.default.object,st.default.array,st.default.undefined],r.https.certificateAuthority),st.assert.any([st.default.string,st.default.object,st.default.array,st.default.undefined],r.https.key),st.assert.any([st.default.string,st.default.object,st.default.array,st.default.undefined],r.https.certificate),st.assert.any([st.default.string,st.default.undefined],r.https.passphrase),st.assert.any([st.default.string,st.default.buffer,st.default.array,st.default.undefined],r.https.pfx)),st.assert.any([st.default.object,st.default.undefined],r.cacheOptions),st.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===o?.headers?r.headers={...r.headers}:r.headers=Kit({...o?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==o?.searchParams){let x;if(st.default.string(r.searchParams)||r.searchParams instanceof ah.URLSearchParams)x=new ah.URLSearchParams(r.searchParams);else{nst(r.searchParams),x=new ah.URLSearchParams;for(let C in r.searchParams){let R=r.searchParams[C];R===null?x.append(C,""):R!==void 0&&x.append(C,R)}}(a=o?.searchParams)===null||a===void 0||a.forEach((C,R)=>{x.has(R)||x.append(R,C)}),r.searchParams=x}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",st.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o?.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),st.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=Hae.default(r.prefixUrl+r.url,r)}else(st.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=Hae.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:x}=r;Object.defineProperty(r,"prefixUrl",{set:R=>{let L=r.url;if(!L.href.startsWith(R))throw new Error(`Cannot change \`prefixUrl\` from ${x} to ${R}: ${L.href}`);r.url=new ah.URL(R+L.href.slice(x.length)),x=R},get:()=>x});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new ah.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new gb(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:x,getCookieString:C}=E;st.assert.function_(x),st.assert.function_(C),x.length===4&&C.length===0&&(x=Nae.promisify(x.bind(r.cookieJar)),C=Nae.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:x,getCookieString:C})}let{cache:I}=r;if(I&&(v4.has(I)||v4.set(I,new Mae((x,C)=>{let R=x[Zs](x,C);return st.default.promise(R)&&(R.once=(L,U)=>{if(L==="error")R.catch(U);else if(L==="abort")(async()=>{try{(await R).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return R}),R},I))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)I4||(I4=new Git.default),r.dnsCache=I4;else if(!st.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${st.default(r.dnsCache)}`);st.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let v=r.hooks===o?.hooks;r.hooks={...r.hooks};for(let x of Bn.knownHookEvents)if(x in r.hooks)if(st.default.array(r.hooks[x]))r.hooks[x]=[...r.hooks[x]];else throw new TypeError(`Parameter \`${x}\` must be an Array, got ${st.default(r.hooks[x])}`);else r.hooks[x]=[];if(o&&!v)for(let x of Bn.knownHookEvents)o.hooks[x].length>0&&(r.hooks[x]=[...o.hooks[x],...r.hooks[x]]);if("family"in r&&lh.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o?.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&lh.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&lh.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&lh.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&lh.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&lh.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&lh.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&lh.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let x in r.agent)if(x!=="http"&&x!=="https"&&x!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${x}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Bn.setNonEnumerableProperties([o,h],r),est.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!st.default.undefined(e.form),a=!st.default.undefined(e.json),n=!st.default.undefined(e.body),u=o||a||n,A=Bn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Lae.Readable)&&!st.default.string(e.body)&&!st.default.buffer(e.body)&&!Uae.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!st.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!st.default.string(r["content-type"]);n?(Uae.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[ch]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[ch]=new ah.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[ch]=e.stringifyJson(e.json));let h=await Vit.default(this[ch],e.headers);st.default.undefined(r["content-length"])&&st.default.undefined(r["transfer-encoding"])&&!A&&!st.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[xE]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Wae]=e,r.decompress&&(e=Yit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:Oae.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[Gae]=n.isFromCache,this[PE]=Number(e.headers["content-length"])||void 0,this[lb]=e,e.once("end",()=>{this[PE]=this[bE],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new E1(A,this))}),e.once("aborted",()=>{this._beforeError(new E1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(st.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&ost.has(a)){if(e.resume(),this[Zs]&&(this[B4](),delete this[Zs],this[jae]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[ch]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new ub(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new ah.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let I of r.hooks.beforeRedirect)await I(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!$it.isResponseOk(n)){this._beforeError(new Ab(n));return}e.on("readable",()=>{this[ab]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[ob])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;jit.default(e),this[B4]=_ae.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof _ae.TimeoutError?new hb(p,this.timings,this):new Vi(p.message,p,this),this._beforeError(p)}),this[jae]=Jit.default(e,this,lst),this[Zs]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[ch],A=this.redirects.length===0?this:e;st.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new pb(p,this))})):(this._unlockWrite(),st.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,zit.default(e)),delete r.url;let n,u=v4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let U in A)if(st.default.undefined(A[U]))delete A[U];else if(st.default.null_(A[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(u.decompress&&st.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=rst?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let U=await u.cookieJar.getCookieString(u.url.toString());st.default.nonEmptyString(U)&&(u.headers.cookie=U)}for(let U of u.hooks.beforeRequest){let J=await U(u);if(!st.default.undefined(J)){u.request=()=>J;break}}u.body&&this[ch]!==u.body&&(this[ch]=u.body);let{agent:p,request:h,timeout:E,url:I}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),I.hostname==="unix"){let U=/(?.+?):(?.+)/.exec(`${I.pathname}${I.search}`);if(U?.groups){let{socketPath:J,path:te}=U.groups;Object.assign(u,{socketPath:J,path:te,host:""})}}let v=I.protocol==="https:",x;u.http2?x=Wit.auto:x=v?qit.request:Oae.request;let C=(e=u.request)!==null&&e!==void 0?e:x,R=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[v?"https":"http"]),u[Zs]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=qae.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let U=await R(I,L);st.default.undefined(U)&&(U=x(I,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),ist(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof Mae.CacheError?new fb(U,this):new Vi(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new Vi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[QE])return;let{options:r}=this,o=this.retryCount+1;this[QE]=!0,e instanceof Vi||(e=new Vi(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Zit.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:tst.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new Vi(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new Vi(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Kae]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[ab]=!0;let e=this[lb];if(e&&!this[QE]){e.readableLength&&(this[ab]=!1);let r;for(;(r=e.read())!==null;){this[bE]+=r.length,this[Yae]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[y1].push(a)}_writeRequest(e,r,o){this[Zs].destroyed||(this._progressCallbacks.push(()=>{this[kE]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[Zs].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Zs in this)){e();return}if(this[Zs].destroyed){e();return}this[Zs].end(o=>{o||(this[xE]=this[kE],this.emit("uploadProgress",this.uploadProgress),this[Zs].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[y1].push(r)}_destroy(e,r){var o;this[QE]=!0,clearTimeout(this[Kae]),Zs in this&&(this[B4](),!((o=this[lb])===null||o===void 0)&&o.complete||this[Zs].destroy()),e!==null&&!st.default.undefined(e)&&!(e instanceof Vi)&&(e=new Vi(e.message,e,this)),r(e)}get _isAboutToError(){return this[QE]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[Zs])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Wae])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[Zs])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[PE]?e=this[bE]/this[PE]:this[PE]===this[bE]?e=1:e=0,{percent:e,transferred:this[bE],total:this[PE]}}get uploadProgress(){let e;return this[xE]?e=this[kE]/this[xE]:this[xE]===this[kE]?e=1:e=0,{percent:e,transferred:this[kE],total:this[xE]}}get timings(){var e;return(e=this[Zs])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[Gae]}pipe(e,r){if(this[Yae])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof w4.ServerResponse&&this[ob].add(e),super.pipe(e,r)}unpipe(e){return e instanceof w4.ServerResponse&&this[ob].delete(e),super.unpipe(e),this}};Bn.default=db});var w1=_(jc=>{"use strict";var cst=jc&&jc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ust=jc&&jc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&cst(e,t,r)};Object.defineProperty(jc,"__esModule",{value:!0});jc.CancelError=jc.ParseError=void 0;var Vae=C1(),D4=class extends Vae.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};jc.ParseError=D4;var S4=class extends Vae.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};jc.CancelError=S4;ust(C1(),jc)});var zae=_(P4=>{"use strict";Object.defineProperty(P4,"__esModule",{value:!0});var Jae=w1(),Ast=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new Jae.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new Jae.ParseError(n,t)}};P4.default=Ast});var b4=_(uh=>{"use strict";var fst=uh&&uh.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),pst=uh&&uh.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&fst(e,t,r)};Object.defineProperty(uh,"__esModule",{value:!0});var hst=ve("events"),gst=Tf(),dst=zse(),mb=w1(),Xae=zae(),Zae=C1(),mst=u4(),yst=m4(),$ae=y4(),Est=["request","response","redirect","uploadProgress","downloadProgress"];function ele(t){let e,r,o=new hst.EventEmitter,a=new dst((u,A,p)=>{let h=E=>{let I=new Zae.default(void 0,t);I.retryCount=E,I._noPipe=!0,p(()=>I.destroy()),p.shouldReject=!1,p(()=>A(new mb.CancelError(I))),e=I,I.once("response",async C=>{var R;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await yst.default(I),C.rawBody=L}catch{return}if(I._isAboutToError)return;let U=((R=C.headers["content-encoding"])!==null&&R!==void 0?R:"").toLowerCase(),J=["gzip","deflate","br"].includes(U),{options:te}=I;if(J&&!te.decompress)C.body=L;else try{C.body=Xae.default(C,te.responseType,te.parseJson,te.encoding)}catch(ae){if(C.body=L.toString(),$ae.isResponseOk(C)){I._beforeError(ae);return}}try{for(let[ae,fe]of te.hooks.afterResponse.entries())C=await fe(C,async ce=>{let me=Zae.default.normalizeArguments(void 0,{...ce,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);me.hooks.afterResponse=me.hooks.afterResponse.slice(0,ae);for(let Be of me.hooks.beforeRetry)await Be(me);let he=ele(me);return p(()=>{he.catch(()=>{}),he.cancel()}),he})}catch(ae){I._beforeError(new mb.RequestError(ae.message,ae,I));return}if(!$ae.isResponseOk(C)){I._beforeError(new mb.HTTPError(C));return}r=C,u(I.options.resolveBodyOnly?C.body:C)});let v=C=>{if(a.isCanceled)return;let{options:R}=I;if(C instanceof mb.HTTPError&&!R.throwHttpErrors){let{response:L}=C;u(I.options.resolveBodyOnly?L.body:L);return}A(C)};I.once("error",v);let x=I.options.body;I.once("retry",(C,R)=>{var L,U;if(x===((L=R.request)===null||L===void 0?void 0:L.options.body)&&gst.default.nodeStream((U=R.request)===null||U===void 0?void 0:U.options.body)){v(R);return}h(C)}),mst.default(I,o,Est)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return Xae.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}uh.default=ele;pst(w1(),uh)});var tle=_(x4=>{"use strict";Object.defineProperty(x4,"__esModule",{value:!0});var Cst=w1();function wst(t,...e){let r=(async()=>{if(t instanceof Cst.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}x4.default=wst});var ile=_(k4=>{"use strict";Object.defineProperty(k4,"__esModule",{value:!0});var rle=Tf();function nle(t){for(let e of Object.values(t))(rle.default.plainObject(e)||rle.default.array(e))&&nle(e);return Object.freeze(t)}k4.default=nle});var ole=_(sle=>{"use strict";Object.defineProperty(sle,"__esModule",{value:!0})});var Q4=_(Vl=>{"use strict";var Ist=Vl&&Vl.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Bst=Vl&&Vl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Ist(e,t,r)};Object.defineProperty(Vl,"__esModule",{value:!0});Vl.defaultHandler=void 0;var ale=Tf(),Kl=b4(),vst=tle(),Eb=C1(),Dst=ile(),Sst={RequestError:Kl.RequestError,CacheError:Kl.CacheError,ReadError:Kl.ReadError,HTTPError:Kl.HTTPError,MaxRedirectsError:Kl.MaxRedirectsError,TimeoutError:Kl.TimeoutError,ParseError:Kl.ParseError,CancelError:Kl.CancelError,UnsupportedProtocolError:Kl.UnsupportedProtocolError,UploadError:Kl.UploadError},Pst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:yb}=Eb.default,lle=(...t)=>{let e;for(let r of t)e=yb(void 0,r,e);return e},bst=t=>t.isStream?new Eb.default(void 0,t):Kl.default(t),xst=t=>"defaults"in t&&"options"in t.defaults,kst=["get","post","put","patch","head","delete"];Vl.defaultHandler=(t,e)=>e(t);var cle=(t,e)=>{if(t)for(let r of t)r(e)},ule=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:I}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=I}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?bst:h);if(ale.default.plainObject(o)){let E={...o,...a};Eb.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{cle(t.options.hooks.init,a),cle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(v){E=v}let I=yb(o,a,n??t.options);if(I[Eb.kIsNormalizedAlready]=!0,E)throw new Kl.RequestError(E.message,E,I);return h(I)}catch(E){if(a.isStream)throw E;return vst.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)xst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==Vl.defaultHandler),n.length===0&&n.push(Vl.defaultHandler),ule({options:lle(...a),handlers:n,mutableDefaults:Boolean(u)})};let r=async function*(o,a){let n=yb(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!ale.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of kst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,Sst),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:Dst.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=lle,e};Vl.default=ule;Bst(ole(),Vl)});var ple=_((Nf,Cb)=>{"use strict";var Qst=Nf&&Nf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),Ale=Nf&&Nf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&Qst(e,t,r)};Object.defineProperty(Nf,"__esModule",{value:!0});var Fst=ve("url"),fle=Q4(),Rst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Fst.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[fle.defaultHandler],mutableDefaults:!1},F4=fle.default(Rst);Nf.default=F4;Cb.exports=F4;Cb.exports.default=F4;Cb.exports.__esModule=!0;Ale(Q4(),Nf);Ale(b4(),Nf)});var nn={};Vt(nn,{Method:()=>Cle,del:()=>Mst,get:()=>L4,getNetworkSettings:()=>Ele,post:()=>O4,put:()=>Ost,request:()=>I1});function dle(t){let e=new URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function R4(t){return ol(gle,t,()=>oe.readFilePromise(t).then(e=>(gle.set(t,e),e)))}function Lst({statusCode:t,statusMessage:e},r){let o=Mt(r,t,yt.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return Zy(r,`${o}${e?` (${e})`:""}`,a)}async function wb(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(o){if(o.name!=="HTTPError")throw o;let a=r?.(o,e)??o.response.body?.error;a==null&&(o.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=o.message),o.code==="ETIMEDOUT"&&o.event==="socket"&&(a+=`(can be increased via ${Mt(e,"httpTimeout",yt.SETTING)})`);let n=new zt(35,a,u=>{o.response&&u.reportError(35,` ${zu(e,{label:"Response Code",value:_c(yt.NO_HINT,Lst(o.response,e))})}`),o.request&&(u.reportError(35,` ${zu(e,{label:"Request Method",value:_c(yt.NO_HINT,o.request.options.method)})}`),u.reportError(35,` ${zu(e,{label:"Request URL",value:_c(yt.URL,o.request.requestUrl)})}`)),o.request.redirects.length>0&&u.reportError(35,` ${zu(e,{label:"Request Redirects",value:_c(yt.NO_HINT,PL(e,o.request.redirects,yt.URL))})}`),o.request.retryCount===o.request.options.retry.limit&&u.reportError(35,` ${zu(e,{label:"Request Retry Count",value:_c(yt.NO_HINT,`${Mt(e,o.request.retryCount,yt.NUMBER)} (can be increased via ${Mt(e,"httpRetry",yt.SETTING)})`)})}`)});throw n.originalError=o,n}}function Ele(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new URL(t):t;for(let[u,A]of r)if(N4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function I1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET",wrapNetworkRequest:A}){let p={target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u},h=async()=>await Ust(t,e,p),E=typeof A<"u"?await A(h,p):h;return await(await r.reduceHook(v=>v.wrapNetworkRequest,E,p))()}async function L4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,wrapNetworkRequest:a,...n}){let u=()=>wb(I1(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:o}).then(p=>p.body),A=await(typeof a<"u"?u():ol(hle,t,()=>u().then(p=>(hle.set(t,p),p))));return r?JSON.parse(A.toString()):A}async function Ost(t,e,{customErrorMessage:r,...o}){return(await wb(I1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function O4(t,e,{customErrorMessage:r,...o}){return(await wb(I1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function Mst(t,{customErrorMessage:e,...r}){return(await wb(I1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Ust(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new URL(t):t,p=Ele(A,{configuration:r});if(p.enableNetwork===!1)throw new zt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!N4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new zt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?T4.default.httpOverHttp(dle(p.httpProxy)):Tst,https:p.httpsProxy?T4.default.httpsOverHttp(dle(p.httpsProxy)):Nst},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let I=r.get("httpTimeout"),v=r.get("httpRetry"),x=r.get("enableStrictSsl"),C=p.httpsCaFilePath,R=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:U}=await Promise.resolve().then(()=>$e(ple())),J=C?await R4(C):void 0,te=R?await R4(R):void 0,ae=L?await R4(L):void 0,fe=U.extend({timeout:{socket:I},retry:v,https:{rejectUnauthorized:x,certificateAuthority:J,certificate:te,key:ae},...E});return r.getLimit("networkConcurrency")(()=>fe(A))}var mle,yle,N4,T4,hle,gle,Tst,Nst,Cle,Ib=Et(()=>{St();mle=ve("https"),yle=ve("http"),N4=$e(Zo()),T4=$e(Yse());Yl();jl();ql();hle=new Map,gle=new Map,Tst=new yle.Agent({keepAlive:!0}),Nst=new mle.Agent({keepAlive:!0});Cle=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(Cle||{})});var Ji={};Vt(Ji,{availableParallelism:()=>U4,getArchitecture:()=>B1,getArchitectureName:()=>Gst,getArchitectureSet:()=>M4,getCaller:()=>Vst,major:()=>_st,openUrl:()=>Hst});function jst(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=oe.readFileSync(qst)}catch{}if(typeof t<"u"){if(t&&t.includes("GLIBC"))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],o=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return KI(r,a=>{let n=a.match(o);if(!n)return KI.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function B1(){return Ile=Ile??{os:process.platform,cpu:process.arch,libc:jst()}}function Gst(t=B1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function M4(){let t=B1();return Ble=Ble??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function Kst(t){let e=Yst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Wst.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Vst(){let e=new Error().stack.split(` `)[3];return Kst(e)}function U4(){return typeof Bb.default.availableParallelism<"u"?Bb.default.availableParallelism():Math.max(1,Bb.default.cpus().length)}var Bb,_st,wle,Hst,qst,Ile,Ble,Yst,Wst,vb=Et(()=>{St();Bb=$e(ve("os"));Db();ql();_st=Number(process.versions.node.split(".")[0]),wle=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Hst=typeof wle<"u"?async t=>{try{return await _4(wle,[t],{cwd:V.cwd()}),!0}catch{return!1}}:void 0,qst="/usr/bin/ldd";Yst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Wst=/\((\S*)(?::(\d+))(?::(\d+))\)/});function Y4(t,e,r,o,a){let n=A1(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>H4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>H4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return H4(t,e,r,o,a)}function H4(t,e,r,o,a){let n=A1(r);switch(o.type){case"ANY":return GP(n);case"SHAPE":return Zst(t,e,r,o,a);case"MAP":return $st(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return VI(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=sP(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=mM(r);return E&&E[0]!=="<"&&(h=V.dirname(E)),V.resolve(h,ue.toPortablePath(p))}case"LOCATOR_LOOSE":return xf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return xf(p);case"BOOLEAN":return VI(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function Zst(t,e,r,o,a){let n=A1(r);if(typeof n!="object"||Array.isArray(n))throw new it(`Object configuration settings "${e}" must be an object`);let u=W4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new it(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,Y4(t,h,p,o.properties[A],a))}return u}function $st(t,e,r,o,a){let n=A1(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new it(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,I=o.valueDefinition;u.set(h,Y4(t,E,p,I,a))}return u}function W4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,W4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>V.normalize(o)):V.isAbsolute(e.default)?V.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>V.resolve(t.projectCwd,o)):V.resolve(t.projectCwd,e.default);default:return e.default}}function Pb(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return Xst;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return ue.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(Pb(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=Pb(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=Pb(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function eot(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(bb)&&(e=(0,Dle.default)(e.slice(bb.length)),t[e]=r);return t}function j4(){let t=`${bb}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return G4}async function vle(t){try{return await oe.readFilePromise(t)}catch{return Buffer.of()}}async function tot(t,e){return Buffer.compare(...await Promise.all([vle(t),vle(e)]))===0}async function rot(t,e){let[r,o]=await Promise.all([oe.statPromise(t),oe.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function iot({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await not(r,e)?null:r}var Dle,Lf,Sle,Ple,ble,q4,Jst,v1,zst,FE,bb,G4,Xst,D1,xle,xb,Sb,not,rA,Ke,S1=Et(()=>{St();Nl();Dle=$e(sV()),Lf=$e(td());qt();Sle=$e(ZV()),Ple=ve("module"),ble=$e(id()),q4=ve("stream");ose();fE();cM();uM();AM();Tse();fM();vd();Use();WP();jl();nh();Ib();ql();vb();Qf();bo();Jst=function(){if(!Lf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=ue.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=oe.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),v1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),zst=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),FE=/^(?!v)[a-z0-9._-]+$/i,bb="yarn_",G4=".yarnrc.yml",Xst="********",D1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(D1||{}),xle=yt,xb=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(xb||{}),Sb={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:EM()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:j4()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:lP,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:SL,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Lf.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Lf.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Lf.isCI,defaultText:""},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:U4()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(uP),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Lf.isPR&&Jst,defaultText:""},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};not=process.platform==="win32"?tot:rot;rA=class{constructor(e){this.isCI=Lf.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static create(e,r,o){let a=new rA(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(Sb);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{strict:o=!0,usePathCheck:a=null,useRc:n=!0}={}){let u=eot();delete u.rcFilename;let A=new rA(e),p=await rA.findRcFiles(e),h=await rA.findFolderRcFile(EE());h&&(p.find(me=>me.path===h.path)||p.unshift(h));let E=Mse(p.map(ce=>[ce.path,ce.data])),I=Bt.dot,v=new Set(Object.keys(Sb)),x=({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:he})=>({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:he}),C=({yarnPath:ce,ignorePath:me,injectEnvironmentFiles:he,...Be})=>{let we={};for(let[g,Ee]of Object.entries(Be))v.has(g)&&(we[g]=Ee);return we},R=({yarnPath:ce,ignorePath:me,...he})=>{let Be={};for(let[we,g]of Object.entries(he))v.has(we)||(Be[we]=g);return Be};if(A.importSettings(x(Sb)),A.useWithSource("",x(u),e,{strict:!1}),E){let[ce,me]=E;A.useWithSource(ce,x(me),I,{strict:!1})}if(a){if(await iot({configuration:A,selfPath:a})!==null)return A;A.useWithSource("",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let L=await rA.findProjectCwd(e);A.startingCwd=e,A.projectCwd=L;let U=Object.assign(Object.create(null),process.env);A.env=U;let J=await Promise.all(A.get("injectEnvironmentFiles").map(async ce=>{let me=ce.endsWith("?")?await oe.readFilePromise(ce.slice(0,-1),"utf8").catch(()=>""):await oe.readFilePromise(ce,"utf8");return(0,Sle.parse)(me)}));for(let ce of J)for(let[me,he]of Object.entries(ce))A.env[me]=sP(he,{env:U});if(A.importSettings(C(Sb)),A.useWithSource("",C(u),e,{strict:o}),E){let[ce,me]=E;A.useWithSource(ce,C(me),I,{strict:o})}let te=ce=>"default"in ce?ce.default:ce,ae=new Map([["@@core",sse]]);if(r!==null)for(let ce of r.plugins.keys())ae.set(ce,te(r.modules.get(ce)));for(let[ce,me]of ae)A.activatePlugin(ce,me);let fe=new Map([]);if(r!==null){let ce=new Map;for(let Be of Ple.builtinModules)ce.set(Be,()=>Df(Be));for(let[Be,we]of r.modules)ce.set(Be,()=>we);let me=new Set,he=async(Be,we)=>{let{factory:g,name:Ee}=Df(Be);if(!g||me.has(Ee))return;let Se=new Map(ce),le=ee=>{if(Se.has(ee))return Se.get(ee)();throw new it(`This plugin cannot access the package referenced via ${ee} which is neither a builtin, nor an exposed entry`)},ne=await Ky(async()=>te(await g(le)),ee=>`${ee} (when initializing ${Ee}, defined in ${we})`);ce.set(Ee,()=>ne),me.add(Ee),fe.set(Ee,ne)};if(u.plugins)for(let Be of u.plugins.split(";")){let we=V.resolve(e,ue.toPortablePath(Be));await he(we,"")}for(let{path:Be,cwd:we,data:g}of p)if(!!n&&!!Array.isArray(g.plugins))for(let Ee of g.plugins){let Se=typeof Ee!="string"?Ee.path:Ee,le=Ee?.spec??"",ne=Ee?.checksum??"";if(v1.has(le))continue;let ee=V.resolve(we,ue.toPortablePath(Se));if(!await oe.existsPromise(ee)){if(!le){let At=Mt(A,V.basename(ee,".cjs"),yt.NAME),H=Mt(A,".gitignore",yt.NAME),at=Mt(A,A.values.get("rcFilename"),yt.NAME),Re=Mt(A,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",yt.URL);throw new it(`Missing source for the ${At} plugin - please try to remove the plugin from ${at} then reinstall it manually. This error usually occurs because ${H} is incorrect, check ${Re} to make sure your plugin folder isn't gitignored.`)}if(!le.match(/^https?:/)){let At=Mt(A,V.basename(ee,".cjs"),yt.NAME),H=Mt(A,A.values.get("rcFilename"),yt.NAME);throw new it(`Failed to recognize the source for the ${At} plugin - please try to delete the plugin from ${H} then reinstall it manually.`)}let Ie=await L4(le,{configuration:A}),Fe=zs(Ie);if(ne&&ne!==Fe){let At=Mt(A,V.basename(ee,".cjs"),yt.NAME),H=Mt(A,A.values.get("rcFilename"),yt.NAME),at=Mt(A,`yarn plugin import ${le}`,yt.CODE);throw new it(`Failed to fetch the ${At} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${H} then run ${at} to reimport it.`)}await oe.mkdirPromise(V.dirname(ee),{recursive:!0}),await oe.writeFilePromise(ee,Ie)}await he(ee,Be)}}for(let[ce,me]of fe)A.activatePlugin(ce,me);if(A.useWithSource("",R(u),e,{strict:o}),E){let[ce,me]=E;A.useWithSource(ce,R(me),I,{strict:o})}return A.get("enableGlobalCache")&&(A.values.set("cacheFolder",`${A.get("globalFolder")}/cache`),A.sources.set("cacheFolder","")),A}static async findRcFiles(e){let r=j4(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=V.join(n,r);if(oe.existsSync(u)){let A=await oe.readFilePromise(u,"utf8"),p;try{p=Ki(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new it(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=V.dirname(n)}return o}static async findFolderRcFile(e){let r=V.join(e,dr.rc),o;try{o=await oe.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=Ki(o);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,o=e,a=null;for(;o!==a;){if(a=o,oe.existsSync(V.join(a,dr.lockfile)))return a;oe.existsSync(V.join(a,dr.manifest))&&(r=a),o=V.dirname(a)}return r}static async updateConfiguration(e,r,o={}){let a=j4(),n=V.join(e,a),u=oe.existsSync(n)?Ki(await oe.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let E=u[h],I=r[h],v;if(typeof I=="function")try{v=I(E)}catch{v=I(void 0)}else v=I;E!==v&&(v===rA.deleteProperty?delete p[h]:p[h]=v,A=!0)}if(!A)return!1}return await oe.changeFilePromise(n,Ba(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await rA.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=EE();return await rA.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,W4(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Mt(this,e,yt.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=mM(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e===""&&zst.has(u))continue;if(u==="rcFilename")throw new it(`The rcFilename settings can only be set via ${`${bb}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let I=EE(),v=e[0]!=="<"?V.dirname(e):null;if(a&&!(v!==null?I===v:!1))throw new it(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=Y4(this,u,A,h,o)}catch(I){throw I.message+=` in ${Mt(this,e,yt.PATH)}`,I}if(u==="enableStrictSettings"&&e!==""){a=E;continue}if(h.type==="MAP"){let I=this.values.get(u);this.values.set(u,new Map(n?[...I,...E]:[...E,...I])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let I=this.values.get(u);this.values.set(u,n?[...I,...E]:[...E,...I]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new it(`Couldn't find a configuration settings named "${e}"`);return Pb(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=oe.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Mt(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Mt(this,"STDERR","red")}`);n=new q4.PassThrough,n.pipe(p),n.pipe(A),u=new q4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} `);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new Dd([new c1,new Xn,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new hE([new gE,new mE,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=B1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=sl(n,u=>u==="current"?e.libc??sl.skip:u)),{os:o,cpu:a,libc:n}}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!xa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new Ot;u.load(a,{yamlCompatibilityMode:!0});let A=Yy(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,I]of u.peerDependenciesMeta)for(let[v,x]of Object.entries(I))p.push({...h,type:"PeerDependencyMeta",selector:E,key:v,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(ih(o,!0),iP(a),{userProvided:!0});return e}normalizeLocator(e){return xa(e.reference)?Qs(e,`${this.get("defaultProtocol")}${e.reference}`):FE.test(e.reference)?Qs(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return xa(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):FE.test(e.range)?In(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=e1(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(!!kf(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",ol(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:yL(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=Js(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,In(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=eA("types",A),h=fn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,In(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(ks(o.dependencies,([,u])=>Pa(u))),o.peerDependencies=new Map(ks(o.peerDependencies,([,u])=>Pa(u))),o}getLimit(e){return ol(this.limits,e,()=>(0,ble.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);!n||await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);!A||(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}},Ke=rA;Ke.deleteProperty=Symbol(),Ke.telemetry=null});var Ur={};Vt(Ur,{EndStrategy:()=>z4,ExecError:()=>kb,PipeError:()=>P1,execvp:()=>_4,pipevp:()=>Gc});function bd(t){return t!==null&&typeof t.fd=="number"}function K4(){}function V4(){for(let t of xd)t.kill()}async function Gc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":bd(n)&&(h[0]=n),bd(u)&&(h[1]=u),bd(A)&&(h[2]=A);let E=(0,J4.default)(t,e,{cwd:ue.fromPortablePath(r),env:{...o,PWD:ue.fromPortablePath(r)},stdio:h});xd.add(E),xd.size===1&&(process.on("SIGINT",K4),process.on("SIGTERM",V4)),!bd(n)&&n!==null&&n.pipe(E.stdin),bd(u)||E.stdout.pipe(u,{end:!1}),bd(A)||E.stderr.pipe(A,{end:!1});let I=()=>{for(let v of new Set([u,A]))bd(v)||v.end()};return new Promise((v,x)=>{E.on("error",C=>{xd.delete(E),xd.size===0&&(process.off("SIGINT",K4),process.off("SIGTERM",V4)),(p===2||p===1)&&I(),x(C)}),E.on("close",(C,R)=>{xd.delete(E),xd.size===0&&(process.off("SIGINT",K4),process.off("SIGTERM",V4)),(p===2||p===1&&C!==0)&&I(),C===0||!a?v({code:X4(C,R)}):x(new P1({fileName:t,code:C,signal:R}))})})}async function _4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=ue.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,J4.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",I=>{A.push(I)}),E.stderr.on("data",I=>{p.push(I)}),await new Promise((I,v)=>{E.on("error",x=>{let C=Ke.create(r),R=Mt(C,t,yt.PATH);v(new zt(1,`Process ${R} failed to spawn`,L=>{L.reportError(1,` ${zu(C,{label:"Thrown Error",value:_c(yt.NO_HINT,x.message)})}`)}))}),E.on("close",(x,C)=>{let R=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);x===0||!n?I({code:X4(x,C),stdout:R,stderr:L}):v(new kb({fileName:t,code:x,signal:C,stdout:R,stderr:L}))})})}function X4(t,e){let r=sot.get(e);return typeof r<"u"?128+r:t??1}function oot(t,e,{configuration:r,report:o}){o.reportError(1,` ${zu(r,t!==null?{label:"Exit Code",value:_c(yt.NUMBER,t)}:{label:"Exit Signal",value:_c(yt.CODE,e)})}`)}var J4,z4,P1,kb,xd,sot,Db=Et(()=>{St();J4=$e(sT());S1();Yl();jl();z4=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(z4||{}),P1=class extends zt{constructor({fileName:r,code:o,signal:a}){let n=Ke.create(V.cwd()),u=Mt(n,r,yt.PATH);super(1,`Child ${u} reported an error`,A=>{oot(o,a,{configuration:n,report:A})});this.code=X4(o,a)}},kb=class extends P1{constructor({fileName:r,code:o,signal:a,stdout:n,stderr:u}){super({fileName:r,code:o,signal:a});this.stdout=n,this.stderr=u}};xd=new Set;sot=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Qle(t){kle=t}function b1(){return typeof Z4>"u"&&(Z4=kle()),Z4}var Z4,kle,$4=Et(()=>{kle=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var Fle=_((Qb,tU)=>{var aot=Object.assign({},ve("fs")),eU=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(We,tt){o=We,a=tt});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(We,tt){throw tt},E=!1,I=!0,v="";function x(We){return r.locateFile?r.locateFile(We,v):v+We}var C,R,L,U;I&&(E?v=ve("path").dirname(v)+"/":v=__dirname+"/",C=function(tt,It){var nr=ii(tt);return nr?It?nr:nr.toString():(L||(L=aot),U||(U=ve("path")),tt=U.normalize(tt),L.readFileSync(tt,It?null:"utf8"))},R=function(tt){var It=C(tt,!0);return It.buffer||(It=new Uint8Array(It)),Ee(It.buffer),It},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(We){process.exit(We)},r.inspect=function(){return"[Emscripten Module object]"});var J=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var ae=0,fe=function(We){ae=We},ce;r.wasmBinary&&(ce=r.wasmBinary);var me=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Ti("no native wasm support detected");function he(We,tt,It){switch(tt=tt||"i8",tt.charAt(tt.length-1)==="*"&&(tt="i32"),tt){case"i1":return He[We>>0];case"i8":return He[We>>0];case"i16":return cp((We>>1)*2);case"i32":return Os((We>>2)*4);case"i64":return Os((We>>2)*4);case"float":return cu((We>>2)*4);case"double":return lp((We>>3)*8);default:Ti("invalid type for getValue: "+tt)}return null}var Be,we=!1,g;function Ee(We,tt){We||Ti("Assertion failed: "+tt)}function Se(We){var tt=r["_"+We];return Ee(tt,"Cannot call unknown function "+We+", make sure it is exported"),tt}function le(We,tt,It,nr,$){var ye={string:function(es){var bi=0;if(es!=null&&es!==0){var qo=(es.length<<2)+1;bi=Un(qo),At(es,bi,qo)}return bi},array:function(es){var bi=Un(es.length);return Re(es,bi),bi}};function Le(es){return tt==="string"?Ie(es):tt==="boolean"?Boolean(es):es}var pt=Se(We),ht=[],Tt=0;if(nr)for(var er=0;er=It)&&Te[nr];)++nr;return ee.decode(Te.subarray(We,nr))}function Fe(We,tt,It,nr){if(!(nr>0))return 0;for(var $=It,ye=It+nr-1,Le=0;Le=55296&&pt<=57343){var ht=We.charCodeAt(++Le);pt=65536+((pt&1023)<<10)|ht&1023}if(pt<=127){if(It>=ye)break;tt[It++]=pt}else if(pt<=2047){if(It+1>=ye)break;tt[It++]=192|pt>>6,tt[It++]=128|pt&63}else if(pt<=65535){if(It+2>=ye)break;tt[It++]=224|pt>>12,tt[It++]=128|pt>>6&63,tt[It++]=128|pt&63}else{if(It+3>=ye)break;tt[It++]=240|pt>>18,tt[It++]=128|pt>>12&63,tt[It++]=128|pt>>6&63,tt[It++]=128|pt&63}}return tt[It]=0,It-$}function At(We,tt,It){return Fe(We,Te,tt,It)}function H(We){for(var tt=0,It=0;It=55296&&nr<=57343&&(nr=65536+((nr&1023)<<10)|We.charCodeAt(++It)&1023),nr<=127?++tt:nr<=2047?tt+=2:nr<=65535?tt+=3:tt+=4}return tt}function at(We){var tt=H(We)+1,It=Li(tt);return It&&Fe(We,He,It,tt),It}function Re(We,tt){He.set(We,tt)}function ke(We,tt){return We%tt>0&&(We+=tt-We%tt),We}var xe,He,Te,Je,qe,b,w,P,y,F;function z(We){xe=We,r.HEAP_DATA_VIEW=F=new DataView(We),r.HEAP8=He=new Int8Array(We),r.HEAP16=Je=new Int16Array(We),r.HEAP32=b=new Int32Array(We),r.HEAPU8=Te=new Uint8Array(We),r.HEAPU16=qe=new Uint16Array(We),r.HEAPU32=w=new Uint32Array(We),r.HEAPF32=P=new Float32Array(We),r.HEAPF64=y=new Float64Array(We)}var X=r.INITIAL_MEMORY||16777216,Z,ie=[],Pe=[],Ne=[],ot=!1;function dt(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)bt(r.preRun.shift());oo(ie)}function jt(){ot=!0,oo(Pe)}function $t(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Qr(r.postRun.shift());oo(Ne)}function bt(We){ie.unshift(We)}function an(We){Pe.unshift(We)}function Qr(We){Ne.unshift(We)}var mr=0,br=null,Wr=null;function Kn(We){mr++,r.monitorRunDependencies&&r.monitorRunDependencies(mr)}function Ns(We){if(mr--,r.monitorRunDependencies&&r.monitorRunDependencies(mr),mr==0&&(br!==null&&(clearInterval(br),br=null),Wr)){var tt=Wr;Wr=null,tt()}}r.preloadedImages={},r.preloadedAudios={};function Ti(We){r.onAbort&&r.onAbort(We),We+="",te(We),we=!0,g=1,We="abort("+We+"). Build with -s ASSERTIONS=1 for more info.";var tt=new WebAssembly.RuntimeError(We);throw a(tt),tt}var ps="data:application/octet-stream;base64,";function io(We){return We.startsWith(ps)}var Pi="data:application/octet-stream;base64,AGFzbQEAAAAB/wEkYAN/f38Bf2ABfwF/YAJ/fwF/YAF/AGAEf39/fwF/YAN/f38AYAV/f39/fwF/YAJ/fwBgBH9/f38AYAABf2AFf39/fn8BfmAEf35/fwF/YAR/f35/AX5gAn9+AX9gA398fwBgA39/fgF/YAF/AX5gBn9/f39/fwF/YAN/fn8Bf2AEf39/fwF+YAV/f35/fwF/YAR/f35/AX9gA39/fgF+YAJ/fgBgAn9/AX5gBX9/f39/AGADf35/AX5gBX5+f35/AX5gA39/fwF+YAZ/fH9/f38Bf2AAAGAHf35/f39+fwF/YAV/fn9/fwF/YAV/f39/fwF+YAJ+fwF/YAJ/fAACJQYBYQFhAAMBYQFiAAEBYQFjAAABYQFkAAEBYQFlAAIBYQFmAAED5wHlAQMAAwEDAwEHDAgDFgcNEgEDDRcFAQ8DEAUQAwIBAhgECxkEAQMBBQsFAwMDARACBAMAAggLBwEAAwADGgQDGwYGABwBBgMTFBEHBwcVCx4ABAgHBAICAgAfAQICAgIGFSAAIQAiAAIBBgIHAg0LEw0FAQUCACMDAQAUAAAGBQECBQUDCwsSAgEDBQIHAQEICAACCQQEAQABCAEBCQoBAwkBAQEBBgEGBgYABAIEBAQGEQQEAAARAAEDCQEJAQAJCQkBAQECCgoAAAMPAQEBAwACAgICBQIABwAKBgwHAAADAgICBQEEBQFwAT8/BQcBAYACgIACBgkBfwFBgInBAgsH+gEzAWcCAAFoAFQBaQDqAQFqALsBAWsAwQEBbACpAQFtAKgBAW4ApwEBbwClAQFwAKMBAXEAoAEBcgCbAQFzAMABAXQAugEBdQC5AQF2AEsBdwDiAQF4AMgBAXkAxwEBegDCAQFBAMkBAUIAuAEBQwAGAUQACQFFAKYBAUYAtwEBRwC2AQFIALUBAUkAtAEBSgCzAQFLALIBAUwAsQEBTQCwAQFOAK8BAU8AvAEBUACuAQFRAK0BAVIArAEBUwAaAVQACwFVAKQBAVYAMgFXAQABWACrAQFZAKoBAVoAxgEBXwDFAQEkAMQBAmFhAL8BAmJhAL4BAmNhAL0BCXgBAEEBCz6iAeMBjgGQAVpbjwFYnwGdAVeeAV1coQFZVlWcAZoBmQGYAZcBlgGVAZQBkwGSAZEB6QHoAecB5gHlAeQB4QHfAeAB3gHdAdwB2gHbAYUB2QHYAdcB1gHVAdQB0wHSAdEB0AHPAc4BzQHMAcsBygE4wwEK1N8G5QHMDAEHfwJAIABFDQAgAEEIayIDIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAyADKAIAIgFrIgNBxIQBKAIASQ0BIAAgAWohACADQciEASgCAEcEQCABQf8BTQRAIAMoAggiAiABQQN2IgRBA3RB3IQBakYaIAIgAygCDCIBRgRAQbSEAUG0hAEoAgBBfiAEd3E2AgAMAwsgAiABNgIMIAEgAjYCCAwCCyADKAIYIQYCQCADIAMoAgwiAUcEQCADKAIIIgIgATYCDCABIAI2AggMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAQJAIAMgAygCHCICQQJ0QeSGAWoiBCgCAEYEQCAEIAE2AgAgAQ0BQbiEAUG4hAEoAgBBfiACd3E2AgAMAwsgBkEQQRQgBigCECADRhtqIAE2AgAgAUUNAgsgASAGNgIYIAMoAhAiAgRAIAEgAjYCECACIAE2AhgLIAMoAhQiAkUNASABIAI2AhQgAiABNgIYDAELIAUoAgQiAUEDcUEDRw0AQbyEASAANgIAIAUgAUF+cTYCBCADIABBAXI2AgQgACADaiAANgIADwsgAyAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEAgBUHMhAEoAgBGBEBBzIQBIAM2AgBBwIQBQcCEASgCACAAaiIANgIAIAMgAEEBcjYCBCADQciEASgCAEcNA0G8hAFBADYCAEHIhAFBADYCAA8LIAVByIQBKAIARgRAQciEASADNgIAQbyEAUG8hAEoAgAgAGoiADYCACADIABBAXI2AgQgACADaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgIgAUEDdiIEQQN0QdyEAWpGGiACIAUoAgwiAUYEQEG0hAFBtIQBKAIAQX4gBHdxNgIADAILIAIgATYCDCABIAI2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgFHBEAgBSgCCCICQcSEASgCAEkaIAIgATYCDCABIAI2AggMAQsCQCAFQRRqIgIoAgAiBA0AIAVBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCICQQJ0QeSGAWoiBCgCAEYEQCAEIAE2AgAgAQ0BQbiEAUG4hAEoAgBBfiACd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANByIQBKAIARw0BQbyEASAANgIADwsgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgALIABB/wFNBEAgAEEDdiIBQQN0QdyEAWohAAJ/QbSEASgCACICQQEgAXQiAXFFBEBBtIQBIAEgAnI2AgAgAAwBCyAAKAIICyECIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCA8LQR8hAiADQgA3AhAgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgASACciAEcmsiAUEBdCAAIAFBFWp2QQFxckEcaiECCyADIAI2AhwgAkECdEHkhgFqIQECQAJAAkBBuIQBKAIAIgRBASACdCIHcUUEQEG4hAEgBCAHcjYCACABIAM2AgAgAyABNgIYDAELIABBAEEZIAJBAXZrIAJBH0YbdCECIAEoAgAhAQNAIAEiBCgCBEF4cSAARg0CIAJBHXYhASACQQF0IQIgBCABQQRxaiIHQRBqKAIAIgENAAsgByADNgIQIAMgBDYCGAsgAyADNgIMIAMgAzYCCAwBCyAEKAIIIgAgAzYCDCAEIAM2AgggA0EANgIYIAMgBDYCDCADIAA2AggLQdSEAUHUhAEoAgBBAWsiAEF/IAAbNgIACwuDBAEDfyACQYAETwRAIAAgASACEAIaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkEBSARAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALGgAgAARAIAAtAAEEQCAAKAIEEAYLIAAQBgsLoi4BDH8jAEEQayIMJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEG0hAEoAgAiBUEQIABBC2pBeHEgAEELSRsiCEEDdiICdiIBQQNxBEAgAUF/c0EBcSACaiIDQQN0IgFB5IQBaigCACIEQQhqIQACQCAEKAIIIgIgAUHchAFqIgFGBEBBtIQBIAVBfiADd3E2AgAMAQsgAiABNgIMIAEgAjYCCAsgBCADQQN0IgFBA3I2AgQgASAEaiIBIAEoAgRBAXI2AgQMDQsgCEG8hAEoAgAiCk0NASABBEACQEECIAJ0IgBBACAAa3IgASACdHEiAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqIgNBA3QiAEHkhAFqKAIAIgQoAggiASAAQdyEAWoiAEYEQEG0hAEgBUF+IAN3cSIFNgIADAELIAEgADYCDCAAIAE2AggLIARBCGohACAEIAhBA3I2AgQgBCAIaiICIANBA3QiASAIayIDQQFyNgIEIAEgBGogAzYCACAKBEAgCkEDdiIBQQN0QdyEAWohB0HIhAEoAgAhBAJ/IAVBASABdCIBcUUEQEG0hAEgASAFcjYCACAHDAELIAcoAggLIQEgByAENgIIIAEgBDYCDCAEIAc2AgwgBCABNgIIC0HIhAEgAjYCAEG8hAEgAzYCAAwNC0G4hAEoAgAiBkUNASAGQQAgBmtxQQFrIgAgAEEMdkEQcSICdiIBQQV2QQhxIgAgAnIgASAAdiIBQQJ2QQRxIgByIAEgAHYiAUEBdkECcSIAciABIAB2IgFBAXZBAXEiAHIgASAAdmpBAnRB5IYBaigCACIBKAIEQXhxIAhrIQMgASECA0ACQCACKAIQIgBFBEAgAigCFCIARQ0BCyAAKAIEQXhxIAhrIgIgAyACIANJIgIbIQMgACABIAIbIQEgACECDAELCyABIAhqIgkgAU0NAiABKAIYIQsgASABKAIMIgRHBEAgASgCCCIAQcSEASgCAEkaIAAgBDYCDCAEIAA2AggMDAsgAUEUaiICKAIAIgBFBEAgASgCECIARQ0EIAFBEGohAgsDQCACIQcgACIEQRRqIgIoAgAiAA0AIARBEGohAiAEKAIQIgANAAsgB0EANgIADAsLQX8hCCAAQb9/Sw0AIABBC2oiAEF4cSEIQbiEASgCACIJRQ0AQQAgCGshAwJAAkACQAJ/QQAgCEGAAkkNABpBHyAIQf///wdLDQAaIABBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCAIIABBFWp2QQFxckEcagsiBUECdEHkhgFqKAIAIgJFBEBBACEADAELQQAhACAIQQBBGSAFQQF2ayAFQR9GG3QhAQNAAkAgAigCBEF4cSAIayIHIANPDQAgAiEEIAciAw0AQQAhAyACIQAMAwsgACACKAIUIgcgByACIAFBHXZBBHFqKAIQIgJGGyAAIAcbIQAgAUEBdCEBIAINAAsLIAAgBHJFBEBBAiAFdCIAQQAgAGtyIAlxIgBFDQMgAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqQQJ0QeSGAWooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAhrIgEgA0khAiABIAMgAhshAyAAIAQgAhshBCAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAERQ0AIANBvIQBKAIAIAhrTw0AIAQgCGoiBiAETQ0BIAQoAhghBSAEIAQoAgwiAUcEQCAEKAIIIgBBxIQBKAIASRogACABNgIMIAEgADYCCAwKCyAEQRRqIgIoAgAiAEUEQCAEKAIQIgBFDQQgBEEQaiECCwNAIAIhByAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAHQQA2AgAMCQsgCEG8hAEoAgAiAk0EQEHIhAEoAgAhAwJAIAIgCGsiAUEQTwRAQbyEASABNgIAQciEASADIAhqIgA2AgAgACABQQFyNgIEIAIgA2ogATYCACADIAhBA3I2AgQMAQtByIQBQQA2AgBBvIQBQQA2AgAgAyACQQNyNgIEIAIgA2oiACAAKAIEQQFyNgIECyADQQhqIQAMCwsgCEHAhAEoAgAiBkkEQEHAhAEgBiAIayIBNgIAQcyEAUHMhAEoAgAiAiAIaiIANgIAIAAgAUEBcjYCBCACIAhBA3I2AgQgAkEIaiEADAsLQQAhACAIQS9qIgkCf0GMiAEoAgAEQEGUiAEoAgAMAQtBmIgBQn83AgBBkIgBQoCggICAgAQ3AgBBjIgBIAxBDGpBcHFB2KrVqgVzNgIAQaCIAUEANgIAQfCHAUEANgIAQYAgCyIBaiIFQQAgAWsiB3EiAiAITQ0KQeyHASgCACIEBEBB5IcBKAIAIgMgAmoiASADTQ0LIAEgBEsNCwtB8IcBLQAAQQRxDQUCQAJAQcyEASgCACIDBEBB9IcBIQADQCADIAAoAgAiAU8EQCABIAAoAgRqIANLDQMLIAAoAggiAA0ACwtBABApIgFBf0YNBiACIQVBkIgBKAIAIgNBAWsiACABcQRAIAIgAWsgACABakEAIANrcWohBQsgBSAITQ0GIAVB/v///wdLDQZB7IcBKAIAIgQEQEHkhwEoAgAiAyAFaiIAIANNDQcgACAESw0HCyAFECkiACABRw0BDAgLIAUgBmsgB3EiBUH+////B0sNBSAFECkiASAAKAIAIAAoAgRqRg0EIAEhAAsCQCAAQX9GDQAgCEEwaiAFTQ0AQZSIASgCACIBIAkgBWtqQQAgAWtxIgFB/v///wdLBEAgACEBDAgLIAEQKUF/RwRAIAEgBWohBSAAIQEMCAtBACAFaxApGgwFCyAAIgFBf0cNBgwECwALQQAhBAwHC0EAIQEMBQsgAUF/Rw0CC0HwhwFB8IcBKAIAQQRyNgIACyACQf7///8HSw0BIAIQKSEBQQAQKSEAIAFBf0YNASAAQX9GDQEgACABTQ0BIAAgAWsiBSAIQShqTQ0BC0HkhwFB5IcBKAIAIAVqIgA2AgBB6IcBKAIAIABJBEBB6IcBIAA2AgALAkACQAJAQcyEASgCACIHBEBB9IcBIQADQCABIAAoAgAiAyAAKAIEIgJqRg0CIAAoAggiAA0ACwwCC0HEhAEoAgAiAEEAIAAgAU0bRQRAQcSEASABNgIAC0EAIQBB+IcBIAU2AgBB9IcBIAE2AgBB1IQBQX82AgBB2IQBQYyIASgCADYCAEGAiAFBADYCAANAIABBA3QiA0HkhAFqIANB3IQBaiICNgIAIANB6IQBaiACNgIAIABBAWoiAEEgRw0AC0HAhAEgBUEoayIDQXggAWtBB3FBACABQQhqQQdxGyIAayICNgIAQcyEASAAIAFqIgA2AgAgACACQQFyNgIEIAEgA2pBKDYCBEHQhAFBnIgBKAIANgIADAILIAAtAAxBCHENACADIAdLDQAgASAHTQ0AIAAgAiAFajYCBEHMhAEgB0F4IAdrQQdxQQAgB0EIakEHcRsiAGoiAjYCAEHAhAFBwIQBKAIAIAVqIgEgAGsiADYCACACIABBAXI2AgQgASAHakEoNgIEQdCEAUGciAEoAgA2AgAMAQtBxIQBKAIAIAFLBEBBxIQBIAE2AgALIAEgBWohAkH0hwEhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB9IcBIQADQCAHIAAoAgAiAk8EQCACIAAoAgRqIgQgB0sNAwsgACgCCCEADAALAAsgACABNgIAIAAgACgCBCAFajYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiCSAIQQNyNgIEIAJBeCACa0EHcUEAIAJBCGpBB3EbaiIFIAggCWoiBmshAiAFIAdGBEBBzIQBIAY2AgBBwIQBQcCEASgCACACaiIANgIAIAYgAEEBcjYCBAwDCyAFQciEASgCAEYEQEHIhAEgBjYCAEG8hAFBvIQBKAIAIAJqIgA2AgAgBiAAQQFyNgIEIAAgBmogADYCAAwDCyAFKAIEIgBBA3FBAUYEQCAAQXhxIQcCQCAAQf8BTQRAIAUoAggiAyAAQQN2IgBBA3RB3IQBakYaIAMgBSgCDCIBRgRAQbSEAUG0hAEoAgBBfiAAd3E2AgAMAgsgAyABNgIMIAEgAzYCCAwBCyAFKAIYIQgCQCAFIAUoAgwiAUcEQCAFKAIIIgAgATYCDCABIAA2AggMAQsCQCAFQRRqIgAoAgAiAw0AIAVBEGoiACgCACIDDQBBACEBDAELA0AgACEEIAMiAUEUaiIAKAIAIgMNACABQRBqIQAgASgCECIDDQALIARBADYCAAsgCEUNAAJAIAUgBSgCHCIDQQJ0QeSGAWoiACgCAEYEQCAAIAE2AgAgAQ0BQbiEAUG4hAEoAgBBfiADd3E2AgAMAgsgCEEQQRQgCCgCECAFRhtqIAE2AgAgAUUNAQsgASAINgIYIAUoAhAiAARAIAEgADYCECAAIAE2AhgLIAUoAhQiAEUNACABIAA2AhQgACABNgIYCyAFIAdqIQUgAiAHaiECCyAFIAUoAgRBfnE2AgQgBiACQQFyNgIEIAIgBmogAjYCACACQf8BTQRAIAJBA3YiAEEDdEHchAFqIQICf0G0hAEoAgAiAUEBIAB0IgBxRQRAQbSEASAAIAFyNgIAIAIMAQsgAigCCAshACACIAY2AgggACAGNgIMIAYgAjYCDCAGIAA2AggMAwtBHyEAIAJB////B00EQCACQQh2IgAgAEGA/j9qQRB2QQhxIgN0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgA3IgAHJrIgBBAXQgAiAAQRVqdkEBcXJBHGohAAsgBiAANgIcIAZCADcCECAAQQJ0QeSGAWohBAJAQbiEASgCACIDQQEgAHQiAXFFBEBBuIQBIAEgA3I2AgAgBCAGNgIAIAYgBDYCGAwBCyACQQBBGSAAQQF2ayAAQR9GG3QhACAEKAIAIQEDQCABIgMoAgRBeHEgAkYNAyAAQR12IQEgAEEBdCEAIAMgAUEEcWoiBCgCECIBDQALIAQgBjYCECAGIAM2AhgLIAYgBjYCDCAGIAY2AggMAgtBwIQBIAVBKGsiA0F4IAFrQQdxQQAgAUEIakEHcRsiAGsiAjYCAEHMhAEgACABaiIANgIAIAAgAkEBcjYCBCABIANqQSg2AgRB0IQBQZyIASgCADYCACAHIARBJyAEa0EHcUEAIARBJ2tBB3EbakEvayIAIAAgB0EQakkbIgJBGzYCBCACQfyHASkCADcCECACQfSHASkCADcCCEH8hwEgAkEIajYCAEH4hwEgBTYCAEH0hwEgATYCAEGAiAFBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIARJDQALIAIgB0YNAyACIAIoAgRBfnE2AgQgByACIAdrIgRBAXI2AgQgAiAENgIAIARB/wFNBEAgBEEDdiIAQQN0QdyEAWohAgJ/QbSEASgCACIBQQEgAHQiAHFFBEBBtIQBIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBzYCCCAAIAc2AgwgByACNgIMIAcgADYCCAwEC0EfIQAgB0IANwIQIARB////B00EQCAEQQh2IgAgAEGA/j9qQRB2QQhxIgJ0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgAnIgAHJrIgBBAXQgBCAAQRVqdkEBcXJBHGohAAsgByAANgIcIABBAnRB5IYBaiEDAkBBuIQBKAIAIgJBASAAdCIBcUUEQEG4hAEgASACcjYCACADIAc2AgAgByADNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAMoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIDKAIQIgENAAsgAyAHNgIQIAcgAjYCGAsgByAHNgIMIAcgBzYCCAwDCyADKAIIIgAgBjYCDCADIAY2AgggBkEANgIYIAYgAzYCDCAGIAA2AggLIAlBCGohAAwFCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLQcCEASgCACIAIAhNDQBBwIQBIAAgCGsiATYCAEHMhAFBzIQBKAIAIgIgCGoiADYCACAAIAFBAXI2AgQgAiAIQQNyNgIEIAJBCGohAAwDC0GEhAFBMDYCAEEAIQAMAgsCQCAFRQ0AAkAgBCgCHCICQQJ0QeSGAWoiACgCACAERgRAIAAgATYCACABDQFBuIQBIAlBfiACd3EiCTYCAAwCCyAFQRBBFCAFKAIQIARGG2ogATYCACABRQ0BCyABIAU2AhggBCgCECIABEAgASAANgIQIAAgATYCGAsgBCgCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgA0EPTQRAIAQgAyAIaiIAQQNyNgIEIAAgBGoiACAAKAIEQQFyNgIEDAELIAQgCEEDcjYCBCAGIANBAXI2AgQgAyAGaiADNgIAIANB/wFNBEAgA0EDdiIAQQN0QdyEAWohAgJ/QbSEASgCACIBQQEgAHQiAHFFBEBBtIQBIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBjYCCCAAIAY2AgwgBiACNgIMIAYgADYCCAwBC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyAGIAA2AhwgBkIANwIQIABBAnRB5IYBaiECAkACQCAJQQEgAHQiAXFFBEBBuIQBIAEgCXI2AgAgAiAGNgIAIAYgAjYCGAwBCyADQQBBGSAAQQF2ayAAQR9GG3QhACACKAIAIQgDQCAIIgEoAgRBeHEgA0YNAiAAQR12IQIgAEEBdCEAIAEgAkEEcWoiAigCECIIDQALIAIgBjYCECAGIAE2AhgLIAYgBjYCDCAGIAY2AggMAQsgASgCCCIAIAY2AgwgASAGNgIIIAZBADYCGCAGIAE2AgwgBiAANgIICyAEQQhqIQAMAQsCQCALRQ0AAkAgASgCHCICQQJ0QeSGAWoiACgCACABRgRAIAAgBDYCACAEDQFBuIQBIAZBfiACd3E2AgAMAgsgC0EQQRQgCygCECABRhtqIAQ2AgAgBEUNAQsgBCALNgIYIAEoAhAiAARAIAQgADYCECAAIAQ2AhgLIAEoAhQiAEUNACAEIAA2AhQgACAENgIYCwJAIANBD00EQCABIAMgCGoiAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAwBCyABIAhBA3I2AgQgCSADQQFyNgIEIAMgCWogAzYCACAKBEAgCkEDdiIAQQN0QdyEAWohBEHIhAEoAgAhAgJ/QQEgAHQiACAFcUUEQEG0hAEgACAFcjYCACAEDAELIAQoAggLIQAgBCACNgIIIAAgAjYCDCACIAQ2AgwgAiAANgIIC0HIhAEgCTYCAEG8hAEgAzYCAAsgAUEIaiEACyAMQRBqJAAgAAuJAQEDfyAAKAIcIgEQMAJAIAAoAhAiAiABKAIQIgMgAiADSRsiAkUNACAAKAIMIAEoAgggAhAHGiAAIAAoAgwgAmo2AgwgASABKAIIIAJqNgIIIAAgACgCFCACajYCFCAAIAAoAhAgAms2AhAgASABKAIQIAJrIgA2AhAgAA0AIAEgASgCBDYCCAsLzgEBBX8CQCAARQ0AIAAoAjAiAQRAIAAgAUEBayIBNgIwIAENAQsgACgCIARAIABBATYCICAAEBoaCyAAKAIkQQFGBEAgABBDCwJAIAAoAiwiAUUNACAALQAoDQACQCABKAJEIgNFDQAgASgCTCEEA0AgACAEIAJBAnRqIgUoAgBHBEAgAyACQQFqIgJHDQEMAgsLIAUgBCADQQFrIgJBAnRqKAIANgIAIAEgAjYCRAsLIABBAEIAQQUQDhogACgCACIBBEAgARALCyAAEAYLC1oCAn4BfwJ/AkACQCAALQAARQ0AIAApAxAiAUJ9Vg0AIAFCAnwiAiAAKQMIWA0BCyAAQQA6AABBAAwBC0EAIAAoAgQiA0UNABogACACNwMQIAMgAadqLwAACwthAgJ+AX8CQAJAIAAtAABFDQAgACkDECICQn1WDQAgAkICfCIDIAApAwhYDQELIABBADoAAA8LIAAoAgQiBEUEQA8LIAAgAzcDECAEIAKnaiIAIAFBCHY6AAEgACABOgAAC8wCAQJ/IwBBEGsiBCQAAkAgACkDGCADrYinQQFxRQRAIABBDGoiAARAIABBADYCBCAAQRw2AgALQn8hAgwBCwJ+IAAoAgAiBUUEQCAAKAIIIAEgAiADIAAoAgQRDAAMAQsgBSAAKAIIIAEgAiADIAAoAgQRCgALIgJCf1UNAAJAIANBBGsOCwEAAAAAAAAAAAABAAsCQAJAIAAtABhBEHFFBEAgAEEMaiIBBEAgAUEANgIEIAFBHDYCAAsMAQsCfiAAKAIAIgFFBEAgACgCCCAEQQhqQghBBCAAKAIEEQwADAELIAEgACgCCCAEQQhqQghBBCAAKAIEEQoAC0J/VQ0BCyAAQQxqIgAEQCAAQQA2AgQgAEEUNgIACwwBCyAEKAIIIQEgBCgCDCEDIABBDGoiAARAIAAgAzYCBCAAIAE2AgALCyAEQRBqJAAgAguTFQIOfwN+AkACQAJAAkACQAJAAkACQAJAAkACQCAAKALwLQRAIAAoAogBQQFIDQEgACgCACIEKAIsQQJHDQQgAC8B5AENAyAALwHoAQ0DIAAvAewBDQMgAC8B8AENAyAALwH0AQ0DIAAvAfgBDQMgAC8B/AENAyAALwGcAg0DIAAvAaACDQMgAC8BpAINAyAALwGoAg0DIAAvAawCDQMgAC8BsAINAyAALwG0Ag0DIAAvAbgCDQMgAC8BvAINAyAALwHAAg0DIAAvAcQCDQMgAC8ByAINAyAALwHUAg0DIAAvAdgCDQMgAC8B3AINAyAALwHgAg0DIAAvAYgCDQIgAC8BjAINAiAALwGYAg0CQSAhBgNAIAAgBkECdCIFai8B5AENAyAAIAVBBHJqLwHkAQ0DIAAgBUEIcmovAeQBDQMgACAFQQxyai8B5AENAyAGQQRqIgZBgAJHDQALDAMLIABBBzYC/C0gAkF8Rw0FIAFFDQUMBgsgAkEFaiIEIQcMAwtBASEHCyAEIAc2AiwLIAAgAEHoFmoQUSAAIABB9BZqEFEgAC8B5gEhBCAAIABB7BZqKAIAIgxBAnRqQf//AzsB6gEgAEGQFmohECAAQZQWaiERIABBjBZqIQdBACEGIAxBAE4EQEEHQYoBIAQbIQ1BBEEDIAQbIQpBfyEJA0AgBCEIIAAgCyIOQQFqIgtBAnRqLwHmASEEAkACQCAGQQFqIgVB//8DcSIPIA1B//8DcU8NACAEIAhHDQAgBSEGDAELAn8gACAIQQJ0akHMFWogCkH//wNxIA9LDQAaIAgEQEEBIQUgByAIIAlGDQEaIAAgCEECdGpBzBVqIgYgBi8BAEEBajsBACAHDAELQQEhBSAQIBEgBkH//wNxQQpJGwsiBiAGLwEAIAVqOwEAQQAhBgJ/IARFBEBBAyEKQYoBDAELQQNBBCAEIAhGIgUbIQpBBkEHIAUbCyENIAghCQsgDCAORw0ACwsgAEHaE2ovAQAhBCAAIABB+BZqKAIAIgxBAnRqQd4TakH//wM7AQBBACEGIAxBAE4EQEEHQYoBIAQbIQ1BBEEDIAQbIQpBfyEJQQAhCwNAIAQhCCAAIAsiDkEBaiILQQJ0akHaE2ovAQAhBAJAAkAgBkEBaiIFQf//A3EiDyANQf//A3FPDQAgBCAIRw0AIAUhBgwBCwJ/IAAgCEECdGpBzBVqIApB//8DcSAPSw0AGiAIBEBBASEFIAcgCCAJRg0BGiAAIAhBAnRqQcwVaiIGIAYvAQBBAWo7AQAgBwwBC0EBIQUgECARIAZB//8DcUEKSRsLIgYgBi8BACAFajsBAEEAIQYCfyAERQRAQQMhCkGKAQwBC0EDQQQgBCAIRiIFGyEKQQZBByAFGwshDSAIIQkLIAwgDkcNAAsLIAAgAEGAF2oQUSAAIAAoAvgtAn9BEiAAQYoWai8BAA0AGkERIABB0hVqLwEADQAaQRAgAEGGFmovAQANABpBDyAAQdYVai8BAA0AGkEOIABBghZqLwEADQAaQQ0gAEHaFWovAQANABpBDCAAQf4Vai8BAA0AGkELIABB3hVqLwEADQAaQQogAEH6FWovAQANABpBCSAAQeIVai8BAA0AGkEIIABB9hVqLwEADQAaQQcgAEHmFWovAQANABpBBiAAQfIVai8BAA0AGkEFIABB6hVqLwEADQAaQQQgAEHuFWovAQANABpBA0ECIABBzhVqLwEAGwsiBkEDbGoiBEERajYC+C0gACgC/C1BCmpBA3YiByAEQRtqQQN2IgRNBEAgByEEDAELIAAoAowBQQRHDQAgByEECyAEIAJBBGpPQQAgARsNASAEIAdHDQQLIANBAmqtIRIgACkDmC4hFCAAKAKgLiIBQQNqIgdBP0sNASASIAGthiAUhCESDAILIAAgASACIAMQOQwDCyABQcAARgRAIAAoAgQgACgCEGogFDcAACAAIAAoAhBBCGo2AhBBAyEHDAELIAAoAgQgACgCEGogEiABrYYgFIQ3AAAgACAAKAIQQQhqNgIQIAFBPWshByASQcAAIAFrrYghEgsgACASNwOYLiAAIAc2AqAuIABBgMEAQYDKABCHAQwBCyADQQRqrSESIAApA5guIRQCQCAAKAKgLiIBQQNqIgRBP00EQCASIAGthiAUhCESDAELIAFBwABGBEAgACgCBCAAKAIQaiAUNwAAIAAgACgCEEEIajYCEEEDIQQMAQsgACgCBCAAKAIQaiASIAGthiAUhDcAACAAIAAoAhBBCGo2AhAgAUE9ayEEIBJBwAAgAWutiCESCyAAIBI3A5guIAAgBDYCoC4gAEHsFmooAgAiC6xCgAJ9IRMgAEH4FmooAgAhCQJAAkACfwJ+AkACfwJ/IARBOk0EQCATIASthiAShCETIARBBWoMAQsgBEHAAEYEQCAAKAIEIAAoAhBqIBI3AAAgACAAKAIQQQhqNgIQIAmsIRJCBSEUQQoMAgsgACgCBCAAKAIQaiATIASthiAShDcAACAAIAAoAhBBCGo2AhAgE0HAACAEa62IIRMgBEE7awshBSAJrCESIAVBOksNASAFrSEUIAVBBWoLIQcgEiAUhiAThAwBCyAFQcAARgRAIAAoAgQgACgCEGogEzcAACAAIAAoAhBBCGo2AhAgBq1CA30hE0IFIRRBCQwCCyAAKAIEIAAoAhBqIBIgBa2GIBOENwAAIAAgACgCEEEIajYCECAFQTtrIQcgEkHAACAFa62ICyESIAatQgN9IRMgB0E7Sw0BIAetIRQgB0EEagshBCATIBSGIBKEIRMMAQsgB0HAAEYEQCAAKAIEIAAoAhBqIBI3AAAgACAAKAIQQQhqNgIQQQQhBAwBCyAAKAIEIAAoAhBqIBMgB62GIBKENwAAIAAgACgCEEEIajYCECAHQTxrIQQgE0HAACAHa62IIRMLQQAhBQNAIAAgBSIBQZDWAGotAABBAnRqQc4VajMBACEUAn8gBEE8TQRAIBQgBK2GIBOEIRMgBEEDagwBCyAEQcAARgRAIAAoAgQgACgCEGogEzcAACAAIAAoAhBBCGo2AhAgFCETQQMMAQsgACgCBCAAKAIQaiAUIASthiAThDcAACAAIAAoAhBBCGo2AhAgFEHAACAEa62IIRMgBEE9awshBCABQQFqIQUgASAGRw0ACyAAIAQ2AqAuIAAgEzcDmC4gACAAQeQBaiICIAsQhgEgACAAQdgTaiIBIAkQhgEgACACIAEQhwELIAAQiAEgAwRAAkAgACgCoC4iBEE5TgRAIAAoAgQgACgCEGogACkDmC43AAAgACAAKAIQQQhqNgIQDAELIARBGU4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgQ2AqAuCyAEQQlOBH8gACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACgCoC5BEGsFIAQLQQFIDQAgACAAKAIQIgFBAWo2AhAgASAAKAIEaiAAKQOYLjwAAAsgAEEANgKgLiAAQgA3A5guCwsZACAABEAgACgCABAGIAAoAgwQBiAAEAYLC6wBAQJ+Qn8hAwJAIAAtACgNAAJAAkAgACgCIEUNACACQgBTDQAgAlANASABDQELIABBDGoiAARAIABBADYCBCAAQRI2AgALQn8PCyAALQA1DQBCACEDIAAtADQNACACUA0AA0AgACABIAOnaiACIAN9QQEQDiIEQn9XBEAgAEEBOgA1Qn8gAyADUBsPCyAEUEUEQCADIAR8IgMgAloNAgwBCwsgAEEBOgA0CyADC3UCAn4BfwJAAkAgAC0AAEUNACAAKQMQIgJCe1YNACACQgR8IgMgACkDCFgNAQsgAEEAOgAADwsgACgCBCIERQRADwsgACADNwMQIAQgAqdqIgAgAUEYdjoAAyAAIAFBEHY6AAIgACABQQh2OgABIAAgAToAAAtUAgF+AX8CQAJAIAAtAABFDQAgASAAKQMQIgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADwsgACgCBCIDRQRAQQAPCyAAIAI3AxAgAyABp2oLdwECfyMAQRBrIgMkAEF/IQQCQCAALQAoDQAgACgCIEEAIAJBA0kbRQRAIABBDGoiAARAIABBADYCBCAAQRI2AgALDAELIAMgAjYCCCADIAE3AwAgACADQhBBBhAOQgBTDQBBACEEIABBADoANAsgA0EQaiQAIAQLVwICfgF/AkACQCAALQAARQ0AIAApAxAiAUJ7Vg0AIAFCBHwiAiAAKQMIWA0BCyAAQQA6AABBAA8LIAAoAgQiA0UEQEEADwsgACACNwMQIAMgAadqKAAAC1UCAX4BfyAABEACQCAAKQMIUA0AQgEhAQNAIAAoAgAgAkEEdGoQPiABIAApAwhaDQEgAachAiABQgF8IQEMAAsACyAAKAIAEAYgACgCKBAQIAAQBgsLZAECfwJAAkACQCAARQRAIAGnEAkiA0UNAkEYEAkiAkUNAQwDCyAAIQNBGBAJIgINAkEADwsgAxAGC0EADwsgAkIANwMQIAIgATcDCCACIAM2AgQgAkEBOgAAIAIgAEU6AAEgAgudAQICfgF/AkACQCAALQAARQ0AIAApAxAiAkJ3Vg0AIAJCCHwiAyAAKQMIWA0BCyAAQQA6AAAPCyAAKAIEIgRFBEAPCyAAIAM3AxAgBCACp2oiACABQjiIPAAHIAAgAUIwiDwABiAAIAFCKIg8AAUgACABQiCIPAAEIAAgAUIYiDwAAyAAIAFCEIg8AAIgACABQgiIPAABIAAgATwAAAvwAgICfwF+AkAgAkUNACAAIAJqIgNBAWsgAToAACAAIAE6AAAgAkEDSQ0AIANBAmsgAToAACAAIAE6AAEgA0EDayABOgAAIAAgAToAAiACQQdJDQAgA0EEayABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiADYCACADIAIgBGtBfHEiAmoiAUEEayAANgIAIAJBCUkNACADIAA2AgggAyAANgIEIAFBCGsgADYCACABQQxrIAA2AgAgAkEZSQ0AIAMgADYCGCADIAA2AhQgAyAANgIQIAMgADYCDCABQRBrIAA2AgAgAUEUayAANgIAIAFBGGsgADYCACABQRxrIAA2AgAgAiADQQRxQRhyIgFrIgJBIEkNACAArUKBgICAEH4hBSABIANqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsLbwEDfyAAQQxqIQICQAJ/IAAoAiAiAUUEQEF/IQFBEgwBCyAAIAFBAWsiAzYCIEEAIQEgAw0BIABBAEIAQQIQDhogACgCACIARQ0BIAAQGkF/Sg0BQRQLIQAgAgRAIAJBADYCBCACIAA2AgALCyABC58BAgF/AX4CfwJAAn4gACgCACIDKAIkQQFGQQAgAkJ/VRtFBEAgA0EMaiIBBEAgAUEANgIEIAFBEjYCAAtCfwwBCyADIAEgAkELEA4LIgRCf1cEQCAAKAIAIQEgAEEIaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAsMAQtBACACIARRDQEaIABBCGoEQCAAQRs2AgwgAEEGNgIICwtBfwsLJAEBfyAABEADQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsLC5gBAgJ+AX8CQAJAIAAtAABFDQAgACkDECIBQndWDQAgAUIIfCICIAApAwhYDQELIABBADoAAEIADwsgACgCBCIDRQRAQgAPCyAAIAI3AxAgAyABp2oiADEABkIwhiAAMQAHQjiGhCAAMQAFQiiGhCAAMQAEQiCGhCAAMQADQhiGhCAAMQACQhCGhCAAMQABQgiGhCAAMQAAfAsjACAAQShGBEAgAhAGDwsgAgRAIAEgAkEEaygCACAAEQcACwsyACAAKAIkQQFHBEAgAEEMaiIABEAgAEEANgIEIABBEjYCAAtCfw8LIABBAEIAQQ0QDgsPACAABEAgABA2IAAQBgsLgAEBAX8gAC0AKAR/QX8FIAFFBEAgAEEMagRAIABBADYCECAAQRI2AgwLQX8PCyABECoCQCAAKAIAIgJFDQAgAiABECFBf0oNACAAKAIAIQEgAEEMaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAtBfw8LIAAgAUI4QQMQDkI/h6cLC38BA38gACEBAkAgAEEDcQRAA0AgAS0AAEUNAiABQQFqIgFBA3ENAAsLA0AgASICQQRqIQEgAigCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsgA0H/AXFFBEAgAiAAaw8LA0AgAi0AASEDIAJBAWoiASECIAMNAAsLIAEgAGsL3wIBCH8gAEUEQEEBDwsCQCAAKAIIIgINAEEBIQQgAC8BBCIHRQRAQQEhAgwBCyAAKAIAIQgDQAJAIAMgCGoiBS0AACICQSBPBEAgAkEYdEEYdUF/Sg0BCyACQQ1NQQBBASACdEGAzABxGw0AAn8CfyACQeABcUHAAUYEQEEBIQYgA0EBagwBCyACQfABcUHgAUYEQCADQQJqIQNBACEGQQEMAgsgAkH4AXFB8AFHBEBBBCECDAULQQAhBiADQQNqCyEDQQALIQlBBCECIAMgB08NAiAFLQABQcABcUGAAUcNAkEDIQQgBg0AIAUtAAJBwAFxQYABRw0CIAkNACAFLQADQcABcUGAAUcNAgsgBCECIANBAWoiAyAHSQ0ACwsgACACNgIIAn8CQCABRQ0AAkAgAUECRw0AIAJBA0cNAEECIQIgAEECNgIICyABIAJGDQBBBSACQQFHDQEaCyACCwtIAgJ+An8jAEEQayIEIAE2AgxCASAArYYhAgNAIAQgAUEEaiIANgIMIAIiA0IBIAEoAgAiBa2GhCECIAAhASAFQX9KDQALIAMLhwUBB38CQAJAIABFBEBBxRQhAiABRQ0BIAFBADYCAEHFFA8LIAJBwABxDQEgACgCCEUEQCAAQQAQIxoLIAAoAgghBAJAIAJBgAFxBEAgBEEBa0ECTw0BDAMLIARBBEcNAgsCQCAAKAIMIgINACAAAn8gACgCACEIIABBEGohCUEAIQICQAJAAkACQCAALwEEIgUEQEEBIQQgBUEBcSEHIAVBAUcNAQwCCyAJRQ0CIAlBADYCAEEADAQLIAVBfnEhBgNAIARBAUECQQMgAiAIai0AAEEBdEHQFGovAQAiCkGAEEkbIApBgAFJG2pBAUECQQMgCCACQQFyai0AAEEBdEHQFGovAQAiBEGAEEkbIARBgAFJG2ohBCACQQJqIQIgBkECayIGDQALCwJ/IAcEQCAEQQFBAkEDIAIgCGotAABBAXRB0BRqLwEAIgJBgBBJGyACQYABSRtqIQQLIAQLEAkiB0UNASAFQQEgBUEBSxshCkEAIQVBACEGA0AgBSAHaiEDAn8gBiAIai0AAEEBdEHQFGovAQAiAkH/AE0EQCADIAI6AAAgBUEBagwBCyACQf8PTQRAIAMgAkE/cUGAAXI6AAEgAyACQQZ2QcABcjoAACAFQQJqDAELIAMgAkE/cUGAAXI6AAIgAyACQQx2QeABcjoAACADIAJBBnZBP3FBgAFyOgABIAVBA2oLIQUgBkEBaiIGIApHDQALIAcgBEEBayICakEAOgAAIAlFDQAgCSACNgIACyAHDAELIAMEQCADQQA2AgQgA0EONgIAC0EACyICNgIMIAINAEEADwsgAUUNACABIAAoAhA2AgALIAIPCyABBEAgASAALwEENgIACyAAKAIAC4MBAQR/QRIhBQJAAkAgACkDMCABWA0AIAGnIQYgACgCQCEEIAJBCHEiB0UEQCAEIAZBBHRqKAIEIgINAgsgBCAGQQR0aiIEKAIAIgJFDQAgBC0ADEUNAUEXIQUgBw0BC0EAIQIgAyAAQQhqIAMbIgAEQCAAQQA2AgQgACAFNgIACwsgAgtuAQF/IwBBgAJrIgUkAAJAIARBgMAEcQ0AIAIgA0wNACAFIAFB/wFxIAIgA2siAkGAAiACQYACSSIBGxAZIAFFBEADQCAAIAVBgAIQLiACQYACayICQf8BSw0ACwsgACAFIAIQLgsgBUGAAmokAAuBAQEBfyMAQRBrIgQkACACIANsIQICQCAAQSdGBEAgBEEMaiACEIwBIQBBACAEKAIMIAAbIQAMAQsgAUEBIAJBxABqIAARAAAiAUUEQEEAIQAMAQtBwAAgAUE/cWsiACABakHAAEEAIABBBEkbaiIAQQRrIAE2AAALIARBEGokACAAC1IBAn9BhIEBKAIAIgEgAEEDakF8cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQA0UNAQtBhIEBIAA2AgAgAQ8LQYSEAUEwNgIAQX8LNwAgAEJ/NwMQIABBADYCCCAAQgA3AwAgAEEANgIwIABC/////w83AyggAEIANwMYIABCADcDIAulAQEBf0HYABAJIgFFBEBBAA8LAkAgAARAIAEgAEHYABAHGgwBCyABQgA3AyAgAUEANgIYIAFC/////w83AxAgAUEAOwEMIAFBv4YoNgIIIAFBAToABiABQQA6AAQgAUIANwNIIAFBgIDYjXg2AkQgAUIANwMoIAFCADcDMCABQgA3AzggAUFAa0EAOwEAIAFCADcDUAsgAUEBOgAFIAFBADYCACABC1gCAn4BfwJAAkAgAC0AAEUNACAAKQMQIgMgAq18IgQgA1QNACAEIAApAwhYDQELIABBADoAAA8LIAAoAgQiBUUEQA8LIAAgBDcDECAFIAOnaiABIAIQBxoLlgEBAn8CQAJAIAJFBEAgAacQCSIFRQ0BQRgQCSIEDQIgBRAGDAELIAIhBUEYEAkiBA0BCyADBEAgA0EANgIEIANBDjYCAAtBAA8LIARCADcDECAEIAE3AwggBCAFNgIEIARBAToAACAEIAJFOgABIAAgBSABIAMQZUEASAR/IAQtAAEEQCAEKAIEEAYLIAQQBkEABSAECwubAgEDfyAALQAAQSBxRQRAAkAgASEDAkAgAiAAIgEoAhAiAAR/IAAFAn8gASABLQBKIgBBAWsgAHI6AEogASgCACIAQQhxBEAgASAAQSByNgIAQX8MAQsgAUIANwIEIAEgASgCLCIANgIcIAEgADYCFCABIAAgASgCMGo2AhBBAAsNASABKAIQCyABKAIUIgVrSwRAIAEgAyACIAEoAiQRAAAaDAILAn8gASwAS0F/SgRAIAIhAANAIAIgACIERQ0CGiADIARBAWsiAGotAABBCkcNAAsgASADIAQgASgCJBEAACAESQ0CIAMgBGohAyABKAIUIQUgAiAEawwBCyACCyEAIAUgAyAAEAcaIAEgASgCFCAAajYCFAsLCwvNBQEGfyAAKAIwIgNBhgJrIQYgACgCPCECIAMhAQNAIAAoAkQgAiAAKAJoIgRqayECIAEgBmogBE0EQCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";io(Pi)||(Pi=x(Pi));function Ls(We){try{if(We==Pi&&ce)return new Uint8Array(ce);var tt=ii(We);if(tt)return tt;if(R)return R(We);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(It){Ti(It)}}function so(We,tt){var It,nr,$;try{$=Ls(We),nr=new WebAssembly.Module($),It=new WebAssembly.Instance(nr,tt)}catch(Le){var ye=Le.toString();throw te("failed to compile wasm module: "+ye),(ye.includes("imported Memory")||ye.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Le}return[It,nr]}function cc(){var We={a:Ma};function tt($,ye){var Le=$.exports;r.asm=Le,Be=r.asm.g,z(Be.buffer),Z=r.asm.W,an(r.asm.h),Ns("wasm-instantiate")}if(Kn("wasm-instantiate"),r.instantiateWasm)try{var It=r.instantiateWasm(We,tt);return It}catch($){return te("Module.instantiateWasm callback failed with error: "+$),!1}var nr=so(Pi,We);return tt(nr[0]),r.asm}function cu(We){return F.getFloat32(We,!0)}function lp(We){return F.getFloat64(We,!0)}function cp(We){return F.getInt16(We,!0)}function Os(We){return F.getInt32(We,!0)}function Dn(We,tt){F.setInt32(We,tt,!0)}function oo(We){for(;We.length>0;){var tt=We.shift();if(typeof tt=="function"){tt(r);continue}var It=tt.func;typeof It=="number"?tt.arg===void 0?Z.get(It)():Z.get(It)(tt.arg):It(tt.arg===void 0?null:tt.arg)}}function Ms(We,tt){var It=new Date(Os((We>>2)*4)*1e3);Dn((tt>>2)*4,It.getUTCSeconds()),Dn((tt+4>>2)*4,It.getUTCMinutes()),Dn((tt+8>>2)*4,It.getUTCHours()),Dn((tt+12>>2)*4,It.getUTCDate()),Dn((tt+16>>2)*4,It.getUTCMonth()),Dn((tt+20>>2)*4,It.getUTCFullYear()-1900),Dn((tt+24>>2)*4,It.getUTCDay()),Dn((tt+36>>2)*4,0),Dn((tt+32>>2)*4,0);var nr=Date.UTC(It.getUTCFullYear(),0,1,0,0,0,0),$=(It.getTime()-nr)/(1e3*60*60*24)|0;return Dn((tt+28>>2)*4,$),Ms.GMTString||(Ms.GMTString=at("GMT")),Dn((tt+40>>2)*4,Ms.GMTString),tt}function ml(We,tt){return Ms(We,tt)}function yl(We,tt,It){Te.copyWithin(We,tt,tt+It)}function ao(We){try{return Be.grow(We-xe.byteLength+65535>>>16),z(Be.buffer),1}catch{}}function Vn(We){var tt=Te.length;We=We>>>0;var It=2147483648;if(We>It)return!1;for(var nr=1;nr<=4;nr*=2){var $=tt*(1+.2/nr);$=Math.min($,We+100663296);var ye=Math.min(It,ke(Math.max(We,$),65536)),Le=ao(ye);if(Le)return!0}return!1}function On(We){fe(We)}function Ni(We){var tt=Date.now()/1e3|0;return We&&Dn((We>>2)*4,tt),tt}function Mn(){if(Mn.called)return;Mn.called=!0;var We=new Date().getFullYear(),tt=new Date(We,0,1),It=new Date(We,6,1),nr=tt.getTimezoneOffset(),$=It.getTimezoneOffset(),ye=Math.max(nr,$);Dn((ds()>>2)*4,ye*60),Dn((gs()>>2)*4,Number(nr!=$));function Le($r){var ji=$r.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ji?ji[1]:"GMT"}var pt=Le(tt),ht=Le(It),Tt=at(pt),er=at(ht);$>2)*4,Tt),Dn((wi()+4>>2)*4,er)):(Dn((wi()>>2)*4,er),Dn((wi()+4>>2)*4,Tt))}function _i(We){Mn();var tt=Date.UTC(Os((We+20>>2)*4)+1900,Os((We+16>>2)*4),Os((We+12>>2)*4),Os((We+8>>2)*4),Os((We+4>>2)*4),Os((We>>2)*4),0),It=new Date(tt);Dn((We+24>>2)*4,It.getUTCDay());var nr=Date.UTC(It.getUTCFullYear(),0,1,0,0,0,0),$=(It.getTime()-nr)/(1e3*60*60*24)|0;return Dn((We+28>>2)*4,$),It.getTime()/1e3|0}var tr=typeof atob=="function"?atob:function(We){var tt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",It="",nr,$,ye,Le,pt,ht,Tt,er=0;We=We.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Le=tt.indexOf(We.charAt(er++)),pt=tt.indexOf(We.charAt(er++)),ht=tt.indexOf(We.charAt(er++)),Tt=tt.indexOf(We.charAt(er++)),nr=Le<<2|pt>>4,$=(pt&15)<<4|ht>>2,ye=(ht&3)<<6|Tt,It=It+String.fromCharCode(nr),ht!==64&&(It=It+String.fromCharCode($)),Tt!==64&&(It=It+String.fromCharCode(ye));while(er0||(dt(),mr>0))return;function tt(){Sn||(Sn=!0,r.calledRun=!0,!we&&(jt(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),$t()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),tt()},1)):tt()}if(r.run=ys,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return ys(),e}}();typeof Qb=="object"&&typeof tU=="object"?tU.exports=eU:typeof define=="function"&&define.amd?define([],function(){return eU}):typeof Qb=="object"&&(Qb.createModule=eU)});var Of,Rle,Tle,Nle=Et(()=>{Of=["number","number"],Rle=(ee=>(ee[ee.ZIP_ER_OK=0]="ZIP_ER_OK",ee[ee.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",ee[ee.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",ee[ee.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",ee[ee.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",ee[ee.ZIP_ER_READ=5]="ZIP_ER_READ",ee[ee.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",ee[ee.ZIP_ER_CRC=7]="ZIP_ER_CRC",ee[ee.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",ee[ee.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",ee[ee.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",ee[ee.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",ee[ee.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",ee[ee.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",ee[ee.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",ee[ee.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",ee[ee.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",ee[ee.ZIP_ER_EOF=17]="ZIP_ER_EOF",ee[ee.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",ee[ee.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",ee[ee.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",ee[ee.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",ee[ee.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",ee[ee.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",ee[ee.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",ee[ee.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",ee[ee.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",ee[ee.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",ee[ee.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",ee[ee.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",ee[ee.ZIP_ER_TELL=30]="ZIP_ER_TELL",ee[ee.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",ee))(Rle||{}),Tle=t=>({get HEAPU8(){return t.HEAPU8},errors:Rle,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Of,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Of,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Of,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Of,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Of,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Of,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Of,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Of,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Of,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function rU(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==V.sep);){if(t[r-1]===V.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==V.sep?null:t.slice(0,o)}var Jl,Lle=Et(()=>{St();St();nA();Jl=class extends Hp{static async openPromise(e,r){let o=new Jl(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>rU(A,".zip"):A=>{for(let p of r){let h=rU(A,p);if(h)return h}return null},n=(A,p)=>new zi(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new zi(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function lot(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(Ole.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function Fb(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var ta,nU,Ole,iU,Mle,Rb,zi,sU=Et(()=>{St();St();St();St();St();St();ta=ve("fs"),nU=ve("stream"),Ole=ve("util"),iU=$e(ve("zlib"));$4();Mle="mixed";Rb=class extends Error{constructor(r,o){super(r);this.name="Libzip Error",this.code=o}},zi=class extends Mu{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:Mle,r??=Fb(),typeof r=="string"){let{baseFs:A=new Tn}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=Ea.makeDefaultStats();else throw A}else this.stats=Ea.makeDefaultStats();this.libzip=b1();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?Fb():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(Bt.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;Ar)throw new Error("Overread");let n=Buffer.from(this.libzip.HEAPU8.subarray(o,o+r));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(n=Buffer.concat([n,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),n}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===Ea.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return V.resolve(Bt.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw ar.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return PD(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw ar.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?ar.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw ar.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new nU.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw ar.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new nU.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw ar.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw ar.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=V.resolve(Bt.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=ta.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`access '${r}'`);if(this.readOnly&&o&ta.constants.W_OK)throw ar.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw ar.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw ar.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw ar.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw ar.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw ar.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw ar.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw ar.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,I=512,v=Math.ceil(E/I),x=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=x,R=x,L=x,U=new Date(C),J=new Date(R),te=new Date(L),ae=new Date(x),fe=this.listings.has(o)?ta.constants.S_IFDIR:this.isSymbolicLink(n)?ta.constants.S_IFLNK:ta.constants.S_IFREG,ce=fe===ta.constants.S_IFDIR?493:420,me=fe|this.getUnixMode(n,ce)&511,he=this.libzip.struct.statCrc(u),Be=Object.assign(new Ea.StatEntry,{uid:p,gid:h,size:E,blksize:I,blocks:v,atime:U,birthtime:J,ctime:te,mtime:ae,atimeMs:C,birthtimeMs:R,ctimeMs:L,mtimeMs:x,mode:me,crc:he});return a.bigint===!0?Ea.convertToBigIntStats(Be):Be}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,I=this.stats.mtimeMs,v=this.stats.mtimeMs,x=this.stats.mtimeMs,C=this.stats.mtimeMs,R=new Date(I),L=new Date(v),U=new Date(x),J=new Date(C),te=ta.constants.S_IFDIR|493,ae=0,fe=Object.assign(new Ea.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:R,birthtime:L,ctime:U,mtime:J,atimeMs:I,birthtimeMs:v,ctimeMs:x,mtimeMs:C,mode:te,crc:ae});return a.bigint===!0?Ea.convertToBigIntStats(fe):fe}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(V.dirname(r)).add(V.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(V.dirname(r)).add(V.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r),this.listings.get(V.dirname(r))?.delete(V.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw ar.EBUSY(`archive closed, ${r}`);let u=V.resolve(Bt.root,o);if(u==="/")return Bt.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,V.resolve(V.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,V.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw ar.ENOENT(r)}if(!h)throw ar.ENOTDIR(r);if(u=V.resolve(p,V.basename(u)),!a||this.symlinkCount===0)break;let I=this.libzip.name.locate(this.zip,u.slice(1),0);if(I===-1)break;if(this.isSymbolicLink(I)){let v=this.getFileSource(I).toString();u=V.resolve(V.dirname(u),v)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=V.relative(Bt.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&ta.constants.S_IFMT)===ta.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let I=this.libzip.fread(E,h,A,0);if(I===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(IA)throw new Error("Overread");let v=this.libzip.HEAPU8.subarray(h,h+A),x=Buffer.from(v);if(p===0)return this.fileSources.set(r,x),x;if(o.asyncDecompress)return new Promise((C,R)=>{iU.default.inflateRaw(x,(L,U)=>{L?R(L):(this.fileSources.set(r,U),C(U))})});{let C=iU.default.inflateRawSync(x);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw ar.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,ta.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw ar.EROFS(`copyfile '${r} -> '${o}'`);if((a&ta.constants.COPYFILE_FICLONE_FORCE)!==0)throw ar.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw ar.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if((a&(ta.constants.COPYFILE_EXCL|ta.constants.COPYFILE_FICLONE_FORCE))!==0&&typeof p<"u")throw ar.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw ar.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw ar.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){let a=this.fds.get(r)?.p;if(typeof a>"u")throw ar.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw ar.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw ar.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw ar.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw ar.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw ar.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw ar.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw ar.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,lot(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw ar.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw ar.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw ar.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw ar.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw ar.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw ar.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,V.relative(Bt.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw ar.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw ar.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw ar.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw ar.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(ta.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw ar.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw ar.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw ar.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw ar.ENOTDIR(`scandir '${r}'`);if(o?.recursive)if(o?.withFileTypes){let u=Array.from(n,A=>Object.assign(this.statImpl("lstat",V.join(r,A)),{name:A,path:Bt.dot}));for(let A of u){if(!A.isDirectory())continue;let p=V.join(A.path,A.name),h=this.listings.get(V.join(a,p));for(let E of h)u.push(Object.assign(this.statImpl("lstat",V.join(r,p,E)),{name:E,path:p}))}return u}else{let u=[...n];for(let A of u){let p=this.listings.get(V.join(a,A));if(!(typeof p>"u"))for(let h of p)u.push(V.join(A,h))}return u}else return o?.withFileTypes?Array.from(n,u=>Object.assign(this.statImpl("lstat",V.join(r,u)),{name:u,path:void 0})):[...n]}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw ar.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw ar.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw ar.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw ar.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw ar.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw ar.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=V.resolve(Bt.root,r);return ny(this,n,o,a)}unwatchFile(r,o){let a=V.resolve(Bt.root,r);return Mg(this,a,o)}}});function _le(t,e,r=Buffer.alloc(0),o){let a=new zi(r),n=I=>I===e||I.startsWith(`${e}/`)?I.slice(0,e.length):null,u=async(I,v)=>()=>a,A=(I,v)=>a,p={...t},h=new Tn(p),E=new Hp({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o?.typeCheck});return Kw(Ule.default,new qp(E)),a}var Ule,Hle=Et(()=>{St();Ule=$e(ve("fs"));sU()});var qle=Et(()=>{Lle();sU();Hle()});var x1={};Vt(x1,{DEFAULT_COMPRESSION_LEVEL:()=>Mle,LibzipError:()=>Rb,ZipFS:()=>zi,ZipOpenFS:()=>Jl,getArchivePart:()=>rU,getLibzipPromise:()=>uot,getLibzipSync:()=>cot,makeEmptyArchive:()=>Fb,mountMemoryDrive:()=>_le});function cot(){return b1()}async function uot(){return b1()}var jle,nA=Et(()=>{$4();jle=$e(Fle());Nle();qle();Qle(()=>{let t=(0,jle.default)();return Tle(t)})});var RE,Gle=Et(()=>{St();qt();k1();RE=class extends nt{constructor(){super(...arguments);this.cwd=ge.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await TE(r,[],{cwd:ue.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}};RE.usage={description:"run a command using yarn's portable shell",details:` This command will run a command using Yarn's portable shell. Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}});var al,Yle=Et(()=>{al=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var Lb={};Vt(Lb,{fastGlobOptions:()=>Vle,isBraceExpansion:()=>oU,isGlobPattern:()=>Aot,match:()=>fot,micromatchOptions:()=>Nb});function Aot(t){if(!Tb.default.scan(t,Nb).isGlob)return!1;try{Tb.default.parse(t,Nb)}catch{return!1}return!0}function fot(t,{cwd:e,baseFs:r}){return(0,Wle.default)(t,{...Vle,cwd:ue.fromPortablePath(e),fs:FD(Kle.default,new qp(r))})}function oU(t){return Tb.default.scan(t,Nb).isBrace}var Wle,Kle,Tb,Nb,Vle,Jle=Et(()=>{St();Wle=$e(RP()),Kle=$e(ve("fs")),Tb=$e(Zo()),Nb={strictBrackets:!0},Vle={onlyDirectories:!1,onlyFiles:!1}});function aU(){}function lU(){for(let t of kd)t.kill()}function $le(t,e,r,o){return a=>{let n=a[0]instanceof iA.Transform?"pipe":a[0],u=a[1]instanceof iA.Transform?"pipe":a[1],A=a[2]instanceof iA.Transform?"pipe":a[2],p=(0,Xle.default)(t,e,{...o,stdio:[n,u,A]});return kd.add(p),kd.size===1&&(process.on("SIGINT",aU),process.on("SIGTERM",lU)),a[0]instanceof iA.Transform&&a[0].pipe(p.stdin),a[1]instanceof iA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof iA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(kd.delete(p),kd.size===0&&(process.off("SIGINT",aU),process.off("SIGTERM",lU)),E.code){case"ENOENT":a[2].write(`command not found: ${t} `),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} `),h(128);break;default:a[2].write(`uncaught error: ${E.message} `),h(1);break}}),p.on("close",E=>{kd.delete(p),kd.size===0&&(process.off("SIGINT",aU),process.off("SIGTERM",lU)),h(E!==null?E:129)})})}}}function ece(t){return e=>{let r=e[0]==="pipe"?new iA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function Ob(t,e){return NE.start(t,e)}function zle(t,e=null){let r=new iA.PassThrough,o=new Zle.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` `),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function tce(t,{prefix:e}){return{stdout:zle(r=>t.stdout.write(`${r} `),t.stdout.isTTY?e:null),stderr:zle(r=>t.stderr.write(`${r} `),t.stderr.isTTY?e:null)}}var Xle,iA,Zle,kd,zl,cU,NE,uU=Et(()=>{Xle=$e(sT()),iA=ve("stream"),Zle=ve("string_decoder"),kd=new Set;zl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},cU=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},NE=class{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new NE(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new NE(this,e),a=new cU;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var T1={};Vt(T1,{EntryCommand:()=>RE,ShellError:()=>al,execute:()=>TE,globUtils:()=>Lb});function rce(t,e,r){let o=new ll.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof ll.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new al(`Bad file descriptor: "${t}"`)}return o}function Ub(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function hot(t,e,r){let o=[],a=new ll.PassThrough;return a.on("data",n=>o.push(n)),await _b(t,e,Ub(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function nce(t,e,r){let o=t.map(async n=>{let u=await Qd(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function Mb(t){return t.match(/[^ \r\n\t]+/g)||[]}async function cce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=Mb(n);for(let A=0;A=0&&n"u"&&(t.defaultValue?u=(await Qd(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new al(`Unbound argument #${n}`):new al(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=Mb(u);for(let E=0;Eo.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?Q1({type:"variable",name:o.join(" ")},e,r):Q1({type:"number",value:a},e,r)}else return got[t.type](await Q1(t.left,e,r),await Q1(t.right,e,r))}async function Qd(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,I,v)=>{let x=JSON.stringify({type:E,fd:I}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(v)};for(let E of t){let I=!1;switch(E.type){case"redirection":{let v=await Qd(E.args,e,r);for(let x of v)h(E.subtype,E.fd,x)}break;case"argument":for(let v of E.segments)switch(v.type){case"text":u(v.text);break;case"glob":u(v.pattern),I=!0;break;case"shell":{let x=await hot(v.shell,e,r);if(v.quoted)u(x);else{let C=Mb(x);for(let R=0;R"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let x=await e.glob.match(v,{cwd:r.cwd,baseFs:e.baseFs});if(x.length===0){let C=oU(v)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new al(`No matches found: "${v}"${C}`)}for(let C of x.sort())p(C)}}if(o.size>0){let E=[];for(let[I,v]of o.entries())E.splice(E.length,0,I,String(v.length),...v);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function F1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=ue.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return $le(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return ece(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:I,stdout:v,stderr:x}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=I,r.stdout=v,r.stderr=x}})}function dot(t,e,r){return o=>{let a=new ll.PassThrough,n=_b(t,e,Ub(r,{stdin:a}));return{stdin:a,promise:n}}}function mot(t,e,r){return o=>{let a=new ll.PassThrough,n=_b(t,e,r);return{stdin:a,promise:n}}}function ice(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,F1([...e,"__ysh_run_procedure",a],r,o)}}async function sce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Qd(o.args,e,r),h=await nce(o.envs,e,r);A=o.envs.length?F1(p,e,Ub(u,{environment:h})):F1(p,e,u)}break;case"subshell":{let p=await Qd(o.args,e,r),h=dot(o.subshell,e,u);A=ice(h,p,e,u)}break;case"group":{let p=await Qd(o.args,e,r),h=mot(o.group,e,u);A=ice(h,p,e,u)}break;case"envs":{let p=await nce(o.envs,e,r);u.environment={...u.environment,...p},A=F1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=Ob(A,{stdin:new zl(u.stdin),stdout:new zl(u.stdout),stderr:new zl(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function yot(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return oce.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=tce(r,{prefix:p});return r.backgroundJobs.push(sce(t,e,Ub(r,{stdout:h,stderr:E})).catch(I=>E.write(`${I.message} `)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(uy(t))}' has ended `)})),0}return await sce(t,e,r)}async function Eot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await yot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof al))throw p;return r.stderr.write(`${p.message} `),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function _b(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await Eot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function uce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>R1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>R1(e));case"arithmetic":return AU(t.arithmetic);case"shell":return fU(t.shell);default:return!1}}function R1(t){switch(t.type){case"redirection":return t.args.some(e=>R1(e));case"argument":return t.segments.some(e=>uce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function AU(t){switch(t.type){case"variable":return uce(t);case"number":return!1;default:return AU(t.left)||AU(t.right)}}function fU(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=fU(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>R1(n)))||r.args.some(a=>R1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function TE(t,e=[],{baseFs:r=new Tn,builtins:o={},cwd:a=ue.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=Lb}={}){let I={};for(let[C,R]of Object.entries(n))typeof R<"u"&&(I[C]=R);let v=new Map(pot);for(let[C,R]of Object.entries(o))v.set(C,R);u===null&&(u=new ll.PassThrough,u.end());let x=ND(t,E);if(!fU(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let R=C.chain;for(;R.then;)R=R.then.chain;R.type==="command"&&(R.args=R.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await _b(x,{args:e,baseFs:r,builtins:v,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:I,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{["?"]:0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var oce,ace,ll,lce,pot,got,k1=Et(()=>{St();Nl();oce=$e(IN()),ace=ve("os"),ll=ve("stream"),lce=ve("timers/promises");Gle();Yle();Jle();uU();uU();pot=new Map([["cd",async([t=(0,ace.homedir)(),...e],r,o)=>{let a=V.resolve(o.cwd,ue.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new al(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new al(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${ue.fromPortablePath(r.cwd)} `),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} `),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new al("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new al(`sleep: invalid time interval '${t}'`);return await(0,lce.setTimeout)(1e3*o,0)}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await Ob(o,{stdin:new zl(r.stdin),stdout:new zl(r.stdout),stderr:new zl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let I=t[h++],{type:v,fd:x}=JSON.parse(I),C=J=>{switch(x){case null:case 0:u.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},R=J=>{switch(x){case null:case 1:A.push(J);break;case 2:p.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let J=h;Je.baseFs.createReadStream(V.resolve(r.cwd,ue.toPortablePath(t[J]))));break;case"<<<":C(()=>{let te=new ll.PassThrough;return process.nextTick(()=>{te.write(`${t[J]} `),te.end()}),te});break;case"<&":C(()=>rce(Number(t[J]),1,r));break;case">":case">>":{let te=V.resolve(r.cwd,ue.toPortablePath(t[J]));R(te==="/dev/null"?new ll.Writable({autoDestroy:!0,emitClose:!0,write(ae,fe,ce){setImmediate(ce)}}):e.baseFs.createWriteStream(te,v===">>"?{flags:"a"}:void 0))}break;case">&":R(rce(Number(t[J]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${v}"`)}}if(u.length>0){let I=new ll.PassThrough;o=I;let v=x=>{if(x===u.length)I.end();else{let C=u[x]();C.pipe(I,{end:!1}),C.on("end",()=>{v(x+1)})}};v(0)}if(A.length>0){let I=new ll.PassThrough;a=I;for(let v of A)I.pipe(v)}if(p.length>0){let I=new ll.PassThrough;n=I;for(let v of p)I.pipe(v)}let E=await Ob(F1(t.slice(h+1),e,r),{stdin:new zl(o),stdout:new zl(a),stderr:new zl(n)}).run();return await Promise.all(A.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),await Promise.all(p.map(I=>new Promise((v,x)=>{I.on("error",C=>{x(C)}),I.on("close",()=>{v()}),I.end()}))),E}]]);got={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Hb=_((r4t,Ace)=>{function Cot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r{var fce=pd(),wot=Hb(),Iot=Hl(),Bot=pE(),vot=1/0,pce=fce?fce.prototype:void 0,hce=pce?pce.toString:void 0;function gce(t){if(typeof t=="string")return t;if(Iot(t))return wot(t,gce)+"";if(Bot(t))return hce?hce.call(t):"";var e=t+"";return e=="0"&&1/t==-vot?"-0":e}dce.exports=gce});var N1=_((i4t,yce)=>{var Dot=mce();function Sot(t){return t==null?"":Dot(t)}yce.exports=Sot});var pU=_((s4t,Ece)=>{function Pot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o{var bot=pU();function xot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:bot(t,e,r)}Cce.exports=xot});var hU=_((a4t,Ice)=>{var kot="\\ud800-\\udfff",Qot="\\u0300-\\u036f",Fot="\\ufe20-\\ufe2f",Rot="\\u20d0-\\u20ff",Tot=Qot+Fot+Rot,Not="\\ufe0e\\ufe0f",Lot="\\u200d",Oot=RegExp("["+Lot+kot+Tot+Not+"]");function Mot(t){return Oot.test(t)}Ice.exports=Mot});var vce=_((l4t,Bce)=>{function Uot(t){return t.split("")}Bce.exports=Uot});var Fce=_((c4t,Qce)=>{var Dce="\\ud800-\\udfff",_ot="\\u0300-\\u036f",Hot="\\ufe20-\\ufe2f",qot="\\u20d0-\\u20ff",jot=_ot+Hot+qot,Got="\\ufe0e\\ufe0f",Yot="["+Dce+"]",gU="["+jot+"]",dU="\\ud83c[\\udffb-\\udfff]",Wot="(?:"+gU+"|"+dU+")",Sce="[^"+Dce+"]",Pce="(?:\\ud83c[\\udde6-\\uddff]){2}",bce="[\\ud800-\\udbff][\\udc00-\\udfff]",Kot="\\u200d",xce=Wot+"?",kce="["+Got+"]?",Vot="(?:"+Kot+"(?:"+[Sce,Pce,bce].join("|")+")"+kce+xce+")*",Jot=kce+xce+Vot,zot="(?:"+[Sce+gU+"?",gU,Pce,bce,Yot].join("|")+")",Xot=RegExp(dU+"(?="+dU+")|"+zot+Jot,"g");function Zot(t){return t.match(Xot)||[]}Qce.exports=Zot});var Tce=_((u4t,Rce)=>{var $ot=vce(),eat=hU(),tat=Fce();function rat(t){return eat(t)?tat(t):$ot(t)}Rce.exports=rat});var Lce=_((A4t,Nce)=>{var nat=wce(),iat=hU(),sat=Tce(),oat=N1();function aat(t){return function(e){e=oat(e);var r=iat(e)?sat(e):void 0,o=r?r[0]:e.charAt(0),a=r?nat(r,1).join(""):e.slice(1);return o[t]()+a}}Nce.exports=aat});var Mce=_((f4t,Oce)=>{var lat=Lce(),cat=lat("toUpperCase");Oce.exports=cat});var mU=_((p4t,Uce)=>{var uat=N1(),Aat=Mce();function fat(t){return Aat(uat(t).toLowerCase())}Uce.exports=fat});var _ce=_((h4t,qb)=>{function pat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,I=11,v=12,x=13,C=14,R=15,L=16,U=17,J=0,te=1,ae=2,fe=3,ce=4;function me(g,Ee){return 55296<=g.charCodeAt(Ee)&&g.charCodeAt(Ee)<=56319&&56320<=g.charCodeAt(Ee+1)&&g.charCodeAt(Ee+1)<=57343}function he(g,Ee){Ee===void 0&&(Ee=0);var Se=g.charCodeAt(Ee);if(55296<=Se&&Se<=56319&&Ee=1){var le=g.charCodeAt(Ee-1),ne=Se;return 55296<=le&&le<=56319?(le-55296)*1024+(ne-56320)+65536:ne}return Se}function Be(g,Ee,Se){var le=[g].concat(Ee).concat([Se]),ne=le[le.length-2],ee=Se,Ie=le.lastIndexOf(C);if(Ie>1&&le.slice(1,Ie).every(function(H){return H==o})&&[o,x,U].indexOf(g)==-1)return ae;var Fe=le.lastIndexOf(a);if(Fe>0&&le.slice(1,Fe).every(function(H){return H==a})&&[v,a].indexOf(ne)==-1)return le.filter(function(H){return H==a}).length%2==1?fe:ce;if(ne==t&&ee==e)return J;if(ne==r||ne==t||ne==e)return ee==C&&Ee.every(function(H){return H==o})?ae:te;if(ee==r||ee==t||ee==e)return te;if(ne==u&&(ee==u||ee==A||ee==h||ee==E))return J;if((ne==h||ne==A)&&(ee==A||ee==p))return J;if((ne==E||ne==p)&&ee==p)return J;if(ee==o||ee==R)return J;if(ee==n)return J;if(ne==v)return J;var At=le.indexOf(o)!=-1?le.lastIndexOf(o)-1:le.length-2;return[x,U].indexOf(le[At])!=-1&&le.slice(At+1,-1).every(function(H){return H==o})&&ee==C||ne==R&&[L,U].indexOf(ee)!=-1?J:Ee.indexOf(a)!=-1?ae:ne==a&&ee==a?J:te}this.nextBreak=function(g,Ee){if(Ee===void 0&&(Ee=0),Ee<0)return 0;if(Ee>=g.length-1)return g.length;for(var Se=we(he(g,Ee)),le=[],ne=Ee+1;ne{var hat=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,jb;function gat(){if(jb)return jb;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return jb=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=_ce(),e=new t;return jb=r=>e.splitGraphemes(r)}}Hce.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(hat)||[t,t,void 0],p=gat()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});var rn,L1=Et(()=>{rn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.1.1"});function Vce(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Wu(t===null?0:t);return!r&&t===null?Mt(e,a,"grey"):a}function yU(t,{configuration:e,json:r}){let o=Vce(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=wr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return Zy(e,o,n)}async function LE({configuration:t,stdout:e,forceError:r},o){let a=await Nt.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let u=!1,A=!1;for(let p of o)typeof p.option<"u"&&(p.error||r?(A=!0,n.reportError(50,p.message)):(u=!0,n.reportWarning(50,p.message)),p.callback?.());u&&!A&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Wce,Gb,dat,jce,Gce,Ah,Kce,Yce,mat,yat,Yb,Eat,Nt,O1=Et(()=>{Wce=$e(qce()),Gb=$e(td());fS();Yl();L1();jl();dat="\xB7",jce=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Gce=80,Ah=Gb.default.GITHUB_ACTIONS?{start:t=>`::group::${t} `,end:t=>`::endgroup:: `}:Gb.default.TRAVIS?{start:t=>`travis_fold:start:${t} `,end:t=>`travis_fold:end:${t} `}:Gb.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} `,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Kce=Ah!==null,Yce=new Date,mat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,yat=t=>t,Yb=yat({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),Eat=mat&&Object.keys(Yb).find(t=>{let e=Yb[t];return!(e.date&&(e.date[0]!==Yce.getDate()||e.date[1]!==Yce.getMonth()+1))})||"default";Nt=class extends Xs{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:I=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(XI(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=I,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let v=r.get("progressBarStyle")||Eat;if(!Object.hasOwn(Yb,v))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=Yb[v];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,yd(r.configuration,`Yarn ${rn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,Ah!==null&&!this.json&&this.includeInfos&&this.stdout.write(Ah.start(r))},reportFooter:A=>{if(this.indent-=1,Ah!==null&&!this.json&&this.includeInfos){this.stdout.write(Ah.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Mt(this.configuration,A,yt.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!Ah)return;let a=`${Ah.start(r)}${o}${Ah.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Mt(this.configuration,Date.now()-this.startTime,yt.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} `),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} `);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Gce&&(this.progressFrame=(this.progressFrame+1)%jce.length,this.progressTime=r);let o=jce[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Mt(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} `)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Gce)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Wce.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Vce(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Mt(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?yU(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${dat} `}}});var un={};Vt(un,{PackageManager:()=>Xce,detectPackageManager:()=>Zce,executePackageAccessibleBinary:()=>nue,executePackageScript:()=>Wb,executePackageShellcode:()=>EU,executeWorkspaceAccessibleBinary:()=>Sat,executeWorkspaceLifecycleScript:()=>tue,executeWorkspaceScript:()=>eue,getPackageAccessibleBinaries:()=>Kb,getWorkspaceAccessibleBinaries:()=>rue,hasPackageScript:()=>Bat,hasWorkspaceScript:()=>CU,isNodeScript:()=>wU,makeScriptEnv:()=>M1,maybeExecuteWorkspaceLifecycleScript:()=>Dat,prepareExternalProject:()=>Iat});async function fh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await oe.writeFilePromise(V.format({dir:t,name:e,ext:".cmd"}),a)}await oe.writeFilePromise(V.join(t,e),`#!/bin/sh exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" `,{mode:493})}async function Zce(t){let e=await Ot.tryFind(t);if(e?.packageManager){let o=UP(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await oe.readFilePromise(V.join(t,dr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:oe.existsSync(V.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:oe.existsSync(V.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function M1({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,I]of Object.entries(n))typeof I<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=I);let A=ue.fromPortablePath(r);u.BERRY_BIN_FOLDER=ue.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?ue.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([fh(r,"node",process.execPath),...rn!==null?[fh(r,"run",process.execPath,[p,"run"]),fh(r,"yarn",process.execPath,[p]),fh(r,"yarnpkg",process.execPath,[p]),fh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=ue.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=ue.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${ue.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${ue.sep}yarn`,u.npm_node_execpath=`${A}${ue.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),I=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=fn(e),u.npm_package_version=I;let v;if(E)v=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${qr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),R={project:t,report:new Nt({stdout:new ph.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,R));if(!L)throw new Error(`The package ${qr(t.configuration,x)} isn't supported by any of the available linkers`);v=await L.findPackageLocation(x,R)}u.npm_package_json=ue.fromPortablePath(V.join(v,dr.manifest))}let h=rn!==null?`yarn/${rn}`:`yarn/${Df("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,I,v)=>await fh(r,E,I,v)),u}async function Iat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await wat(async()=>{await oe.mktempPromise(async u=>{let A=V.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:ue.fromPortablePath(t),report:o}),I=n&&Hc(n)?r1(n):n,v=I?ba(I):"an external project";h.write(`Packing ${v} from sources `);let x=await Zce(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason} `),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn `),C="Yarn");let R=C==="Yarn"&&!x?.packageManagerField;await oe.mktempPromise(async L=>{let U=await M1({binFolder:L,ignoreCorepack:R}),te=new Map([["Yarn Classic",async()=>{let fe=a!==null?["workspace",a]:[],ce=V.join(t,dr.manifest),me=await oe.readFilePromise(ce),he=await Gc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(he.code!==0)return he.code;await oe.writeFilePromise(ce,me),await oe.appendFilePromise(V.join(t,".npmignore"),`/.yarn `),h.write(` `),delete U.NODE_ENV;let Be=await Gc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(Be.code!==0)return Be.code;h.write(` `);let we=await Gc("yarn",[...fe,"pack","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return we.code!==0?we.code:0}],["Yarn",async()=>{let fe=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ce=V.join(t,dr.lockfile);await oe.existsPromise(ce)||await oe.writeFilePromise(ce,"");let me=await Gc("yarn",[...fe,"pack","--install-if-needed","--filename",ue.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return me.code!==0?me.code:0}],["npm",async()=>{if(a!==null){let Ee=new ph.PassThrough,Se=Vy(Ee);Ee.pipe(h,{end:!1});let le=await Gc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:Ee,stderr:E,end:0});if(Ee.end(),le.code!==0)return h.end(),E.end(),le.code;let ne=(await Se).toString().trim();if(!kf(ne,">=7.x")){let ee=eA(null,"npm"),Ie=In(ee,ne),Fe=In(ee,">=7.x");throw new Error(`Workspaces aren't supported by ${jn(r,Ie)}; please upgrade to ${jn(r,Fe)} (npm has been detected as the primary package manager for ${Mt(r,t,yt.PATH)})`)}}let fe=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ce=await Gc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ce.code!==0)return ce.code;let me=new ph.PassThrough,he=Vy(me);me.pipe(h);let Be=await Gc("npm",["pack","--silent",...fe],{cwd:t,env:U,stdin:p,stdout:me,stderr:E});if(Be.code!==0)return Be.code;let we=(await he).toString().trim().replace(/^.*\n/s,""),g=V.resolve(t,ue.toPortablePath(we));return await oe.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let ae=await te();if(!(ae===0||typeof ae>"u"))throw oe.detachTemp(u),new zt(58,`Packing the package failed (exit code ${ae}, logs can be found here: ${Mt(r,A,yt.PATH)})`)})})})}async function Bat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return CU(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r.configuration,t)} not found in the project`);return await Jl.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Nt({stdout:new ph.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${qr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),I=new gn(E,{baseFs:n});return(await Ot.find(Bt.dot,{baseFs:I})).scripts.has(e)})}async function Wb(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{manifest:h,env:E,cwd:I}=await $ce(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),v=h.scripts.get(e);if(typeof v>"u")return 1;let x=async()=>await TE(v,r,{cwd:I,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(R=>R.wrapScriptExecution,x,a,t,e,{script:v,args:r,cwd:I,env:E,stdin:n,stdout:u,stderr:A}))()})}async function EU(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await oe.mktempPromise(async p=>{let{env:h,cwd:E}=await $ce(t,{project:a,binFolder:p,cwd:o});return await TE(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function vat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await M1({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await IU(e,await rue(t)),typeof r>"u"&&(r=V.dirname(await oe.realpathPromise(V.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function $ce(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return vat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${qr(e.configuration,t)} not found in the project`);return await Jl.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Nt({stdout:new ph.PassThrough,configuration:p})},I=h.find(L=>L.supportsPackage(u,E));if(!I)throw new Error(`The package ${qr(e.configuration,u)} isn't supported by any of the available linkers`);let v=await M1({project:e,locator:t,binFolder:r,lifecycleScript:a});await IU(r,await Kb(t,{project:e}));let x=await I.findPackageLocation(u,E),C=new gn(x,{baseFs:A}),R=await Ot.find(Bt.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:R,binFolder:r,env:v,cwd:o}})}async function eue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Wb(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function CU(t,e){return t.manifest.scripts.has(e)}async function tue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await oe.mktempPromise(async u=>{let A=V.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${ue.fromPortablePath(t.cwd)}") `,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:qr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let I=await eue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),I!==0)throw oe.detachTemp(u),new zt(36,`${(0,Jce.default)(e)} script failed (exit code ${Mt(a,I,yt.NUMBER)}, logs can be found here: ${Mt(a,A,yt.PATH)}); run ${Mt(a,`yarn ${e}`,yt.CODE)} to investigate`)})}async function Dat(t,e,r){CU(t,e)&&await tue(t,e,r)}function wU(t){let e=V.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=oe.openSync(t,"r")}catch{return!0}try{oe.readSync(o,r,0,r.length,0)}finally{oe.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function Kb(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${qr(r,t)} not found in the project`);let n=new ph.Writable,u=r.getLinkers(),A={project:e,report:new Nt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let I=e.storedResolutions.get(E.descriptorHash);if(!I)throw new Error(`Assertion failed: The resolution (${jn(r,E)}) should have been registered`);p.add(I)}let h=await Promise.all(Array.from(p,async E=>{let I=e.storedPackages.get(E);if(!I)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(I.bin.size===0)return sl.skip;let v=u.find(C=>C.supportsPackage(I,A));if(!v)return sl.skip;let x=null;try{x=await v.findPackageLocation(I,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return sl.skip;throw C}return{dependency:I,packageLocation:x}}));for(let E of h){if(E===sl.skip)continue;let{dependency:I,packageLocation:v}=E;for(let[x,C]of I.bin){let R=V.resolve(v,C);o.set(x,[I,ue.fromPortablePath(R),wU(R)])}}return o}async function rue(t){return await Kb(t.anchoredLocator,{project:t.project})}async function IU(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?fh(t,r,process.execPath,[o]):fh(t,r,o,[])))}async function nue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await Kb(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${qr(a.configuration,t)}`);return await oe.mktempPromise(async I=>{let[,v]=E,x=await M1({project:a,locator:t,binFolder:I});await IU(x.BERRY_BIN_FOLDER,h);let C=wU(ue.toPortablePath(v))?Gc(process.execPath,[...p,v,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Gc(v,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),R;try{R=await C}finally{await oe.removePromise(x.BERRY_BIN_FOLDER)}return R.code})}async function Sat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await nue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var Jce,zce,ph,Xce,Cat,wat,BU=Et(()=>{St();St();nA();k1();Jce=$e(mU()),zce=$e(id()),ph=ve("stream");fE();Yl();O1();L1();Db();jl();ql();Qf();bo();Xce=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(Xce||{});Cat=2,wat=(0,zce.default)(Cat)});var OE=_((L4t,sue)=>{"use strict";var iue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);sue.exports=t=>t?Object.keys(t).map(e=>[iue.has(e)?iue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var UE=_((O4t,hue)=>{"use strict";var oue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Pat=ve("events"),aue=ve("stream"),lue=ve("string_decoder").StringDecoder,Mf=Symbol("EOF"),Uf=Symbol("maybeEmitEnd"),hh=Symbol("emittedEnd"),Vb=Symbol("emittingEnd"),U1=Symbol("emittedError"),Jb=Symbol("closed"),cue=Symbol("read"),zb=Symbol("flush"),uue=Symbol("flushChunk"),ka=Symbol("encoding"),_f=Symbol("decoder"),Xb=Symbol("flowing"),_1=Symbol("paused"),ME=Symbol("resume"),Fs=Symbol("bufferLength"),vU=Symbol("bufferPush"),DU=Symbol("bufferShift"),Fo=Symbol("objectMode"),Ro=Symbol("destroyed"),SU=Symbol("emitData"),Aue=Symbol("emitEnd"),PU=Symbol("emitEnd2"),Hf=Symbol("async"),H1=t=>Promise.resolve().then(t),fue=global._MP_NO_ITERATOR_SYMBOLS_!=="1",bat=fue&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),xat=fue&&Symbol.iterator||Symbol("iterator not implemented"),kat=t=>t==="end"||t==="finish"||t==="prefinish",Qat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Fat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Zb=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[ME](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},bU=class extends Zb{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};hue.exports=class pue extends aue{constructor(e){super(),this[Xb]=!1,this[_1]=!1,this.pipes=[],this.buffer=[],this[Fo]=e&&e.objectMode||!1,this[Fo]?this[ka]=null:this[ka]=e&&e.encoding||null,this[ka]==="buffer"&&(this[ka]=null),this[Hf]=e&&!!e.async||!1,this[_f]=this[ka]?new lue(this[ka]):null,this[Mf]=!1,this[hh]=!1,this[Vb]=!1,this[Jb]=!1,this[U1]=null,this.writable=!0,this.readable=!0,this[Fs]=0,this[Ro]=!1}get bufferLength(){return this[Fs]}get encoding(){return this[ka]}set encoding(e){if(this[Fo])throw new Error("cannot set encoding in objectMode");if(this[ka]&&e!==this[ka]&&(this[_f]&&this[_f].lastNeed||this[Fs]))throw new Error("cannot change encoding");this[ka]!==e&&(this[_f]=e?new lue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[_f].write(r)))),this[ka]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Fo]}set objectMode(e){this[Fo]=this[Fo]||!!e}get async(){return this[Hf]}set async(e){this[Hf]=this[Hf]||!!e}write(e,r,o){if(this[Mf])throw new Error("write after end");if(this[Ro])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[Hf]?H1:n=>n();return!this[Fo]&&!Buffer.isBuffer(e)&&(Fat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):Qat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Fo]?(this.flowing&&this[Fs]!==0&&this[zb](!0),this.flowing?this.emit("data",e):this[vU](e),this[Fs]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[ka]&&!this[_f].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[ka]&&(e=this[_f].write(e)),this.flowing&&this[Fs]!==0&&this[zb](!0),this.flowing?this.emit("data",e):this[vU](e),this[Fs]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[Fs]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Ro])return null;if(this[Fs]===0||e===0||e>this[Fs])return this[Uf](),null;this[Fo]&&(e=null),this.buffer.length>1&&!this[Fo]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[Fs])]);let r=this[cue](e||null,this.buffer[0]);return this[Uf](),r}[cue](e,r){return e===r.length||e===null?this[DU]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[Fs]-=e),this.emit("data",r),!this.buffer.length&&!this[Mf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Mf]=!0,this.writable=!1,(this.flowing||!this[_1])&&this[Uf](),this}[ME](){this[Ro]||(this[_1]=!1,this[Xb]=!0,this.emit("resume"),this.buffer.length?this[zb]():this[Mf]?this[Uf]():this.emit("drain"))}resume(){return this[ME]()}pause(){this[Xb]=!1,this[_1]=!0}get destroyed(){return this[Ro]}get flowing(){return this[Xb]}get paused(){return this[_1]}[vU](e){this[Fo]?this[Fs]+=1:this[Fs]+=e.length,this.buffer.push(e)}[DU](){return this.buffer.length&&(this[Fo]?this[Fs]-=1:this[Fs]-=this.buffer[0].length),this.buffer.shift()}[zb](e){do;while(this[uue](this[DU]()));!e&&!this.buffer.length&&!this[Mf]&&this.emit("drain")}[uue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Ro])return;let o=this[hh];return r=r||{},e===oue.stdout||e===oue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new bU(this,e,r):new Zb(this,e,r)),this[Hf]?H1(()=>this[ME]()):this[ME]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[ME]():e==="readable"&&this[Fs]!==0?super.emit("readable"):kat(e)&&this[hh]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[U1]&&(this[Hf]?H1(()=>r.call(this,this[U1])):r.call(this,this[U1])),o}get emittedEnd(){return this[hh]}[Uf](){!this[Vb]&&!this[hh]&&!this[Ro]&&this.buffer.length===0&&this[Mf]&&(this[Vb]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[Jb]&&this.emit("close"),this[Vb]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Ro&&this[Ro])return;if(e==="data")return r?this[Hf]?H1(()=>this[SU](r)):this[SU](r):!1;if(e==="end")return this[Aue]();if(e==="close"){if(this[Jb]=!0,!this[hh]&&!this[Ro])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[U1]=r;let n=super.emit("error",r);return this[Uf](),n}else if(e==="resume"){let n=super.emit("resume");return this[Uf](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Uf](),a}[SU](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Uf](),r}[Aue](){this[hh]||(this[hh]=!0,this.readable=!1,this[Hf]?H1(()=>this[PU]()):this[PU]())}[PU](){if(this[_f]){let r=this[_f].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Fo]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[Fo]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Fo]?Promise.reject(new Error("cannot concat in objectMode")):this[ka]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Ro,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[bat](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Mf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Mf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Ro,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[xat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Ro]?(e?this.emit("error",e):this.emit(Ro),this):(this[Ro]=!0,this.buffer.length=0,this[Fs]=0,typeof this.close=="function"&&!this[Jb]&&this.close(),e?this.emit("error",e):this.emit(Ro),this)}static isStream(e){return!!e&&(e instanceof pue||e instanceof aue||e instanceof Pat&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var due=_((M4t,gue)=>{var Rat=ve("zlib").constants||{ZLIB_VERNUM:4736};gue.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Rat))});var GU=_(cl=>{"use strict";var RU=ve("assert"),gh=ve("buffer").Buffer,Eue=ve("zlib"),Fd=cl.constants=due(),Tat=UE(),mue=gh.concat,Rd=Symbol("_superWrite"),HE=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},Nat=Symbol("opts"),q1=Symbol("flushFlag"),yue=Symbol("finishFlushFlag"),jU=Symbol("fullFlushFlag"),ti=Symbol("handle"),$b=Symbol("onError"),_E=Symbol("sawError"),xU=Symbol("level"),kU=Symbol("strategy"),QU=Symbol("ended"),U4t=Symbol("_defaultFullFlush"),ex=class extends Tat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[_E]=!1,this[QU]=!1,this[Nat]=e,this[q1]=e.flush,this[yue]=e.finishFlush;try{this[ti]=new Eue[r](e)}catch(o){throw new HE(o)}this[$b]=o=>{this[_E]||(this[_E]=!0,this.close(),this.emit("error",o))},this[ti].on("error",o=>this[$b](new HE(o))),this.once("end",()=>this.close)}close(){this[ti]&&(this[ti].close(),this[ti]=null,this.emit("close"))}reset(){if(!this[_E])return RU(this[ti],"zlib binding closed"),this[ti].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[jU]),this.write(Object.assign(gh.alloc(0),{[q1]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[yue]),this[QU]=!0,super.end(null,null,o)}get ended(){return this[QU]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=gh.from(e,r)),this[_E])return;RU(this[ti],"zlib binding closed");let a=this[ti]._handle,n=a.close;a.close=()=>{};let u=this[ti].close;this[ti].close=()=>{},gh.concat=h=>h;let A;try{let h=typeof e[q1]=="number"?e[q1]:this[q1];A=this[ti]._processChunk(e,h),gh.concat=mue}catch(h){gh.concat=mue,this[$b](new HE(h))}finally{this[ti]&&(this[ti]._handle=a,a.close=n,this[ti].close=u,this[ti].removeAllListeners("error"))}this[ti]&&this[ti].on("error",h=>this[$b](new HE(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Rd](gh.from(A[0]));for(let h=1;h{this.flush(a),n()};try{this[ti].params(e,r)}finally{this[ti].flush=o}this[ti]&&(this[xU]=e,this[kU]=r)}}}},TU=class extends qf{constructor(e){super(e,"Deflate")}},NU=class extends qf{constructor(e){super(e,"Inflate")}},FU=Symbol("_portable"),LU=class extends qf{constructor(e){super(e,"Gzip"),this[FU]=e&&!!e.portable}[Rd](e){return this[FU]?(this[FU]=!1,e[9]=255,super[Rd](e)):super[Rd](e)}},OU=class extends qf{constructor(e){super(e,"Gunzip")}},MU=class extends qf{constructor(e){super(e,"DeflateRaw")}},UU=class extends qf{constructor(e){super(e,"InflateRaw")}},_U=class extends qf{constructor(e){super(e,"Unzip")}},tx=class extends ex{constructor(e,r){e=e||{},e.flush=e.flush||Fd.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Fd.BROTLI_OPERATION_FINISH,super(e,r),this[jU]=Fd.BROTLI_OPERATION_FLUSH}},HU=class extends tx{constructor(e){super(e,"BrotliCompress")}},qU=class extends tx{constructor(e){super(e,"BrotliDecompress")}};cl.Deflate=TU;cl.Inflate=NU;cl.Gzip=LU;cl.Gunzip=OU;cl.DeflateRaw=MU;cl.InflateRaw=UU;cl.Unzip=_U;typeof Eue.BrotliCompress=="function"?(cl.BrotliCompress=HU,cl.BrotliDecompress=qU):cl.BrotliCompress=cl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var qE=_((q4t,Cue)=>{var Lat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;Cue.exports=Lat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var rx=_((G4t,wue)=>{"use strict";var Oat=UE(),YU=qE(),WU=Symbol("slurp");wue.exports=class extends Oat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=YU(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=YU(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[WU](r),o&&this[WU](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[WU](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?YU(e[o]):e[o])}}});var KU=_(nx=>{"use strict";nx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);nx.code=new Map(Array.from(nx.name).map(t=>[t[1],t[0]]))});var Due=_((W4t,vue)=>{"use strict";var Mat=(t,e)=>{if(Number.isSafeInteger(t))t<0?_at(t,e):Uat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},Uat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},_at=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=Iue(a):a===0?e[o-1]=0:(r=!0,e[o-1]=Bue(a))}},Hat=t=>{let e=t[0],r=e===128?jat(t.slice(1,t.length)):e===255?qat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},qat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=Iue(n):n===0?u=n:(o=!0,u=Bue(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},jat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},Iue=t=>(255^t)&255,Bue=t=>(255^t)+1&255;vue.exports={encode:Mat,parse:Hat}});var GE=_((K4t,Pue)=>{"use strict";var VU=KU(),jE=ve("path").posix,Sue=Due(),JU=Symbol("slurp"),ul=Symbol("type"),ZU=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[ul]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Td(e,r,100),this.mode=dh(e,r+100,8),this.uid=dh(e,r+108,8),this.gid=dh(e,r+116,8),this.size=dh(e,r+124,12),this.mtime=zU(e,r+136,12),this.cksum=dh(e,r+148,12),this[JU](o),this[JU](a,!0),this[ul]=Td(e,r+156,1),this[ul]===""&&(this[ul]="0"),this[ul]==="0"&&this.path.substr(-1)==="/"&&(this[ul]="5"),this[ul]==="5"&&(this.size=0),this.linkpath=Td(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Td(e,r+265,32),this.gname=Td(e,r+297,32),this.devmaj=dh(e,r+329,8),this.devmin=dh(e,r+337,8),e[r+475]!==0){let u=Td(e,r+345,155);this.path=u+"/"+this.path}else{let u=Td(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=zU(e,r+476,12),this.ctime=zU(e,r+488,12)}let n=8*32;for(let u=r;u=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=Gat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=Nd(e,r,100,n)||this.needPax,this.needPax=mh(e,r+100,8,this.mode)||this.needPax,this.needPax=mh(e,r+108,8,this.uid)||this.needPax,this.needPax=mh(e,r+116,8,this.gid)||this.needPax,this.needPax=mh(e,r+124,12,this.size)||this.needPax,this.needPax=XU(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[ul].charCodeAt(0),this.needPax=Nd(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Nd(e,r+265,32,this.uname)||this.needPax,this.needPax=Nd(e,r+297,32,this.gname)||this.needPax,this.needPax=mh(e,r+329,8,this.devmaj)||this.needPax,this.needPax=mh(e,r+337,8,this.devmin)||this.needPax,this.needPax=Nd(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=Nd(e,r+345,155,u)||this.needPax:(this.needPax=Nd(e,r+345,130,u)||this.needPax,this.needPax=XU(e,r+476,12,this.atime)||this.needPax,this.needPax=XU(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p{let o=t,a="",n,u=jE.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=jE.dirname(o),o=jE.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,100-1),a,!0]:(o=jE.join(jE.basename(a),o),a=jE.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,100-1),"",!0])}return n},Td=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),zU=(t,e,r)=>Yat(dh(t,e,r)),Yat=t=>t===null?null:new Date(t*1e3),dh=(t,e,r)=>t[e]&128?Sue.parse(t.slice(e,e+r)):Kat(t,e,r),Wat=t=>isNaN(t)?null:t,Kat=(t,e,r)=>Wat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Vat={12:8589934591,8:2097151},mh=(t,e,r,o)=>o===null?!1:o>Vat[r]||o<0?(Sue.encode(o,t.slice(e,e+r)),!0):(Jat(t,e,r,o),!1),Jat=(t,e,r,o)=>t.write(zat(o,r),e,r,"ascii"),zat=(t,e)=>Xat(Math.floor(t).toString(8),e),Xat=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",XU=(t,e,r,o)=>o===null?!1:mh(t,e,r,o.getTime()/1e3),Zat=new Array(156).join("\0"),Nd=(t,e,r,o)=>o===null?!1:(t.write(o+Zat,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);Pue.exports=ZU});var ix=_((V4t,bue)=>{"use strict";var $at=GE(),elt=ve("path"),j1=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new $at({path:("PaxHeader/"+elt.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n=Math.pow(10,n)&&(n+=1),n+a+o}};j1.parse=(t,e,r)=>new j1(tlt(rlt(t),e),r);var tlt=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,rlt=t=>t.replace(/\n$/,"").split(` `).reduce(nlt,Object.create(null)),nlt=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};bue.exports=j1});var YE=_((J4t,xue)=>{xue.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var sx=_((z4t,kue)=>{"use strict";kue.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var e3=_((Z4t,Que)=>{"use strict";var ox=["|","<",">","?",":"],$U=ox.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),ilt=new Map(ox.map((t,e)=>[t,$U[e]])),slt=new Map($U.map((t,e)=>[t,ox[e]]));Que.exports={encode:t=>ox.reduce((e,r)=>e.split(r).join(ilt.get(r)),t),decode:t=>$U.reduce((e,r)=>e.split(r).join(slt.get(r)),t)}});var t3=_(($4t,Rue)=>{var{isAbsolute:olt,parse:Fue}=ve("path").win32;Rue.exports=t=>{let e="",r=Fue(t);for(;olt(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=Fue(t)}return[e,t]}});var Nue=_((eUt,Tue)=>{"use strict";Tue.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var A3=_((nUt,Jue)=>{"use strict";var que=UE(),jue=ix(),Gue=GE(),oA=ve("fs"),Lue=ve("path"),sA=qE(),alt=YE(),Yue=(t,e)=>e?(t=sA(t).replace(/^\.(\/|$)/,""),alt(e)+"/"+t):sA(t),llt=16*1024*1024,Oue=Symbol("process"),Mue=Symbol("file"),Uue=Symbol("directory"),n3=Symbol("symlink"),_ue=Symbol("hardlink"),G1=Symbol("header"),ax=Symbol("read"),i3=Symbol("lstat"),lx=Symbol("onlstat"),s3=Symbol("onread"),o3=Symbol("onreadlink"),a3=Symbol("openfile"),l3=Symbol("onopenfile"),yh=Symbol("close"),cx=Symbol("mode"),c3=Symbol("awaitDrain"),r3=Symbol("ondrain"),aA=Symbol("prefix"),Hue=Symbol("hadError"),Wue=sx(),clt=e3(),Kue=t3(),Vue=Nue(),ux=Wue(class extends que{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=sA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||llt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=sA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?sA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Kue(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=clt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=sA(r.absolute||Lue.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[lx](this.statCache.get(this.absolute)):this[i3]()}emit(e,...r){return e==="error"&&(this[Hue]=!0),super.emit(e,...r)}[i3](){oA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[lx](r)})}[lx](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=Alt(e),this.emit("stat",e),this[Oue]()}[Oue](){switch(this.type){case"File":return this[Mue]();case"Directory":return this[Uue]();case"SymbolicLink":return this[n3]();default:return this.end()}}[cx](e){return Vue(e,this.type==="Directory",this.portable)}[aA](e){return Yue(e,this.prefix)}[G1](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new Gue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this[cx](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new jue({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[Uue](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[G1](),this.end()}[n3](){oA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[o3](r)})}[o3](e){this.linkpath=sA(e),this[G1](),this.end()}[_ue](e){this.type="Link",this.linkpath=sA(Lue.relative(this.cwd,e)),this.stat.size=0,this[G1](),this.end()}[Mue](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[_ue](r)}this.linkCache.set(e,this.absolute)}if(this[G1](),this.stat.size===0)return this.end();this[a3]()}[a3](){oA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[l3](r)})}[l3](e){if(this.fd=e,this[Hue])return this[yh]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[ax]()}[ax](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;oA.read(e,r,o,a,n,(u,A)=>{if(u)return this[yh](()=>this.emit("error",u));this[s3](A)})}[yh](e){oA.close(this.fd,e)}[s3](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[yh](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[yh](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;athis[r3]())}[c3](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[ax]()}}),u3=class extends ux{[i3](){this[lx](oA.lstatSync(this.absolute))}[n3](){this[o3](oA.readlinkSync(this.absolute))}[a3](){this[l3](oA.openSync(this.absolute,"r"))}[ax](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=oA.readSync(r,o,a,n,u);this[s3](A),e=!1}finally{if(e)try{this[yh](()=>{})}catch{}}}[c3](e){e()}[yh](e){oA.closeSync(this.fd),e()}},ult=Wue(class extends que{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=sA(e.path),this.mode=this[cx](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=sA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=Kue(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new Gue({path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new jue({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[aA](this.path),linkpath:this.type==="Link"?this[aA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[aA](e){return Yue(e,this.prefix)}[cx](e){return Vue(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});ux.Sync=u3;ux.Tar=ult;var Alt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";Jue.exports=ux});var Ex=_((sUt,rAe)=>{"use strict";var mx=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},flt=UE(),plt=GU(),hlt=rx(),C3=A3(),glt=C3.Sync,dlt=C3.Tar,mlt=IS(),zue=Buffer.alloc(1024),px=Symbol("onStat"),Ax=Symbol("ended"),lA=Symbol("queue"),WE=Symbol("current"),Ld=Symbol("process"),fx=Symbol("processing"),Xue=Symbol("processJob"),cA=Symbol("jobs"),f3=Symbol("jobDone"),hx=Symbol("addFSEntry"),Zue=Symbol("addTarEntry"),d3=Symbol("stat"),m3=Symbol("readdir"),gx=Symbol("onreaddir"),dx=Symbol("pipe"),$ue=Symbol("entry"),p3=Symbol("entryOpt"),y3=Symbol("writeEntryClass"),tAe=Symbol("write"),h3=Symbol("ondrain"),yx=ve("fs"),eAe=ve("path"),ylt=sx(),g3=qE(),w3=ylt(class extends flt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=g3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[y3]=C3,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new plt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[h3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[h3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[lA]=new mlt,this[cA]=0,this.jobs=+e.jobs||4,this[fx]=!1,this[Ax]=!1}[tAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[Ax]=!0,this[Ld](),this}write(e){if(this[Ax])throw new Error("write after end");return e instanceof hlt?this[Zue](e):this[hx](e),this.flowing}[Zue](e){let r=g3(eAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new mx(e.path,r,!1);o.entry=new dlt(e,this[p3](o)),o.entry.on("end",a=>this[f3](o)),this[cA]+=1,this[lA].push(o)}this[Ld]()}[hx](e){let r=g3(eAe.resolve(this.cwd,e));this[lA].push(new mx(e,r)),this[Ld]()}[d3](e){e.pending=!0,this[cA]+=1;let r=this.follow?"stat":"lstat";yx[r](e.absolute,(o,a)=>{e.pending=!1,this[cA]-=1,o?this.emit("error",o):this[px](e,a)})}[px](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[Ld]()}[m3](e){e.pending=!0,this[cA]+=1,yx.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[cA]-=1,r)return this.emit("error",r);this[gx](e,o)})}[gx](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[Ld]()}[Ld](){if(!this[fx]){this[fx]=!0;for(let e=this[lA].head;e!==null&&this[cA]this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[$ue](e){this[cA]+=1;try{return new this[y3](e.path,this[p3](e)).on("end",()=>this[f3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[h3](){this[WE]&&this[WE].entry&&this[WE].entry.resume()}[dx](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[hx](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),E3=class extends w3{constructor(e){super(e),this[y3]=glt}pause(){}resume(){}[d3](e){let r=this.follow?"statSync":"lstatSync";this[px](e,yx[r](e.absolute))}[m3](e,r){this[gx](e,yx.readdirSync(e.absolute))}[dx](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[hx](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[tAe](a)})}};w3.Sync=E3;rAe.exports=w3});var eC=_(W1=>{"use strict";var Elt=UE(),Clt=ve("events").EventEmitter,Qa=ve("fs"),v3=Qa.writev;if(!v3){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;v3=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var ZE=Symbol("_autoClose"),Yc=Symbol("_close"),Y1=Symbol("_ended"),Gn=Symbol("_fd"),nAe=Symbol("_finished"),Ch=Symbol("_flags"),I3=Symbol("_flush"),D3=Symbol("_handleChunk"),S3=Symbol("_makeBuf"),vx=Symbol("_mode"),Cx=Symbol("_needDrain"),zE=Symbol("_onerror"),$E=Symbol("_onopen"),B3=Symbol("_onread"),VE=Symbol("_onwrite"),wh=Symbol("_open"),jf=Symbol("_path"),Od=Symbol("_pos"),uA=Symbol("_queue"),JE=Symbol("_read"),iAe=Symbol("_readSize"),Eh=Symbol("_reading"),wx=Symbol("_remain"),sAe=Symbol("_size"),Ix=Symbol("_write"),KE=Symbol("_writing"),Bx=Symbol("_defaultFlag"),XE=Symbol("_errored"),Dx=class extends Elt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[XE]=!1,this[Gn]=typeof r.fd=="number"?r.fd:null,this[jf]=e,this[iAe]=r.readSize||16*1024*1024,this[Eh]=!1,this[sAe]=typeof r.size=="number"?r.size:1/0,this[wx]=this[sAe],this[ZE]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[Gn]=="number"?this[JE]():this[wh]()}get fd(){return this[Gn]}get path(){return this[jf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[wh](){Qa.open(this[jf],"r",(e,r)=>this[$E](e,r))}[$E](e,r){e?this[zE](e):(this[Gn]=r,this.emit("open",r),this[JE]())}[S3](){return Buffer.allocUnsafe(Math.min(this[iAe],this[wx]))}[JE](){if(!this[Eh]){this[Eh]=!0;let e=this[S3]();if(e.length===0)return process.nextTick(()=>this[B3](null,0,e));Qa.read(this[Gn],e,0,e.length,null,(r,o,a)=>this[B3](r,o,a))}}[B3](e,r,o){this[Eh]=!1,e?this[zE](e):this[D3](r,o)&&this[JE]()}[Yc](){if(this[ZE]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Qa.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[zE](e){this[Eh]=!0,this[Yc](),this.emit("error",e)}[D3](e,r){let o=!1;return this[wx]-=e,e>0&&(o=super.write(ethis[$E](e,r))}[$E](e,r){this[Bx]&&this[Ch]==="r+"&&e&&e.code==="ENOENT"?(this[Ch]="w",this[wh]()):e?this[zE](e):(this[Gn]=r,this.emit("open",r),this[I3]())}end(e,r){return e&&this.write(e,r),this[Y1]=!0,!this[KE]&&!this[uA].length&&typeof this[Gn]=="number"&&this[VE](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[Y1]?(this.emit("error",new Error("write() after end()")),!1):this[Gn]===null||this[KE]||this[uA].length?(this[uA].push(e),this[Cx]=!0,!1):(this[KE]=!0,this[Ix](e),!0)}[Ix](e){Qa.write(this[Gn],e,0,e.length,this[Od],(r,o)=>this[VE](r,o))}[VE](e,r){e?this[zE](e):(this[Od]!==null&&(this[Od]+=r),this[uA].length?this[I3]():(this[KE]=!1,this[Y1]&&!this[nAe]?(this[nAe]=!0,this[Yc](),this.emit("finish")):this[Cx]&&(this[Cx]=!1,this.emit("drain"))))}[I3](){if(this[uA].length===0)this[Y1]&&this[VE](null,0);else if(this[uA].length===1)this[Ix](this[uA].pop());else{let e=this[uA];this[uA]=[],v3(this[Gn],e,this[Od],(r,o)=>this[VE](r,o))}}[Yc](){if(this[ZE]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Qa.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},b3=class extends Sx{[wh](){let e;if(this[Bx]&&this[Ch]==="r+")try{e=Qa.openSync(this[jf],this[Ch],this[vx])}catch(r){if(r.code==="ENOENT")return this[Ch]="w",this[wh]();throw r}else e=Qa.openSync(this[jf],this[Ch],this[vx]);this[$E](null,e)}[Yc](){if(this[ZE]&&typeof this[Gn]=="number"){let e=this[Gn];this[Gn]=null,Qa.closeSync(e),this.emit("close")}}[Ix](e){let r=!0;try{this[VE](null,Qa.writeSync(this[Gn],e,0,e.length,this[Od])),r=!1}finally{if(r)try{this[Yc]()}catch{}}}};W1.ReadStream=Dx;W1.ReadStreamSync=P3;W1.WriteStream=Sx;W1.WriteStreamSync=b3});var Rx=_((lUt,fAe)=>{"use strict";var wlt=sx(),Ilt=GE(),Blt=ve("events"),vlt=IS(),Dlt=1024*1024,Slt=rx(),oAe=ix(),Plt=GU(),x3=Buffer.from([31,139]),Xl=Symbol("state"),Md=Symbol("writeEntry"),Gf=Symbol("readEntry"),k3=Symbol("nextEntry"),aAe=Symbol("processEntry"),Zl=Symbol("extendedHeader"),K1=Symbol("globalExtendedHeader"),Ih=Symbol("meta"),lAe=Symbol("emitMeta"),fi=Symbol("buffer"),Yf=Symbol("queue"),Ud=Symbol("ended"),cAe=Symbol("emittedEnd"),_d=Symbol("emit"),Fa=Symbol("unzip"),Px=Symbol("consumeChunk"),bx=Symbol("consumeChunkSub"),Q3=Symbol("consumeBody"),uAe=Symbol("consumeMeta"),AAe=Symbol("consumeHeader"),xx=Symbol("consuming"),F3=Symbol("bufferConcat"),R3=Symbol("maybeEnd"),V1=Symbol("writing"),Bh=Symbol("aborted"),kx=Symbol("onDone"),Hd=Symbol("sawValidEntry"),Qx=Symbol("sawNullBlock"),Fx=Symbol("sawEOF"),blt=t=>!0;fAe.exports=wlt(class extends Blt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[Hd]=null,this.on(kx,r=>{(this[Xl]==="begin"||this[Hd]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(kx,e.ondone):this.on(kx,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||Dlt,this.filter=typeof e.filter=="function"?e.filter:blt,this.writable=!0,this.readable=!1,this[Yf]=new vlt,this[fi]=null,this[Gf]=null,this[Md]=null,this[Xl]="begin",this[Ih]="",this[Zl]=null,this[K1]=null,this[Ud]=!1,this[Fa]=null,this[Bh]=!1,this[Qx]=!1,this[Fx]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[AAe](e,r){this[Hd]===null&&(this[Hd]=!1);let o;try{o=new Ilt(e,r,this[Zl],this[K1])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[Qx]?(this[Fx]=!0,this[Xl]==="begin"&&(this[Xl]="header"),this[_d]("eof")):(this[Qx]=!0,this[_d]("nullBlock"));else if(this[Qx]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[Md]=new Slt(o,this[Zl],this[K1]);if(!this[Hd])if(n.remain){let u=()=>{n.invalid||(this[Hd]=!0)};n.on("end",u)}else this[Hd]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[_d]("ignoredEntry",n),this[Xl]="ignore",n.resume()):n.size>0&&(this[Ih]="",n.on("data",u=>this[Ih]+=u),this[Xl]="meta"):(this[Zl]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[_d]("ignoredEntry",n),this[Xl]=n.remain?"ignore":"header",n.resume()):(n.remain?this[Xl]="body":(this[Xl]="header",n.end()),this[Gf]?this[Yf].push(n):(this[Yf].push(n),this[k3]())))}}}[aAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[Gf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[k3]()),r=!1)):(this[Gf]=null,r=!1),r}[k3](){do;while(this[aAe](this[Yf].shift()));if(!this[Yf].length){let e=this[Gf];!e||e.flowing||e.size===e.remain?this[V1]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[Q3](e,r){let o=this[Md],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[Xl]="header",this[Md]=null,o.end()),n.length}[uAe](e,r){let o=this[Md],a=this[Q3](e,r);return this[Md]||this[lAe](o),a}[_d](e,r,o){!this[Yf].length&&!this[Gf]?this.emit(e,r,o):this[Yf].push([e,r,o])}[lAe](e){switch(this[_d]("meta",this[Ih]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[Zl]=oAe.parse(this[Ih],this[Zl],!1);break;case"GlobalExtendedHeader":this[K1]=oAe.parse(this[Ih],this[K1],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[Zl]=this[Zl]||Object.create(null),this[Zl].path=this[Ih].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[Zl]=this[Zl]||Object.create(null),this[Zl].linkpath=this[Ih].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Bh]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Bh])return;if(this[Fa]===null&&e){if(this[fi]&&(e=Buffer.concat([this[fi],e]),this[fi]=null),e.lengththis[Px](n)),this[Fa].on("error",n=>this.abort(n)),this[Fa].on("end",n=>{this[Ud]=!0,this[Px]()}),this[V1]=!0;let a=this[Fa][o?"end":"write"](e);return this[V1]=!1,a}}this[V1]=!0,this[Fa]?this[Fa].write(e):this[Px](e),this[V1]=!1;let r=this[Yf].length?!1:this[Gf]?this[Gf].flowing:!0;return!r&&!this[Yf].length&&this[Gf].once("drain",o=>this.emit("drain")),r}[F3](e){e&&!this[Bh]&&(this[fi]=this[fi]?Buffer.concat([this[fi],e]):e)}[R3](){if(this[Ud]&&!this[cAe]&&!this[Bh]&&!this[xx]){this[cAe]=!0;let e=this[Md];if(e&&e.blockRemain){let r=this[fi]?this[fi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[fi]&&e.write(this[fi]),e.end()}this[_d](kx)}}[Px](e){if(this[xx])this[F3](e);else if(!e&&!this[fi])this[R3]();else{if(this[xx]=!0,this[fi]){this[F3](e);let r=this[fi];this[fi]=null,this[bx](r)}else this[bx](e);for(;this[fi]&&this[fi].length>=512&&!this[Bh]&&!this[Fx];){let r=this[fi];this[fi]=null,this[bx](r)}this[xx]=!1}(!this[fi]||this[Ud])&&this[R3]()}[bx](e){let r=0,o=e.length;for(;r+512<=o&&!this[Bh]&&!this[Fx];)switch(this[Xl]){case"begin":case"header":this[AAe](e,r),r+=512;break;case"ignore":case"body":r+=this[Q3](e,r);break;case"meta":r+=this[uAe](e,r);break;default:throw new Error("invalid state: "+this[Xl])}r{"use strict";var xlt=OE(),hAe=Rx(),tC=ve("fs"),klt=eC(),pAe=ve("path"),T3=YE();dAe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=xlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Flt(o,e),o.noResume||Qlt(o),o.file&&o.sync?Rlt(o):o.file?Tlt(o,r):gAe(o)};var Qlt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Flt=(t,e)=>{let r=new Map(e.map(n=>[T3(n),!0])),o=t.filter,a=(n,u)=>{let A=u||pAe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(pAe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(T3(n)):n=>a(T3(n))},Rlt=t=>{let e=gAe(t),r=t.file,o=!0,a;try{let n=tC.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size{let r=new hAe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),tC.stat(a,(p,h)=>{if(p)A(p);else{let E=new klt.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},gAe=t=>new hAe(t)});var IAe=_((uUt,wAe)=>{"use strict";var Nlt=OE(),Nx=Ex(),mAe=eC(),yAe=Tx(),EAe=ve("path");wAe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=Nlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?Llt(o,e):o.file?Olt(o,e,r):o.sync?Mlt(o,e):Ult(o,e)};var Llt=(t,e)=>{let r=new Nx.Sync(t),o=new mAe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),CAe(r,e)},Olt=(t,e,r)=>{let o=new Nx(t),a=new mAe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return N3(o,e),r?n.then(r,r):n},CAe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?yAe({file:EAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},N3=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return yAe({file:EAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>N3(t,e));t.add(r)}t.end()},Mlt=(t,e)=>{let r=new Nx.Sync(t);return CAe(r,e),r},Ult=(t,e)=>{let r=new Nx(t);return N3(r,e),r}});var L3=_((AUt,xAe)=>{"use strict";var _lt=OE(),BAe=Ex(),Al=ve("fs"),vAe=eC(),DAe=Tx(),SAe=ve("path"),PAe=GE();xAe.exports=(t,e,r)=>{let o=_lt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?Hlt(o,e):jlt(o,e,r)};var Hlt=(t,e)=>{let r=new BAe.Sync(t),o=!0,a,n;try{try{a=Al.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=Al.openSync(t.file,"w+");else throw p}let u=Al.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;nu.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,qlt(t,r,n,a,e)}finally{if(o)try{Al.closeSync(a)}catch{}}},qlt=(t,e,r,o,a)=>{let n=new vAe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),Glt(e,a)},jlt=(t,e,r)=>{e=Array.from(e);let o=new BAe(t),a=(u,A,p)=>{let h=(C,R)=>{C?Al.close(u,L=>p(C)):p(null,R)},E=0;if(A===0)return h(null,0);let I=0,v=Buffer.alloc(512),x=(C,R)=>{if(C)return h(C);if(I+=R,I<512&&R)return Al.read(u,v,I,v.length-I,E+I,x);if(E===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(I<512)return h(null,E);let L=new PAe(v);if(!L.cksumValid)return h(null,E);let U=512*Math.ceil(L.size/512);if(E+U+512>A||(E+=U+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),I=0,Al.read(u,v,0,512,E,x)};Al.read(u,v,0,512,E,x)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,I)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",Al.open(t.file,p,h);if(E)return A(E);Al.fstat(I,(v,x)=>{if(v)return Al.close(I,()=>A(v));a(I,x.size,(C,R)=>{if(C)return A(C);let L=new vAe.WriteStream(t.file,{fd:I,start:R});o.pipe(L),L.on("error",A),L.on("close",u),bAe(o,e)})})};Al.open(t.file,p,h)});return r?n.then(r,r):n},Glt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?DAe({file:SAe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},bAe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return DAe({file:SAe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>bAe(t,e));t.add(r)}t.end()}});var QAe=_((fUt,kAe)=>{"use strict";var Ylt=OE(),Wlt=L3();kAe.exports=(t,e,r)=>{let o=Ylt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),Klt(o),Wlt(o,e,r)};var Klt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var TAe=_((pUt,RAe)=>{var{promisify:FAe}=ve("util"),vh=ve("fs"),Vlt=t=>{if(!t)t={mode:511,fs:vh};else if(typeof t=="object")t={mode:511,fs:vh,...t};else if(typeof t=="number")t={mode:t,fs:vh};else if(typeof t=="string")t={mode:parseInt(t,8),fs:vh};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||vh.mkdir,t.mkdirAsync=FAe(t.mkdir),t.stat=t.stat||t.fs.stat||vh.stat,t.statAsync=FAe(t.stat),t.statSync=t.statSync||t.fs.statSync||vh.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||vh.mkdirSync,t};RAe.exports=Vlt});var LAe=_((hUt,NAe)=>{var Jlt=process.platform,{resolve:zlt,parse:Xlt}=ve("path"),Zlt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=zlt(t),Jlt==="win32"){let e=/[*|"<>?:]/,{root:r}=Xlt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};NAe.exports=Zlt});var HAe=_((gUt,_Ae)=>{var{dirname:OAe}=ve("path"),MAe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?MAe(t,OAe(e),e):void 0),UAe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?UAe(t,OAe(e),e):void 0}};_Ae.exports={findMade:MAe,findMadeSync:UAe}});var U3=_((dUt,jAe)=>{var{dirname:qAe}=ve("path"),O3=(t,e,r)=>{e.recursive=!1;let o=qAe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return O3(o,e).then(n=>O3(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},M3=(t,e,r)=>{let o=qAe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return M3(t,e,M3(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};jAe.exports={mkdirpManual:O3,mkdirpManualSync:M3}});var WAe=_((mUt,YAe)=>{var{dirname:GAe}=ve("path"),{findMade:$lt,findMadeSync:ect}=HAe(),{mkdirpManual:tct,mkdirpManualSync:rct}=U3(),nct=(t,e)=>(e.recursive=!0,GAe(t)===t?e.mkdirAsync(t,e):$lt(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return tct(t,e);throw a}))),ict=(t,e)=>{if(e.recursive=!0,GAe(t)===t)return e.mkdirSync(t,e);let o=ect(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return rct(t,e);throw a}};YAe.exports={mkdirpNative:nct,mkdirpNativeSync:ict}});var zAe=_((yUt,JAe)=>{var KAe=ve("fs"),sct=process.version,_3=sct.replace(/^v/,"").split("."),VAe=+_3[0]>10||+_3[0]==10&&+_3[1]>=12,oct=VAe?t=>t.mkdir===KAe.mkdir:()=>!1,act=VAe?t=>t.mkdirSync===KAe.mkdirSync:()=>!1;JAe.exports={useNative:oct,useNativeSync:act}});var rfe=_((EUt,tfe)=>{var rC=TAe(),nC=LAe(),{mkdirpNative:XAe,mkdirpNativeSync:ZAe}=WAe(),{mkdirpManual:$Ae,mkdirpManualSync:efe}=U3(),{useNative:lct,useNativeSync:cct}=zAe(),iC=(t,e)=>(t=nC(t),e=rC(e),lct(e)?XAe(t,e):$Ae(t,e)),uct=(t,e)=>(t=nC(t),e=rC(e),cct(e)?ZAe(t,e):efe(t,e));iC.sync=uct;iC.native=(t,e)=>XAe(nC(t),rC(e));iC.manual=(t,e)=>$Ae(nC(t),rC(e));iC.nativeSync=(t,e)=>ZAe(nC(t),rC(e));iC.manualSync=(t,e)=>efe(nC(t),rC(e));tfe.exports=iC});var cfe=_((CUt,lfe)=>{"use strict";var $l=ve("fs"),qd=ve("path"),Act=$l.lchown?"lchown":"chown",fct=$l.lchownSync?"lchownSync":"chownSync",ife=$l.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),nfe=(t,e,r)=>{try{return $l[fct](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},pct=(t,e,r)=>{try{return $l.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},hct=ife?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):$l.chown(t,e,r,o)}:(t,e,r,o)=>o,H3=ife?(t,e,r)=>{try{return nfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;pct(t,e,r)}}:(t,e,r)=>nfe(t,e,r),gct=process.version,sfe=(t,e,r)=>$l.readdir(t,e,r),dct=(t,e)=>$l.readdirSync(t,e);/^v4\./.test(gct)&&(sfe=(t,e,r)=>$l.readdir(t,r));var Lx=(t,e,r,o)=>{$l[Act](t,e,r,hct(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},ofe=(t,e,r,o,a)=>{if(typeof e=="string")return $l.lstat(qd.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,ofe(t,u,r,o,a)});if(e.isDirectory())q3(qd.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=qd.resolve(t,e.name);Lx(u,r,o,a)});else{let n=qd.resolve(t,e.name);Lx(n,r,o,a)}},q3=(t,e,r,o)=>{sfe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return Lx(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return Lx(t,e,r,o)}};n.forEach(h=>ofe(t,h,e,r,p))})},mct=(t,e,r,o)=>{if(typeof e=="string")try{let a=$l.lstatSync(qd.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&afe(qd.resolve(t,e.name),r,o),H3(qd.resolve(t,e.name),r,o)},afe=(t,e,r)=>{let o;try{o=dct(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return H3(t,e,r);throw a}return o&&o.length&&o.forEach(a=>mct(t,a,e,r)),H3(t,e,r)};lfe.exports=q3;q3.sync=afe});var pfe=_((wUt,j3)=>{"use strict";var ufe=rfe(),ec=ve("fs"),Ox=ve("path"),Afe=cfe(),Wc=qE(),Mx=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},Ux=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},_x=(t,e)=>t.get(Wc(e)),J1=(t,e,r)=>t.set(Wc(e),r),yct=(t,e)=>{ec.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new Ux(t,r&&r.code||"ENOTDIR")),e(r)})};j3.exports=(t,e,r)=>{t=Wc(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,I=e.cache,v=Wc(e.cwd),x=(L,U)=>{L?r(L):(J1(I,t,!0),U&&p?Afe(U,u,A,J=>x(J)):n?ec.chmod(t,a,r):r())};if(I&&_x(I,t)===!0)return x();if(t===v)return yct(t,x);if(h)return ufe(t,{mode:a}).then(L=>x(null,L),x);let R=Wc(Ox.relative(v,t)).split("/");Hx(v,R,a,I,E,v,null,x)};var Hx=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=Wc(Ox.resolve(t+"/"+p));if(_x(o,h))return Hx(h,e,r,o,a,n,u,A);ec.mkdir(h,r,ffe(h,e,r,o,a,n,u,A))},ffe=(t,e,r,o,a,n,u,A)=>p=>{p?ec.lstat(t,(h,E)=>{if(h)h.path=h.path&&Wc(h.path),A(h);else if(E.isDirectory())Hx(t,e,r,o,a,n,u,A);else if(a)ec.unlink(t,I=>{if(I)return A(I);ec.mkdir(t,r,ffe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new Mx(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,Hx(t,e,r,o,a,n,u,A))},Ect=t=>{let e=!1,r="ENOTDIR";try{e=ec.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new Ux(t,r)}};j3.exports.sync=(t,e)=>{t=Wc(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,I=Wc(e.cwd),v=L=>{J1(E,t,!0),L&&A&&Afe.sync(L,n,u),a&&ec.chmodSync(t,o)};if(E&&_x(E,t)===!0)return v();if(t===I)return Ect(I),v();if(p)return v(ufe.sync(t,o));let C=Wc(Ox.relative(I,t)).split("/"),R=null;for(let L=C.shift(),U=I;L&&(U+="/"+L);L=C.shift())if(U=Wc(Ox.resolve(U)),!_x(E,U))try{ec.mkdirSync(U,o),R=R||U,J1(E,U,!0)}catch{let te=ec.lstatSync(U);if(te.isDirectory()){J1(E,U,!0);continue}else if(h){ec.unlinkSync(U),ec.mkdirSync(U,o),R=R||U,J1(E,U,!0);continue}else if(te.isSymbolicLink())return new Mx(U,U+"/"+C.join("/"))}return v(R)}});var Y3=_((IUt,hfe)=>{var G3=Object.create(null),{hasOwnProperty:Cct}=Object.prototype;hfe.exports=t=>(Cct.call(G3,t)||(G3[t]=t.normalize("NFKD")),G3[t])});var yfe=_((BUt,mfe)=>{var gfe=ve("assert"),wct=Y3(),Ict=YE(),{join:dfe}=ve("path"),Bct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,vct=Bct==="win32";mfe.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((I,v)=>(I.length&&(v=dfe(I[I.length-1],v)),I.push(v||"/"),I),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(I=>t.get(I)),dirs:[...E.dirs].map(I=>t.get(I))}},n=h=>{let{paths:E,dirs:I}=a(h);return E.every(v=>v[0]===h)&&I.every(v=>v[0]instanceof Set&&v[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:I}=e.get(h),v=new Set;return E.forEach(x=>{let C=t.get(x);gfe.equal(C[0],h),C.length===1?t.delete(x):(C.shift(),typeof C[0]=="function"?v.add(C[0]):C[0].forEach(R=>v.add(R)))}),I.forEach(x=>{let C=t.get(x);gfe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(x):C[0].size===1?(C.shift(),v.add(C[0])):C[0].delete(h)}),o.delete(h),v.forEach(x=>u(x)),!0};return{check:n,reserve:(h,E)=>{h=vct?["win32 parallelization disabled"]:h.map(v=>wct(Ict(dfe(v))).toLowerCase());let I=new Set(h.map(v=>r(v)).reduce((v,x)=>v.concat(x)));return e.set(E,{dirs:I,paths:h}),h.forEach(v=>{let x=t.get(v);x?x.push(E):t.set(v,[E])}),I.forEach(v=>{let x=t.get(v);x?x[x.length-1]instanceof Set?x[x.length-1].add(E):x.push(new Set([E])):t.set(v,[new Set([E])])}),u(E)}}}});var wfe=_((vUt,Cfe)=>{var Dct=process.platform,Sct=Dct==="win32",Pct=global.__FAKE_TESTING_FS__||ve("fs"),{O_CREAT:bct,O_TRUNC:xct,O_WRONLY:kct,UV_FS_O_FILEMAP:Efe=0}=Pct.constants,Qct=Sct&&!!Efe,Fct=512*1024,Rct=Efe|xct|bct|kct;Cfe.exports=Qct?t=>t"w"});var e_=_((DUt,Nfe)=>{"use strict";var Tct=ve("assert"),Nct=Rx(),vn=ve("fs"),Lct=eC(),Wf=ve("path"),Ffe=pfe(),Ife=e3(),Oct=yfe(),Mct=t3(),fl=qE(),Uct=YE(),_ct=Y3(),Bfe=Symbol("onEntry"),V3=Symbol("checkFs"),vfe=Symbol("checkFs2"),Gx=Symbol("pruneCache"),J3=Symbol("isReusable"),tc=Symbol("makeFs"),z3=Symbol("file"),X3=Symbol("directory"),Yx=Symbol("link"),Dfe=Symbol("symlink"),Sfe=Symbol("hardlink"),Pfe=Symbol("unsupported"),bfe=Symbol("checkPath"),Dh=Symbol("mkdir"),To=Symbol("onError"),qx=Symbol("pending"),xfe=Symbol("pend"),sC=Symbol("unpend"),W3=Symbol("ended"),K3=Symbol("maybeClose"),Z3=Symbol("skip"),z1=Symbol("doChown"),X1=Symbol("uid"),Z1=Symbol("gid"),$1=Symbol("checkedCwd"),Rfe=ve("crypto"),Tfe=wfe(),Hct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,e2=Hct==="win32",qct=(t,e)=>{if(!e2)return vn.unlink(t,e);let r=t+".DELETE."+Rfe.randomBytes(16).toString("hex");vn.rename(t,r,o=>{if(o)return e(o);vn.unlink(r,e)})},jct=t=>{if(!e2)return vn.unlinkSync(t);let e=t+".DELETE."+Rfe.randomBytes(16).toString("hex");vn.renameSync(t,e),vn.unlinkSync(e)},kfe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Qfe=t=>_ct(Uct(fl(t))).toLowerCase(),Gct=(t,e)=>{e=Qfe(e);for(let r of t.keys()){let o=Qfe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},Yct=t=>{for(let e of t.keys())t.delete(e)},t2=class extends Nct{constructor(e){if(e||(e={}),e.ondone=r=>{this[W3]=!0,this[K3]()},super(e),this[$1]=!1,this.reservations=Oct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[qx]=0,this[W3]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||e2,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=fl(Wf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[Bfe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[K3](){this[W3]&&this[qx]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[bfe](e){if(this.strip){let r=fl(e.path).split("/");if(r.length=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=fl(e.path),o=r.split("/");if(o.includes("..")||e2&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=Mct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Wf.isAbsolute(e.path)?e.absolute=fl(Wf.resolve(e.path)):e.absolute=fl(Wf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:fl(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Wf.win32.parse(e.absolute);e.absolute=r+Ife.encode(e.absolute.substr(r.length));let{root:o}=Wf.win32.parse(e.path);e.path=o+Ife.encode(e.path.substr(o.length))}return!0}[Bfe](e){if(!this[bfe](e))return e.resume();switch(Tct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[V3](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[Pfe](e)}}[To](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[sC](),r.resume())}[Dh](e,r,o){Ffe(fl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[z1](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[X1](e){return kfe(this.uid,e.uid,this.processUid)}[Z1](e){return kfe(this.gid,e.gid,this.processGid)}[z3](e,r){let o=e.mode&4095||this.fmode,a=new Lct.WriteStream(e.absolute,{flags:Tfe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&vn.close(a.fd,()=>{}),a.write=()=>!0,this[To](p,e),r()});let n=1,u=p=>{if(p){a.fd&&vn.close(a.fd,()=>{}),this[To](p,e),r();return}--n===0&&vn.close(a.fd,h=>{h?this[To](h,e):this[sC](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let I=e.atime||new Date,v=e.mtime;vn.futimes(E,I,v,x=>x?vn.utimes(h,I,v,C=>u(C&&x)):u())}if(this[z1](e)){n++;let I=this[X1](e),v=this[Z1](e);vn.fchown(E,I,v,x=>x?vn.chown(h,I,v,C=>u(C&&x)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[To](p,e),r()}),e.pipe(A)),A.pipe(a)}[X3](e,r){let o=e.mode&4095||this.dmode;this[Dh](e.absolute,o,a=>{if(a){this[To](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[sC](),e.resume())};e.mtime&&!this.noMtime&&(n++,vn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[z1](e)&&(n++,vn.chown(e.absolute,this[X1](e),this[Z1](e),u)),u()})}[Pfe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[Dfe](e,r){this[Yx](e,e.linkpath,"symlink",r)}[Sfe](e,r){let o=fl(Wf.resolve(this.cwd,e.linkpath));this[Yx](e,o,"link",r)}[xfe](){this[qx]++}[sC](){this[qx]--,this[K3]()}[Z3](e){this[sC](),e.resume()}[J3](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!e2}[V3](e){this[xfe]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[vfe](e,o))}[Gx](e){e.type==="SymbolicLink"?Yct(this.dirCache):e.type!=="Directory"&&Gct(this.dirCache,e.absolute)}[vfe](e,r){this[Gx](e);let o=A=>{this[Gx](e),r(A)},a=()=>{this[Dh](this.cwd,this.dmode,A=>{if(A){this[To](A,e),o();return}this[$1]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=fl(Wf.dirname(e.absolute));if(A!==this.cwd)return this[Dh](A,this.dmode,p=>{if(p){this[To](p,e),o();return}u()})}u()},u=()=>{vn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[Z3](e),o();return}if(A||this[J3](e,p))return this[tc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=I=>this[tc](I,e,o);return h?vn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return vn.rmdir(e.absolute,h=>this[tc](h,e,o))}if(e.absolute===this.cwd)return this[tc](null,e,o);qct(e.absolute,h=>this[tc](h,e,o))})};this[$1]?n():a()}[tc](e,r,o){if(e){this[To](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[z3](r,o);case"Link":return this[Sfe](r,o);case"SymbolicLink":return this[Dfe](r,o);case"Directory":case"GNUDumpDir":return this[X3](r,o)}}[Yx](e,r,o,a){vn[o](r,e.absolute,n=>{n?this[To](n,e):(this[sC](),e.resume()),a()})}},jx=t=>{try{return[null,t()]}catch(e){return[e,null]}},$3=class extends t2{[tc](e,r){return super[tc](e,r,()=>{})}[V3](e){if(this[Gx](e),!this[$1]){let n=this[Dh](this.cwd,this.dmode);if(n)return this[To](n,e);this[$1]=!0}if(e.absolute!==this.cwd){let n=fl(Wf.dirname(e.absolute));if(n!==this.cwd){let u=this[Dh](n,this.dmode);if(u)return this[To](u,e)}}let[r,o]=jx(()=>vn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[Z3](e);if(r||this[J3](e,o))return this[tc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?jx(()=>{vn.chmodSync(e.absolute,e.mode)}):[];return this[tc](A,e)}let[n]=jx(()=>vn.rmdirSync(e.absolute));this[tc](n,e)}let[a]=e.absolute===this.cwd?[]:jx(()=>jct(e.absolute));this[tc](a,e)}[z3](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{vn.closeSync(n)}catch(h){p=h}(A||p)&&this[To](A||p,e),r()},n;try{n=vn.openSync(e.absolute,Tfe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[To](A,e)),e.pipe(u)),u.on("data",A=>{try{vn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{vn.futimesSync(n,h,E)}catch(I){try{vn.utimesSync(e.absolute,h,E)}catch{p=I}}}if(this[z1](e)){let h=this[X1](e),E=this[Z1](e);try{vn.fchownSync(n,h,E)}catch(I){try{vn.chownSync(e.absolute,h,E)}catch{p=p||I}}}a(p)})}[X3](e,r){let o=e.mode&4095||this.dmode,a=this[Dh](e.absolute,o);if(a){this[To](a,e),r();return}if(e.mtime&&!this.noMtime)try{vn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[z1](e))try{vn.chownSync(e.absolute,this[X1](e),this[Z1](e))}catch{}r(),e.resume()}[Dh](e,r){try{return Ffe.sync(fl(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[Yx](e,r,o,a){try{vn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[To](n,e)}}};t2.Sync=$3;Nfe.exports=t2});var _fe=_((SUt,Ufe)=>{"use strict";var Wct=OE(),Wx=e_(),Ofe=ve("fs"),Mfe=eC(),Lfe=ve("path"),t_=YE();Ufe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Wct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Kct(o,e),o.file&&o.sync?Vct(o):o.file?Jct(o,r):o.sync?zct(o):Xct(o)};var Kct=(t,e)=>{let r=new Map(e.map(n=>[t_(n),!0])),o=t.filter,a=(n,u)=>{let A=u||Lfe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(Lfe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(t_(n)):n=>a(t_(n))},Vct=t=>{let e=new Wx.Sync(t),r=t.file,o=Ofe.statSync(r),a=t.maxReadSize||16*1024*1024;new Mfe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},Jct=(t,e)=>{let r=new Wx(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),Ofe.stat(a,(p,h)=>{if(p)A(p);else{let E=new Mfe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},zct=t=>new Wx.Sync(t),Xct=t=>new Wx(t)});var Hfe=_(us=>{"use strict";us.c=us.create=IAe();us.r=us.replace=L3();us.t=us.list=Tx();us.u=us.update=QAe();us.x=us.extract=_fe();us.Pack=Ex();us.Unpack=e_();us.Parse=Rx();us.ReadEntry=rx();us.WriteEntry=A3();us.Header=GE();us.Pax=ix();us.types=KU()});var r_,qfe,Sh,r2,n2,jfe=Et(()=>{r_=$e(id()),qfe=ve("worker_threads"),Sh=Symbol("kTaskInfo"),r2=class{constructor(e,r){this.fn=e;this.limit=(0,r_.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},n2=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,r_.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let o=this.workers.pop();o?o.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new qfe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[Sh])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[Sh].resolve(r),e[Sh]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[Sh]?.reject(r),e[Sh]=null}),e.on("exit",r=>{r!==0&&e[Sh]?.reject(new Error(`Worker exited with code ${r}`)),e[Sh]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[Sh]={resolve:o,reject:a},r.postMessage(e)})})}}});var Yfe=_((kUt,Gfe)=>{var n_;Gfe.exports.getContent=()=>(typeof n_>"u"&&(n_=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),n_)});var Xi={};Vt(Xi,{convertToZip:()=>tut,convertToZipWorker:()=>o_,extractArchiveTo:()=>zfe,getDefaultTaskPool:()=>Vfe,getTaskPoolForConfiguration:()=>Jfe,makeArchiveFromDirectory:()=>eut});function Zct(t,e){switch(t){case"async":return new r2(o_,{poolSize:e});case"workers":return new n2((0,s_.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function Vfe(){return typeof i_>"u"&&(i_=Zct("workers",Ji.availableParallelism())),i_}function Jfe(t){return typeof t>"u"?Vfe():ol($ct,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new r2(o_,{poolSize:r});case"workers":return new n2((0,s_.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function o_(t){let{tmpFile:e,tgz:r,compressionLevel:o,extractBufferOpts:a}=t,n=new zi(e,{create:!0,level:o,stats:Ea.makeDefaultStats()}),u=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await zfe(u,n,a),n.saveAndClose(),e}async function eut(t,{baseFs:e=new Tn,prefixPath:r=Bt.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new zi(null,{level:o});else{let A=await oe.mktempPromise(),p=V.join(A,"archive.zip");n=new zi(p,{create:!0,level:o})}let u=V.resolve(Bt.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function tut(t,e={}){let r=await oe.mktempPromise(),o=V.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??Jfe(e.configuration)).run({tmpFile:o,tgz:t,compressionLevel:a,extractBufferOpts:n}),new zi(o,{level:e.compressionLevel})}async function*rut(t){let e=new Kfe.default.Parse,r=new Wfe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function zfe(t,e,{stripComponents:r=0,prefixPath:o=Bt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of rut(t)){if(a(n))continue;let u=V.normalize(ue.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=V.join(o,A),h=420;switch((n.type==="Directory"||((n.mode??0)&73)!==0)&&(h|=73),n.type){case"Directory":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,vi.SAFE_TIME,vi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),e.writeFileSync(p,await Vy(n),{mode:h}),e.utimesSync(p,vi.SAFE_TIME,vi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(V.dirname(p),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,vi.SAFE_TIME,vi.SAFE_TIME);break}}return e}var Wfe,Kfe,s_,i_,$ct,Xfe=Et(()=>{Ye();St();nA();Wfe=ve("stream"),Kfe=$e(Hfe());jfe();ql();s_=$e(Yfe());$ct=new WeakMap});var $fe=_((a_,Zfe)=>{(function(t,e){typeof a_=="object"?Zfe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(a_,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)!a.hasOwnProperty(A)||n&&typeof a[A]=="function"||u.push(A);return u}function r(a,n,u,A,p,h,E){var I="",v=0,x,C,R=A.slice(0);if(R.push([n,u])&&A.length>0&&(A.forEach(function(U,J){J>0&&(I+=(U[1]?" ":"\u2502")+" "),!C&&U[0]===n&&(C=!0)}),I+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(I+=": "+n),C&&(I+=" (circular ref.)"),E(I)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(U){x=++v===L.length,r(U,n[U],x,R,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` `}),A},o})});var $s={};Vt($s,{emitList:()=>nut,emitTree:()=>npe,treeNodeToJson:()=>rpe,treeNodeToTreeify:()=>tpe});function tpe(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:I,children:v}=h,x=[];typeof E<"u"&&x.push(yd(e,E,2)),typeof I<"u"&&x.push(Mt(e,I[0],I[1])),x.length===0&&x.push(yd(e,`${p}`,2));let C=x.join(": ").trim(),R=`\0${o++}\0`,L=u[`${R}${C}`]={};typeof v<"u"&&a(v,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function rpe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Ed(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[iut(n)]=e(u));return typeof r.value>"u"?a:{value:Ed(r.value[0],r.value[1]),children:a}};return e(t)}function nut(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));npe({children:a},{configuration:e,stdout:r,json:o})}function npe(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(rpe(A))} `);return}let n=(0,epe.asTree)(tpe(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 $1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 $2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function iut(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var epe,ipe=Et(()=>{epe=$e($fe());jl()});function i2(t){let e=t.match(sut);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var spe,l_,c_,Kx,Lr,sut,u_=Et(()=>{Ye();St();St();nA();spe=ve("crypto"),l_=$e(ve("fs"));Yl();nh();ql();bo();c_=Jy(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Kx=Jy(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Lr=class{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,spe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=Lr.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new Lr(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Kx,o].join(""),cacheSpec:o}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${lE(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=i2(r).hash.slice(0,10);return`${lE(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=i2(e);if(r===null||r{let he=new zi,Be=V.join(Bt.root,nM(e));return he.mkdirSync(Be,{recursive:!0}),he.writeJsonSync(V.join(Be,dr.manifest),{name:fn(e),mocked:!0}),he},E=async(he,{isColdHit:Be,controlPath:we=null})=>{if(we===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!Be?i2(r).cacheKey:this.cacheKey,Ee=!u.skipIntegrityCheck||!r?`${g}/${await NP(he)}`:r;if(we!==null){let le=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await NP(we)}`:r;if(Ee!==le)throw new zt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let Se=null;switch(r!==null&&Ee!==r&&(this.check?Se="throw":i2(r).cacheKey!==i2(Ee).cacheKey?Se="update":Se=this.configuration.get("checksumBehavior")),Se){case null:case"update":return{isValid:!0,hash:Ee};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new zt(18,"The remote archive doesn't match the expected checksum")}},I=async he=>{if(!n)throw new Error(`Cache check required but no loader configured for ${qr(this.configuration,e)}`);let Be=await n(),we=Be.getRealPath();Be.saveAndClose(),await oe.chmodPromise(we,420);let g=await E(he,{controlPath:we,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},v=async()=>{if(A===null||!await oe.existsPromise(A)){let he=await n(),Be=he.getRealPath();return he.saveAndClose(),{source:"loader",path:Be}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${qr(this.configuration,e)}`);if(this.immutable)throw new zt(56,`Cache entry required but missing for ${qr(this.configuration,e)}`);let{path:he,source:Be}=await v(),{hash:we}=await E(he,{isColdHit:!0}),g=this.getLocatorPath(e,we),Ee=[];Be!=="mirror"&&A!==null&&Ee.push(async()=>{let le=`${A}${this.cacheId}`;await oe.copyFilePromise(he,le,l_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(le,420),await oe.renamePromise(le,A)}),(!u.mirrorWriteOnly||A===null)&&Ee.push(async()=>{let le=`${g}${this.cacheId}`;await oe.copyFilePromise(he,le,l_.default.constants.COPYFILE_FICLONE),await oe.chmodPromise(le,420),await oe.renamePromise(le,g)});let Se=u.mirrorWriteOnly?A??g:g;return await Promise.all(Ee.map(le=>le())),[!1,Se,we]},C=async()=>{let Be=(async()=>{let we=u.unstablePackages?.has(e.locatorHash),g=we||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,Ee=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,Se=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!Ee),le=Se||Ee,ne=le?o:a;if(ne&&ne(),le){let ee=null,Ie=g;if(!Se)if(this.check)ee=await I(Ie);else{let Fe=await E(Ie,{isColdHit:!1});if(Fe.isValid)ee=Fe.hash;else return x()}return[Se,Ie,ee]}else{if(this.immutable&&we)throw new zt(56,`Cache entry required but missing for ${qr(this.configuration,e)}; consider defining ${de.pretty(this.configuration,"supportedArchitectures",de.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,Be);try{return await Be}finally{this.mutexes.delete(e.locatorHash)}};for(let he;he=this.mutexes.get(e.locatorHash);)await he;let[R,L,U]=await C();R||this.markedFiles.add(L);let J,te=R?()=>h():()=>new zi(L,{baseFs:p,readOnly:!0}),ae=new iy(()=>EL(()=>J=te(),he=>`Failed to open the cache entry for ${qr(this.configuration,e)}: ${he}`),V),fe=new Uu(L,{baseFs:ae,pathUtils:V}),ce=()=>{J?.discardAndClose()},me=u.unstablePackages?.has(e.locatorHash)?null:U;return[fe,ce,me]}},sut=/^(?:(?(?[0-9]+)(?.*))\/)?(?.*)$/});var Vx,ope=Et(()=>{Vx=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Vx||{})});var out,oC,A_=Et(()=>{St();Nl();Qf();bo();out=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>_P({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],oC=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=V.join(e.cwd,dr.lockfile);if(!oe.existsSync(o))return;let a=await oe.readFilePromise(o,"utf8"),n=Ki(a);if(Object.hasOwn(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=s1(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=xa(p.range)?In(p,`npm:${p.range}`):p,{version:E,resolved:I}=n[A];if(!I)continue;let v;for(let[C,R]of out){let L=I.match(C);if(L){v=R(E,...L);break}}if(!v){r.reportWarning(14,`${jn(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${I}")`);continue}let x=h;try{let C=Bd(h.range),R=s1(C.selector,!0);R&&(x=R)}catch{}u.set(h.descriptorHash,Qs(x,v))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=$O(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var AA,ape=Et(()=>{Yl();O1();jl();AA=class extends Xs{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;XI(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Mt(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} `)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(` `),this.stdout.write(`${Mt(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. `),this.suggestInstall&&this.stdout.write(`${Mt(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. `))}formatNameWithHyperlink(r){return yU(r,{configuration:this.configuration,json:!1})}}});var aC,f_=Et(()=>{bo();aC=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(OP(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(OP(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Kf(){}function aut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;nx.length?R:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var v=e[u-1];return u>1&&typeof v.value=="string"&&(v.added||v.removed)&&t.equals("",v.value)&&(e[u-2].value+=v.value,e.pop()),e}function lut(t){return{newPos:t.newPos,components:t.components.slice(0)}}function cut(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function upe(t,e,r){return r=cut(r,{ignoreWhitespace:!0}),m_.diff(t,e,r)}function uut(t,e,r){return y_.diff(t,e,r)}function Jx(t){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Jx=function(e){return typeof e}:Jx=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Jx(t)}function p_(t){return put(t)||hut(t)||gut(t)||dut()}function put(t){if(Array.isArray(t))return h_(t)}function hut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function gut(t,e){if(!!t){if(typeof t=="string")return h_(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return h_(t,e)}}function h_(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r"u"&&(u.context=4);var A=uut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(J){return" "+J})}for(var h=[],E=0,I=0,v=[],x=1,C=1,R=function(J){var te=A[J],ae=te.lines||te.value.replace(/\n$/,"").split(` `);if(te.lines=ae,te.added||te.removed){var fe;if(!E){var ce=A[J-1];E=x,I=C,ce&&(v=u.context>0?p(ce.lines.slice(-u.context)):[],E-=v.length,I-=v.length)}(fe=v).push.apply(fe,p_(ae.map(function(le){return(te.added?"+":"-")+le}))),te.added?C+=ae.length:x+=ae.length}else{if(E)if(ae.length<=u.context*2&&J=A.length-2&&ae.length<=u.context){var g=/\n$/.test(r),Ee=/\n$/.test(o),Se=ae.length==0&&v.length>we.oldLines;!g&&Se&&r.length>0&&v.splice(we.oldLines,0,"\\ No newline at end of file"),(!g&&!Se||!Ee)&&v.push("\\ No newline at end of file")}h.push(we),E=0,I=0,v=[]}x+=ae.length,C+=ae.length}},L=0;L{Kf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(R){return a?(setTimeout(function(){a(void 0,R)},0),!0):R}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var I=[{newPos:-1,components:[]}],v=this.extractCommon(I[0],r,e,0);if(I[0].newPos+1>=A&&v+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var R=-1*h;R<=h;R+=2){var L=void 0,U=I[R-1],J=I[R+1],te=(J?J.newPos:0)-R;U&&(I[R-1]=void 0);var ae=U&&U.newPos+1=A&&te+1>=p)return u(aut(n,L.components,r,e,n.useLongestToken));I[R]=L}h++}if(a)(function R(){setTimeout(function(){if(h>E)return a();x()||R()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify(g_(t,null,null,a),a," ")};s2.equals=function(t,e){return Kf.prototype.equals.call(s2,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};d_=new Kf;d_.tokenize=function(t){return t.slice()};d_.join=d_.removeEmpty=function(t){return t}});var ppe=_((s3t,fpe)=>{var yut=Hl(),Eut=pE(),Cut=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,wut=/^\w*$/;function Iut(t,e){if(yut(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||Eut(t)?!0:wut.test(t)||!Cut.test(t)||e!=null&&t in Object(e)}fpe.exports=Iut});var dpe=_((o3t,gpe)=>{var hpe=_S(),But="Expected a function";function C_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(But);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(C_.Cache||hpe),r}C_.Cache=hpe;gpe.exports=C_});var ype=_((a3t,mpe)=>{var vut=dpe(),Dut=500;function Sut(t){var e=vut(t,function(o){return r.size===Dut&&r.clear(),o}),r=e.cache;return e}mpe.exports=Sut});var w_=_((l3t,Epe)=>{var Put=ype(),but=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,xut=/\\(\\)?/g,kut=Put(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(but,function(r,o,a,n){e.push(a?n.replace(xut,"$1"):o||r)}),e});Epe.exports=kut});var jd=_((c3t,Cpe)=>{var Qut=Hl(),Fut=ppe(),Rut=w_(),Tut=N1();function Nut(t,e){return Qut(t)?t:Fut(t,e)?[t]:Rut(Tut(t))}Cpe.exports=Nut});var lC=_((u3t,wpe)=>{var Lut=pE(),Out=1/0;function Mut(t){if(typeof t=="string"||Lut(t))return t;var e=t+"";return e=="0"&&1/t==-Out?"-0":e}wpe.exports=Mut});var zx=_((A3t,Ipe)=>{var Uut=jd(),_ut=lC();function Hut(t,e){e=Uut(e,t);for(var r=0,o=e.length;t!=null&&r{var qut=rP(),jut=jd(),Gut=_I(),Bpe=il(),Yut=lC();function Wut(t,e,r,o){if(!Bpe(t))return t;e=jut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a{var Kut=zx(),Vut=I_(),Jut=jd();function zut(t,e,r){for(var o=-1,a=e.length,n={};++o{function Xut(t,e){return t!=null&&e in Object(t)}Ppe.exports=Xut});var B_=_((g3t,xpe)=>{var Zut=jd(),$ut=OI(),eAt=Hl(),tAt=_I(),rAt=YS(),nAt=lC();function iAt(t,e,r){e=Zut(e,t);for(var o=-1,a=e.length,n=!1;++o{var sAt=bpe(),oAt=B_();function aAt(t,e){return t!=null&&oAt(t,e,sAt)}kpe.exports=aAt});var Rpe=_((m3t,Fpe)=>{var lAt=Spe(),cAt=Qpe();function uAt(t,e){return lAt(t,e,function(r,o){return cAt(t,o)})}Fpe.exports=uAt});var Ope=_((y3t,Lpe)=>{var Tpe=pd(),AAt=OI(),fAt=Hl(),Npe=Tpe?Tpe.isConcatSpreadable:void 0;function pAt(t){return fAt(t)||AAt(t)||!!(Npe&&t&&t[Npe])}Lpe.exports=pAt});var _pe=_((E3t,Upe)=>{var hAt=jS(),gAt=Ope();function Mpe(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=gAt),a||(a=[]);++n0&&r(A)?e>1?Mpe(A,e-1,r,o,a):hAt(a,A):o||(a[a.length]=A)}return a}Upe.exports=Mpe});var qpe=_((C3t,Hpe)=>{var dAt=_pe();function mAt(t){var e=t==null?0:t.length;return e?dAt(t,1):[]}Hpe.exports=mAt});var v_=_((w3t,jpe)=>{var yAt=qpe(),EAt=AL(),CAt=fL();function wAt(t){return CAt(EAt(t,void 0,yAt),t+"")}jpe.exports=wAt});var D_=_((I3t,Gpe)=>{var IAt=Rpe(),BAt=v_(),vAt=BAt(function(t,e){return t==null?{}:IAt(t,e)});Gpe.exports=vAt});var Xx,Ype=Et(()=>{Yl();Xx=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new zt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var Qi,S_=Et(()=>{Yl();Qi=class extends Xs{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var Wpe,cC,P_=Et(()=>{St();Wpe=$e(RP());fE();vd();jl();nh();Qf();bo();cC=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await Ot.tryFind(this.cwd)??new Ot,this.relativeCwd=V.relative(this.project.cwd,this.cwd)||Bt.dot;let e=this.manifest.name?this.manifest.name:eA(null,`${this.computeCandidateName()}-${zs(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=In(e,`${Xn.protocol}${this.relativeCwd}`),this.anchoredLocator=Qs(e,`${Xn.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let o=await(0,Wpe.default)(r,{cwd:ue.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});o.sort(),await o.reduce(async(a,n)=>{let u=V.resolve(this.cwd,ue.toPortablePath(n)),A=await oe.existsPromise(V.join(u,"package.json"));await a,A&&this.workspacesCwds.add(u)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${a1(this.project.configuration,this)} (${Mt(this.project.configuration,V.join(this.cwd,dr.manifest),yt.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===Xn.protocol&&V.normalize(a)===this.relativeCwd||o===Xn.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=xa(a);return n?o===Xn.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${V.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=Ot.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=Ot.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&i1(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let o of r.workspacesCwds){let a=this.project.workspacesByCwd.get(o);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=V.join(this.cwd,Ot.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} `;await oe.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function kAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],volatileDescriptors:p=new Set}){let h=new Map,E=[],I=new Map,v=new Map,x=new Map,C=new Map,R=new Map,L=new Map(t.workspaces.map(ce=>{let me=ce.anchoredLocator.locatorHash,he=o.get(me);if(typeof he>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[me,e1(he)]})),U=()=>{let ce=oe.mktempSync(),me=V.join(ce,"stacktrace.log"),he=String(E.length+1).length,Be=E.map((we,g)=>`${`${g+1}.`.padStart(he," ")} ${ba(we)} `).join("");throw oe.writeFileSync(me,Be),oe.detachTemp(ce),new zt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${ue.fromPortablePath(me)}`)},J=ce=>{let me=r.get(ce.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: The resolution should have been registered");let he=o.get(me);if(!he)throw new Error("Assertion failed: The package could not be found");return he},te=(ce,me,he,{top:Be,optional:we})=>{E.length>1e3&&U(),E.push(me);let g=ae(ce,me,he,{top:Be,optional:we});return E.pop(),g},ae=(ce,me,he,{top:Be,optional:we})=>{if(we||n.delete(me.locatorHash),a.has(me.locatorHash))return;a.add(me.locatorHash);let g=o.get(me.locatorHash);if(!g)throw new Error(`Assertion failed: The package (${qr(t.configuration,me)}) should have been registered`);let Ee=[],Se=[],le=[],ne=[],ee=[];for(let Fe of Array.from(g.dependencies.values())){if(g.peerDependencies.has(Fe.identHash)&&g.locatorHash!==Be)continue;if(bf(Fe))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");p.delete(Fe.descriptorHash);let At=we;if(!At){let Te=g.dependenciesMeta.get(fn(Fe));if(typeof Te<"u"){let Je=Te.get(null);typeof Je<"u"&&Je.optional&&(At=!0)}}let H=r.get(Fe.descriptorHash);if(!H)throw new Error(`Assertion failed: The resolution (${jn(t.configuration,Fe)}) should have been registered`);let at=L.get(H)||o.get(H);if(!at)throw new Error(`Assertion failed: The package (${H}, resolved from ${jn(t.configuration,Fe)}) should have been registered`);if(at.peerDependencies.size===0){te(Fe,at,new Map,{top:Be,optional:At});continue}let Re,ke,xe=new Set,He;Se.push(()=>{Re=tM(Fe,me.locatorHash),ke=rM(at,me.locatorHash),g.dependencies.delete(Fe.identHash),g.dependencies.set(Re.identHash,Re),r.set(Re.descriptorHash,ke.locatorHash),e.set(Re.descriptorHash,Re),o.set(ke.locatorHash,ke),Ee.push([at,Re,ke])}),le.push(()=>{He=new Map;for(let Te of ke.peerDependencies.values()){let Je=g.dependencies.get(Te.identHash);if(!Je&&n1(me,Te)&&(ce.identHash===me.identHash?Je=ce:(Je=In(me,ce.range),e.set(Je.descriptorHash,Je),r.set(Je.descriptorHash,me.locatorHash),p.delete(Je.descriptorHash))),(!Je||Je.range==="missing:")&&ke.dependencies.has(Te.identHash)){ke.peerDependencies.delete(Te.identHash);continue}Je||(Je=In(Te,"missing:")),ke.dependencies.set(Je.identHash,Je),bf(Je)&&md(x,Je.descriptorHash).add(ke.locatorHash),I.set(Je.identHash,Je),Je.range==="missing:"&&xe.add(Je.identHash),He.set(Te.identHash,he.get(Te.identHash)??ke.locatorHash)}ke.dependencies=new Map(ks(ke.dependencies,([Te,Je])=>fn(Je)))}),ne.push(()=>{if(!o.has(ke.locatorHash))return;let Te=h.get(at.locatorHash);typeof Te=="number"&&Te>=2&&U();let Je=h.get(at.locatorHash),qe=typeof Je<"u"?Je+1:1;h.set(at.locatorHash,qe),te(Re,ke,He,{top:Be,optional:At}),h.set(at.locatorHash,qe-1)}),ee.push(()=>{let Te=g.dependencies.get(Fe.identHash);if(typeof Te>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let Je=r.get(Te.descriptorHash);if(typeof Je>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");if(md(R,Je).add(me.locatorHash),!!o.has(ke.locatorHash)){for(let qe of ke.peerDependencies.values()){let b=He.get(qe.identHash);if(typeof b>"u")throw new Error("Assertion failed: Expected the peer dependency ident to be registered");Yy(Wy(C,b),fn(qe)).push(ke.locatorHash)}for(let qe of xe)ke.dependencies.delete(qe)}})}for(let Fe of[...Se,...le])Fe();let Ie;do{Ie=!0;for(let[Fe,At,H]of Ee){let at=Wy(v,Fe.locatorHash),Re=zs(...[...H.dependencies.values()].map(Te=>{let Je=Te.range!=="missing:"?r.get(Te.descriptorHash):"missing:";if(typeof Je>"u")throw new Error(`Assertion failed: Expected the resolution for ${jn(t.configuration,Te)} to have been registered`);return Je===Be?`${Je} (top)`:Je}),At.identHash),ke=at.get(Re);if(typeof ke>"u"){at.set(Re,At);continue}if(ke===At)continue;o.delete(H.locatorHash),e.delete(At.descriptorHash),r.delete(At.descriptorHash),a.delete(H.locatorHash);let xe=x.get(At.descriptorHash)||[],He=[g.locatorHash,...xe];x.delete(At.descriptorHash);for(let Te of He){let Je=o.get(Te);typeof Je>"u"||(Je.dependencies.get(At.identHash).descriptorHash!==ke.descriptorHash&&(Ie=!1),Je.dependencies.set(At.identHash,ke))}}}while(!Ie);for(let Fe of[...ne,...ee])Fe()};for(let ce of t.workspaces){let me=ce.anchoredLocator;p.delete(ce.anchoredDescriptor.descriptorHash),te(ce.anchoredDescriptor,me,new Map,{top:me.locatorHash,optional:!1})}let fe=new Map;for(let[ce,me]of R){let he=o.get(ce);if(typeof he>"u")throw new Error("Assertion failed: Expected the root to be registered");let Be=C.get(ce);if(!(typeof Be>"u"))for(let we of me){let g=o.get(we);if(!(typeof g>"u")&&!!t.tryWorkspaceByLocator(g))for(let[Ee,Se]of Be){let le=Js(Ee);if(g.peerDependencies.has(le.identHash))continue;let ne=`p${zs(we,Ee,ce).slice(0,5)}`;u.set(ne,{subject:we,requested:le,rootRequester:ce,allRequesters:Se});let ee=he.dependencies.get(le.identHash);if(typeof ee<"u"){let Ie=J(ee),Fe=Ie.version??"0.0.0",At=new Set;for(let at of Se){let Re=o.get(at);if(typeof Re>"u")throw new Error("Assertion failed: Expected the link to be registered");let ke=Re.peerDependencies.get(le.identHash);if(typeof ke>"u")throw new Error("Assertion failed: Expected the ident to be registered");At.add(ke.range)}if(![...At].every(at=>{if(at.startsWith(Xn.protocol)){if(!t.tryWorkspaceByLocator(Ie))return!1;at=at.slice(Xn.protocol.length),(at==="^"||at==="~")&&(at="*")}return kf(Fe,at)})){let at=ol(fe,Ie.locatorHash,()=>({type:2,requested:le,subject:Ie,dependents:new Map,requesters:new Map,links:new Map,version:Fe,hash:`p${Ie.locatorHash.slice(0,5)}`}));at.dependents.set(g.locatorHash,g),at.requesters.set(he.locatorHash,he);for(let Re of Se)at.links.set(Re,o.get(Re));A.push({type:1,subject:g,requested:le,requester:he,version:Fe,hash:ne,requirementCount:Se.length})}}else he.peerDependenciesMeta.get(Ee)?.optional||A.push({type:0,subject:g,requested:le,requester:he,hash:ne})}}}A.push(...fe.values())}function QAt(t,e){let r=wL(t.peerWarnings,"type"),o=r[2]?.map(n=>{let u=Array.from(n.links.values(),E=>{let I=t.storedPackages.get(E.locatorHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the package to be registered");let v=I.peerDependencies.get(n.requested.identHash);if(typeof v>"u")throw new Error("Assertion failed: Expected the ident to be registered");return v.range}),A=n.links.size>1?"and other dependencies request":"requests",p=sM(u),h=p?cE(t.configuration,p):Mt(t.configuration,"but they have non-overlapping ranges!","redBright");return`${cs(t.configuration,n.requested)} is listed by your project with version ${o1(t.configuration,n.version)}, which doesn't satisfy what ${cs(t.configuration,n.requesters.values().next().value)} (${Mt(t.configuration,n.hash,yt.CODE)}) ${A} (${h}).`})??[],a=r[0]?.map(n=>`${qr(t.configuration,n.subject)} doesn't provide ${cs(t.configuration,n.requested)} (${Mt(t.configuration,n.hash,yt.CODE)}), requested by ${cs(t.configuration,n.requester)}.`)??[];e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met; run ${Mt(t.configuration,"yarn explain peer-requirements ",yt.CODE)} for details, where ${Mt(t.configuration,"",yt.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of ks(o,u=>Xy.default(u)))e.reportWarning(60,n);for(let n of ks(a,u=>Xy.default(u)))e.reportWarning(2,n)})}var Zx,$x,ek,Jpe,k_,x_,Q_,tk,DAt,SAt,Kpe,PAt,bAt,xAt,pl,b_,rk,Vpe,Pt,zpe=Et(()=>{St();St();Nl();qt();Zx=ve("crypto");E_();$x=$e(D_()),ek=$e(id()),Jpe=$e(zn()),k_=ve("util"),x_=$e(ve("v8")),Q_=$e(ve("zlib"));u_();S1();A_();f_();fE();uM();Yl();Ype();O1();S_();vd();P_();WP();jl();nh();ql();vb();BU();Qf();bo();tk=Jy(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),DAt=3,SAt=/ *, */g,Kpe=/\/$/,PAt=32,bAt=(0,k_.promisify)(Q_.default.gzip),xAt=(0,k_.promisify)(Q_.default.gunzip),pl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(pl||{}),b_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},rk=(o=>(o[o.NotProvided=0]="NotProvided",o[o.NotCompatible=1]="NotCompatible",o[o.NotCompatibleAggregate=2]="NotCompatibleAggregate",o))(rk||{}),Vpe=t=>zs(`${DAt}`,t),Pt=class{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new it(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,oe.existsSync(V.join(n,dr.manifest))){o=n;break}a=V.dirname(n)}let u=new Pt(e.projectCwd,{configuration:e});Ke.telemetry?.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),Ke.telemetry?.reportWorkspaceCount(u.workspaces.length),Ke.telemetry?.reportDependencyCount(u.workspaces.reduce((C,R)=>C+R.manifest.dependencies.size+R.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Mt(e,u.cwd,yt.PATH),E=Mt(e,V.relative(u.cwd,o),yt.PATH),I=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,v=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,x=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new it(`The nearest package directory (${Mt(e,o,yt.PATH)}) doesn't seem to be part of the project declared in ${Mt(e,u.cwd,yt.PATH)}. ${[I,v,x].join(` `)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=V.join(this.cwd,dr.lockfile),r=this.configuration.get("defaultLanguageName");if(oe.existsSync(e)){let o=await oe.readFilePromise(e,"utf8");this.lockFileChecksum=Vpe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=xf(p.resolution,!0),E=new Ot;E.load(p,{yamlCompatibilityMode:!0});let I=E.version,v=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,R=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,J=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let fe=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,fe)}let ae={...h,version:I,languageName:v,linkType:x,conditions:C,dependencies:R,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:J,bin:te};this.originalPackages.set(ae.locatorHash,ae);for(let fe of A.split(SAt)){let ce=ih(fe);n<=6&&(ce=this.configuration.normalizeDependency(ce),ce=In(ce,ce.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ce.descriptorHash,ce),this.storedResolutions.set(ce.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,ek.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new cC(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${cs(this.configuration,e.anchoredLocator)}: ${ue.fromPortablePath(e.cwd)} conflicts with ${ue.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){V.isAbsolute(e)||(e=V.resolve(this.cwd,e)),e=V.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)V.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${cs(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(Xn.protocol)){let o=e.range.slice(Xn.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!xa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(bf(e)&&(e=t1(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Hc(e)&&(e=r1(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${qr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)bf(o)&&e.dependencies.set(r,t1(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(fn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!Jpe.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new Qi,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(Kpe,"")!==e.replace(Kpe,""))continue;return A}}return null}async loadUserConfig(){let e=V.join(this.cwd,".pnp.cjs");await oe.existsPromise(e)&&Df(e).setup();let r=V.join(this.cwd,"yarn.config.cjs");return await oe.existsPromise(r)?Df(r):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[u,A]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,A,this,n,A,{resolver:r,resolveOptions:o});if(!n1(A,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,o);n.dependencies.set(u,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),o=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new oC(a);await n.setup(this,{report:e.report});let u=e.lockfileOnly?[new Xx(a)]:[n,a],A=new Dd([new aC(a),...u]),p=new Dd([...u]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},I=new Map,v=new Map,x=new Map,C=new Map,R=new Map,L=new Map,U=this.topLevelWorkspace.anchoredLocator,J=new Set,te=[],ae=M4(),fe=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Xs.progressViaTitle(),async le=>{let ne=async H=>{let at=await Ky(async()=>await A.resolve(H,E),He=>`${qr(this.configuration,H)}: ${He}`);if(!i1(H,at))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${qr(this.configuration,H)} to ${qr(this.configuration,at)})`);C.set(at.locatorHash,at),!r.delete(at.locatorHash)&&!this.tryWorkspaceByLocator(at)&&o.push(at);let ke=await this.preparePackage(at,{resolver:A,resolveOptions:E}),xe=Uc([...ke.dependencies.values()].map(He=>At(He)));return te.push(xe),xe.catch(()=>{}),v.set(ke.locatorHash,ke),ke},ee=async H=>{let at=R.get(H.locatorHash);if(typeof at<"u")return at;let Re=Promise.resolve().then(()=>ne(H));return R.set(H.locatorHash,Re),Re},Ie=async(H,at)=>{let Re=await At(at);return I.set(H.descriptorHash,H),x.set(H.descriptorHash,Re.locatorHash),Re},Fe=async H=>{le.setTitle(jn(this.configuration,H));let at=this.resolutionAliases.get(H.descriptorHash);if(typeof at<"u")return Ie(H,this.storedDescriptors.get(at));let Re=A.getResolutionDependencies(H,E),ke=Object.fromEntries(await Uc(Object.entries(Re).map(async([Te,Je])=>{let qe=A.bindDescriptor(Je,U,E),b=await At(qe);return J.add(b.locatorHash),[Te,b]}))),He=(await Ky(async()=>await A.getCandidates(H,ke,E),Te=>`${jn(this.configuration,H)}: ${Te}`))[0];if(typeof He>"u")throw new zt(82,`${jn(this.configuration,H)}: No candidates found`);if(e.checkResolutions){let{locators:Te}=await p.getSatisfying(H,ke,[He],{...E,resolver:p});if(!Te.find(Je=>Je.locatorHash===He.locatorHash))throw new zt(78,`Invalid resolution ${ZI(this.configuration,H,He)}`)}return I.set(H.descriptorHash,H),x.set(H.descriptorHash,He.locatorHash),ee(He)},At=H=>{let at=L.get(H.descriptorHash);if(typeof at<"u")return at;I.set(H.descriptorHash,H);let Re=Promise.resolve().then(()=>Fe(H));return L.set(H.descriptorHash,Re),Re};for(let H of this.workspaces){let at=H.anchoredDescriptor;te.push(At(at))}for(;te.length>0;){let H=[...te];te.length=0,await Uc(H)}});let ce=sl(r.values(),le=>this.tryWorkspaceByLocator(le)?sl.skip:le);if(o.length>0||ce.length>0){let le=new Set(this.workspaces.flatMap(H=>{let at=v.get(H.anchoredLocator.locatorHash);if(!at)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(at.dependencies.values(),Re=>{let ke=x.get(Re.descriptorHash);if(!ke)throw new Error("Assertion failed: The resolution should have been registered");return ke})})),ne=H=>le.has(H.locatorHash)?"0":"1",ee=H=>ba(H),Ie=ks(o,[ne,ee]),Fe=ks(ce,[ne,ee]),At=e.report.getRecommendedLength();Ie.length>0&&e.report.reportInfo(85,`${Mt(this.configuration,"+",yt.ADDED)} ${cP(this.configuration,Ie,At)}`),Fe.length>0&&e.report.reportInfo(85,`${Mt(this.configuration,"-",yt.REMOVED)} ${cP(this.configuration,Fe,At)}`)}let me=new Set(this.resolutionAliases.values()),he=new Set(v.keys()),Be=new Set,we=new Map,g=[];kAt({project:this,accessibleLocators:Be,volatileDescriptors:me,optionalBuilds:he,peerRequirements:we,peerWarnings:g,allDescriptors:I,allResolutions:x,allPackages:v});for(let le of J)he.delete(le);for(let le of me)I.delete(le),x.delete(le);let Ee=new Set,Se=new Set;for(let le of v.values())le.conditions!=null&&(!he.has(le.locatorHash)||(qP(le,fe)||(qP(le,ae)&&e.report.reportWarningOnce(77,`${qr(this.configuration,le)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Mt(this.configuration,"supportedArchitectures",yt.SETTING)} setting`),Se.add(le.locatorHash)),Ee.add(le.locatorHash)));this.storedResolutions=x,this.storedDescriptors=I,this.storedPackages=v,this.accessibleLocators=Be,this.conditionalLocators=Ee,this.disabledLocators=Se,this.originalPackages=C,this.optionalBuilds=he,this.peerRequirements=we,this.peerWarnings=g}async fetchEverything({cache:e,report:r,fetcher:o,mode:a,persistProject:n=!0}){let u={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},A=o||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:r,cacheOptions:u},h=Array.from(new Set(ks(this.storedResolutions.values(),[C=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");return ba(R)}])));a==="update-lockfile"&&(h=h.filter(C=>!this.storedChecksums.has(C)));let E=!1,I=Xs.progressViaCounter(h.length);await r.reportProgress(I);let v=(0,ek.default)(PAt);if(await Uc(h.map(C=>v(async()=>{let R=this.storedPackages.get(C);if(!R)throw new Error("Assertion failed: The locator should have been registered");if(Hc(R))return;let L;try{L=await A.fetch(R,p)}catch(U){U.message=`${qr(this.configuration,R)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}L.checksum!=null?this.storedChecksums.set(R.locatorHash,L.checksum):this.storedChecksums.delete(R.locatorHash),L.releaseFs&&L.releaseFs()}).finally(()=>{I.tick()}))),E)throw E;let x=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||x){let R=(await Promise.all([...r.cacheMisses].map(async ce=>{let me=this.storedPackages.get(ce),he=this.storedChecksums.get(ce)??null,Be=e.getLocatorPath(me,he);return(await oe.statPromise(Be)).size}))).reduce((ce,me)=>ce+me,0)-(x?.size??0),L=r.cacheMisses.size,U=x?.count??0,J=`${nP(L,{zero:"No new packages",one:"A package was",more:`${Mt(this.configuration,L,yt.NUMBER)} packages were`})} added to the project`,te=`${nP(U,{zero:"none were",one:"one was",more:`${Mt(this.configuration,U,yt.NUMBER)} were`})} removed`,ae=R!==0?` (${Mt(this.configuration,R,yt.SIZE_DIFF)})`:"",fe=U>0?L>0?`${J}, and ${te}${ae}.`:`${J}, but ${te}${ae}.`:`${J}${ae}.`;r.reportInfo(13,fe)}}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(le=>{let ne=le.makeInstaller(h),ee=le.getCustomDataKey(),Ie=this.linkersCustomData.get(ee);return typeof Ie<"u"&&ne.attachCustomData(Ie),[le,ne]})),I=new Map,v=new Map,x=new Map,C=new Map(await Uc([...this.accessibleLocators].map(async le=>{let ne=this.storedPackages.get(le);if(!ne)throw new Error("Assertion failed: The locator should have been registered");return[le,await u.fetch(ne,A)]}))),R=[],L=new Set,U=[];for(let le of this.accessibleLocators){let ne=this.storedPackages.get(le);if(typeof ne>"u")throw new Error("Assertion failed: The locator should have been registered");let ee=C.get(ne.locatorHash);if(typeof ee>"u")throw new Error("Assertion failed: The fetch result should have been registered");let Ie=[],Fe=H=>{Ie.push(H)},At=this.tryWorkspaceByLocator(ne);if(At!==null){let H=[],{scripts:at}=At.manifest;for(let ke of["preinstall","install","postinstall"])at.has(ke)&&H.push({type:0,script:ke});try{for(let[ke,xe]of E)if(ke.supportsPackage(ne,h)&&(await xe.installPackage(ne,ee,{holdFetchResult:Fe})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{Ie.length===0?ee.releaseFs?.():R.push(Uc(Ie).catch(()=>{}).then(()=>{ee.releaseFs?.()}))}let Re=V.join(ee.packageFs.getRealPath(),ee.prefixPath);v.set(ne.locatorHash,Re),!Hc(ne)&&H.length>0&&x.set(ne.locatorHash,{buildDirectives:H,buildLocations:[Re]})}else{let H=p.find(ke=>ke.supportsPackage(ne,h));if(!H)throw new zt(12,`${qr(this.configuration,ne)} isn't supported by any available linker`);let at=E.get(H);if(!at)throw new Error("Assertion failed: The installer should have been registered");let Re;try{Re=await at.installPackage(ne,ee,{holdFetchResult:Fe})}finally{Ie.length===0?ee.releaseFs?.():R.push(Uc(Ie).then(()=>{}).then(()=>{ee.releaseFs?.()}))}I.set(ne.locatorHash,H),v.set(ne.locatorHash,Re.packageLocation),Re.buildRequest&&Re.packageLocation&&(Re.buildRequest.skipped?(L.add(ne.locatorHash),this.skippedBuilds.has(ne.locatorHash)||U.push([ne,Re.buildRequest.explain])):x.set(ne.locatorHash,{buildDirectives:Re.buildRequest.directives,buildLocations:[Re.packageLocation]}))}}let J=new Map;for(let le of this.accessibleLocators){let ne=this.storedPackages.get(le);if(!ne)throw new Error("Assertion failed: The locator should have been registered");let ee=this.tryWorkspaceByLocator(ne)!==null,Ie=async(Fe,At)=>{let H=v.get(ne.locatorHash);if(typeof H>"u")throw new Error(`Assertion failed: The package (${qr(this.configuration,ne)}) should have been registered`);let at=[];for(let Re of ne.dependencies.values()){let ke=this.storedResolutions.get(Re.descriptorHash);if(typeof ke>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,Re)}, from ${qr(this.configuration,ne)})should have been registered`);let xe=this.storedPackages.get(ke);if(typeof xe>"u")throw new Error(`Assertion failed: The package (${ke}, resolved from ${jn(this.configuration,Re)}) should have been registered`);let He=this.tryWorkspaceByLocator(xe)===null?I.get(ke):null;if(typeof He>"u")throw new Error(`Assertion failed: The package (${ke}, resolved from ${jn(this.configuration,Re)}) should have been registered`);He===Fe||He===null?v.get(xe.locatorHash)!==null&&at.push([Re,xe]):!ee&&H!==null&&Yy(J,ke).push(H)}H!==null&&await At.attachInternalDependencies(ne,at)};if(ee)for(let[Fe,At]of E)Fe.supportsPackage(ne,h)&&await Ie(Fe,At);else{let Fe=I.get(ne.locatorHash);if(!Fe)throw new Error("Assertion failed: The linker should have been found");let At=E.get(Fe);if(!At)throw new Error("Assertion failed: The installer should have been registered");await Ie(Fe,At)}}for(let[le,ne]of J){let ee=this.storedPackages.get(le);if(!ee)throw new Error("Assertion failed: The package should have been registered");let Ie=I.get(ee.locatorHash);if(!Ie)throw new Error("Assertion failed: The linker should have been found");let Fe=E.get(Ie);if(!Fe)throw new Error("Assertion failed: The installer should have been registered");await Fe.attachExternalDependents(ee,ne)}let te=new Map;for(let[le,ne]of E){let ee=await ne.finalizeInstall();for(let Ie of ee?.records??[])Ie.buildRequest.skipped?(L.add(Ie.locator.locatorHash),this.skippedBuilds.has(Ie.locator.locatorHash)||U.push([Ie.locator,Ie.buildRequest.explain])):x.set(Ie.locator.locatorHash,{buildDirectives:Ie.buildRequest.directives,buildLocations:Ie.buildLocations});typeof ee?.customData<"u"&&te.set(le.getCustomDataKey(),ee.customData)}if(this.linkersCustomData=te,await Uc(R),a==="skip-build")return;for(let[,le]of ks(U,([ne])=>ba(ne)))le(r);let ae=new Set(this.storedPackages.keys()),fe=new Set(x.keys());for(let le of fe)ae.delete(le);let ce=(0,Zx.createHash)("sha512");ce.update(process.versions.node),await this.configuration.triggerHook(le=>le.globalHashGeneration,this,le=>{ce.update("\0"),ce.update(le)});let me=ce.digest("hex"),he=new Map,Be=le=>{let ne=he.get(le.locatorHash);if(typeof ne<"u")return ne;let ee=this.storedPackages.get(le.locatorHash);if(typeof ee>"u")throw new Error("Assertion failed: The package should have been registered");let Ie=(0,Zx.createHash)("sha512");Ie.update(le.locatorHash),he.set(le.locatorHash,"");for(let Fe of ee.dependencies.values()){let At=this.storedResolutions.get(Fe.descriptorHash);if(typeof At>"u")throw new Error(`Assertion failed: The resolution (${jn(this.configuration,Fe)}) should have been registered`);let H=this.storedPackages.get(At);if(typeof H>"u")throw new Error("Assertion failed: The package should have been registered");Ie.update(Be(H))}return ne=Ie.digest("hex"),he.set(le.locatorHash,ne),ne},we=(le,ne)=>{let ee=(0,Zx.createHash)("sha512");ee.update(me),ee.update(Be(le));for(let Ie of ne)ee.update(Ie);return ee.digest("hex")},g=new Map,Ee=!1,Se=le=>{let ne=new Set([le.locatorHash]);for(let ee of ne){let Ie=this.storedPackages.get(ee);if(!Ie)throw new Error("Assertion failed: The package should have been registered");for(let Fe of Ie.dependencies.values()){let At=this.storedResolutions.get(Fe.descriptorHash);if(!At)throw new Error(`Assertion failed: The resolution (${jn(this.configuration,Fe)}) should have been registered`);if(At!==le.locatorHash&&fe.has(At))return!1;let H=this.storedPackages.get(At);if(!H)throw new Error("Assertion failed: The package should have been registered");let at=this.tryWorkspaceByLocator(H);if(at){if(at.anchoredLocator.locatorHash!==le.locatorHash&&fe.has(at.anchoredLocator.locatorHash))return!1;ne.add(at.anchoredLocator.locatorHash)}ne.add(At)}}return!0};for(;fe.size>0;){let le=fe.size,ne=[];for(let ee of fe){let Ie=this.storedPackages.get(ee);if(!Ie)throw new Error("Assertion failed: The package should have been registered");if(!Se(Ie))continue;let Fe=x.get(Ie.locatorHash);if(!Fe)throw new Error("Assertion failed: The build directive should have been registered");let At=we(Ie,Fe.buildLocations);if(this.storedBuildState.get(Ie.locatorHash)===At){g.set(Ie.locatorHash,At),fe.delete(ee);continue}Ee||(await this.persistInstallStateFile(),Ee=!0),this.storedBuildState.has(Ie.locatorHash)?r.reportInfo(8,`${qr(this.configuration,Ie)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${qr(this.configuration,Ie)} must be built because it never has been before or the last one failed`);let H=Fe.buildLocations.map(async at=>{if(!V.isAbsolute(at))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${at})`);for(let Re of Fe.buildDirectives){let ke=`# This file contains the result of Yarn building a package (${ba(Ie)}) `;switch(Re.type){case 0:ke+=`# Script name: ${Re.script} `;break;case 1:ke+=`# Script code: ${Re.script} `;break}let xe=null;if(!await oe.mktempPromise(async Te=>{let Je=V.join(Te,"build.log"),{stdout:qe,stderr:b}=this.configuration.getSubprocessStreams(Je,{header:ke,prefix:qr(this.configuration,Ie),report:r}),w;try{switch(Re.type){case 0:w=await Wb(Ie,Re.script,[],{cwd:at,project:this,stdin:xe,stdout:qe,stderr:b});break;case 1:w=await EU(Ie,Re.script,[],{cwd:at,project:this,stdin:xe,stdout:qe,stderr:b});break}}catch(F){b.write(F.stack),w=1}if(qe.end(),b.end(),w===0)return!0;oe.detachTemp(Te);let P=`${qr(this.configuration,Ie)} couldn't be built successfully (exit code ${Mt(this.configuration,w,yt.NUMBER)}, logs can be found here: ${Mt(this.configuration,Je,yt.PATH)})`,y=this.optionalBuilds.has(Ie.locatorHash);return y?r.reportInfo(9,P):r.reportError(9,P),Kce&&r.reportFold(ue.fromPortablePath(Je),oe.readFileSync(Je,"utf8")),y}))return!1}return!0});ne.push(...H,Promise.allSettled(H).then(at=>{fe.delete(ee),at.every(Re=>Re.status==="fulfilled"&&Re.value===!0)&&g.set(Ie.locatorHash,At)}))}if(await Uc(ne),le===fe.size){let ee=Array.from(fe).map(Ie=>{let Fe=this.storedPackages.get(Ie);if(!Fe)throw new Error("Assertion failed: The package should have been registered");return qr(this.configuration,Fe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ee})`);break}}this.storedBuildState=g,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Nt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");Ke.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,I]of E)for(let v of I)v.status="inactive";let n=V.join(this.cwd,dr.lockfile),u=null;if(e.immutable)try{u=await oe.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new zt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{QAt(this,e.report);for(let[,E]of a)for(let[,I]of E)for(let v of I)if(v.userProvided){let x=Mt(this.configuration,v,yt.PACKAGE_EXTENSION);switch(v.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=_g(u,this.generateLockfile());if(E!==u){let I=Ape(n,n,u,E,void 0,void 0,{maxEditLength:100});if(I){e.report.reportSeparator();for(let v of I.hunks){e.report.reportInfo(null,`@@ -${v.oldStart},${v.oldLines} +${v.newStart},${v.newLines} @@`);for(let x of v.lines)x.startsWith("+")?e.report.reportError(28,Mt(this.configuration,x,yt.ADDED)):x.startsWith("-")?e.report.reportError(28,Mt(this.configuration,x,yt.REMOVED)):e.report.reportInfo(null,Mt(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new zt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,I]of E)for(let v of I)v.userProvided&&v.status==="active"&&Ke.telemetry?.reportPackageExtension(Ed(v,yt.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>LP(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Mt(this.configuration,"mode=update-lockfile",yt.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async I=>LP(I,{cwd:this.cwd})));for(let I=0;I{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,I)=>{e.report.reportWarning(E,I)},reportError:(E,I)=>{e.report.reportError(E,I),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,u]of this.storedResolutions.entries()){let A=e.get(u);A||e.set(u,A=new Set),A.add(n)}let r={},{cacheKey:o}=Lr.getCacheKey(this.configuration);r.__metadata={version:tk,cacheKey:o};for(let[n,u]of e.entries()){let A=this.originalPackages.get(n);if(!A)continue;let p=[];for(let I of u){let v=this.storedDescriptors.get(I);if(!v)throw new Error("Assertion failed: The descriptor should have been registered");p.push(v)}let h=p.map(I=>Pa(I)).sort().join(", "),E=new Ot;E.version=A.linkType==="HARD"?A.version:"0.0.0-use.local",E.languageName=A.languageName,E.dependencies=new Map(A.dependencies),E.peerDependencies=new Map(A.peerDependencies),E.dependenciesMeta=new Map(A.dependenciesMeta),E.peerDependenciesMeta=new Map(A.peerDependenciesMeta),E.bin=new Map(A.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:A.linkType.toLowerCase(),resolution:ba(A),checksum:this.storedChecksums.get(A.locatorHash),conditions:A.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. `,`# Manual changes might be lost - proceed with caution! `].join("")} `+Ba(r)}async persistLockfile(){let e=V.join(this.cwd,dr.lockfile),r="";try{r=await oe.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=_g(r,o);a!==r&&(await oe.writeFilePromise(e,a),this.lockFileChecksum=Vpe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(b_))e.push(...u);let r=(0,$x.default)(this,e),o=x_.default.serialize(r),a=zs(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await oe.mkdirPromise(V.dirname(n),{recursive:!0}),await oe.writeFilePromise(n,await bAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await xAt(await oe.readFilePromise(a));n=x_.default.deserialize(u),this.installStateChecksum=zs(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,$x.default)(n,b_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,$x.default)(n,b_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new Qi}),await this.persistInstallStateFile()}async persist(){let e=(0,ek.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!CM(e.cwd,this.cwd)||!await oe.existsPromise(e.cwd))return null;let a=[];for(let u of await oe.readdirPromise(e.cwd)){if(o.has(u))continue;let A=V.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Mt(this.configuration,V.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(oe.lstatPromise(A).then(async p=>(await oe.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function FAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,I=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(I={},I.lastUpdate=h?t.timeNow:n,I.lastTips=A,I.blocks=h?{}:t.state.blocks,I.displayedTips=t.state.displayedTips),{nextState:I,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var uC,Xpe=Et(()=>{St();L1();nh();Ib();ql();Qf();uC=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!oe.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&rn?kf(rn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){md(this.values,e).add(r)}reportEnumerator(e,r){md(this.enumerators,e).add(zs(r))}reportHit(e,r="*"){let o=Wy(this.hits,e),a=ol(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return V.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=oe.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=FAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{oe.mkdirSync(V.dirname(r),{recursive:!0}),oe.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=I=>O4(h,I,{configuration:this.configuration}).catch(()=>{});for(let[I,v]of Object.entries(o.blocks??{})){if(Object.keys(v).length===0)continue;let x=v;x.userId=I,x.reportType="primary";for(let L of Object.keys(x.enumerators??{}))x.enumerators[L]=x.enumerators[L].length;E(x);let C=new Map,R=20;for(let[L,U]of Object.entries(x.values))U.length>0&&C.set(L,U.slice(0,R));for(;C.size>0;){let L={};L.userId=I,L.reportType="secondary",L.metrics={};for(let[U,J]of C)L.metrics[U]=J.shift(),J.length===0&&C.delete(U);E(L)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=oe.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),oe.mkdirSync(V.dirname(e),{recursive:!0}),oe.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var o2={};Vt(o2,{BuildDirectiveType:()=>Vx,CACHE_CHECKPOINT:()=>c_,CACHE_VERSION:()=>Kx,Cache:()=>Lr,Configuration:()=>Ke,DEFAULT_RC_FILENAME:()=>G4,FormatType:()=>xle,InstallMode:()=>pl,LEGACY_PLUGINS:()=>v1,LOCKFILE_VERSION:()=>tk,LegacyMigrationResolver:()=>oC,LightReport:()=>AA,LinkType:()=>zy,LockfileResolver:()=>aC,Manifest:()=>Ot,MessageName:()=>wr,MultiFetcher:()=>hE,PackageExtensionStatus:()=>BL,PackageExtensionType:()=>IL,PeerWarningType:()=>rk,Project:()=>Pt,Report:()=>Xs,ReportError:()=>zt,SettingsType:()=>D1,StreamReport:()=>Nt,TAG_REGEXP:()=>FE,TelemetryManager:()=>uC,ThrowReport:()=>Qi,VirtualFetcher:()=>gE,WindowsLinkType:()=>xb,Workspace:()=>cC,WorkspaceFetcher:()=>mE,WorkspaceResolver:()=>Xn,YarnVersion:()=>rn,execUtils:()=>Ur,folderUtils:()=>YP,formatUtils:()=>de,hashUtils:()=>wn,httpUtils:()=>nn,miscUtils:()=>_e,nodeUtils:()=>Ji,parseMessageName:()=>AS,reportOptionDeprecations:()=>LE,scriptUtils:()=>un,semverUtils:()=>kr,stringifyMessageName:()=>Wu,structUtils:()=>W,tgzUtils:()=>Xi,treeUtils:()=>$s});var Ye=Et(()=>{Db();WP();jl();nh();Ib();ql();vb();BU();Qf();bo();Xfe();ipe();u_();S1();S1();ope();A_();ape();f_();fE();fS();cM();zpe();Yl();O1();Xpe();S_();AM();fM();vd();P_();L1();Cne()});var nhe=_((K_t,l2)=>{"use strict";var TAt=process.env.TERM_PROGRAM==="Hyper",NAt=process.platform==="win32",ehe=process.platform==="linux",F_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},the=Object.assign({},F_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),rhe=Object.assign({},F_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:ehe?"\u25B8":"\u276F",pointerSmall:ehe?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});l2.exports=NAt&&!TAt?the:rhe;Reflect.defineProperty(l2.exports,"common",{enumerable:!1,value:F_});Reflect.defineProperty(l2.exports,"windows",{enumerable:!1,value:the});Reflect.defineProperty(l2.exports,"other",{enumerable:!1,value:rhe})});var Kc=_((V_t,R_)=>{"use strict";var LAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),OAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,ihe=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let I=u+h+A;return E?I.replace(/\r*\n/g,`${A}$&${u}`):I},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` `),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=OAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!LAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=nhe(),t.define=a,t};R_.exports=ihe();R_.exports.create=ihe});var No=_(sn=>{"use strict";var MAt=Object.prototype.toString,rc=Kc(),she=!1,T_=[],ohe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};sn.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);sn.hasColor=t=>!!t&&rc.hasColor(t);var ik=sn.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);sn.nativeType=t=>MAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");sn.isAsyncFn=t=>sn.nativeType(t)==="asyncfunction";sn.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";sn.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;sn.scrollDown=(t=[])=>[...t.slice(1),t[0]];sn.scrollUp=(t=[])=>[t.pop(),...t];sn.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};sn.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};sn.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};sn.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` `+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};sn.unmute=t=>{let e=t.stack.find(o=>rc.keys.color.includes(o));return e?rc[e]:t.stack.find(o=>o.slice(2)==="bg")?rc[e.slice(2)]:o=>o};sn.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";sn.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o));if(e){let o=rc["bg"+sn.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?rc[r.slice(2).toLowerCase()]||t:rc.none};sn.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>rc.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return rc[ohe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=ohe[o];return a&&rc["bg"+sn.pascal(a)]||t}return rc.none};sn.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};sn.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!sn.isObject(A)&&n{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};sn.mixin=(t,e)=>{if(!ik(t))return e;if(!ik(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&ik(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);ik(a.value)?t[r]=sn.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};sn.merge=(...t)=>{let e={};for(let r of t)sn.mixin(e,r);return e};sn.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?sn.define(t,o,a.bind(e)):sn.define(t,o,a)}};sn.onExit=t=>{let e=(r,o)=>{she||(she=!0,T_.forEach(a=>a()),r===!0&&process.exit(128+o))};T_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),T_.push(t)};sn.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};sn.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var ahe=_(hC=>{"use strict";hC.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};hC.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};hC.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};hC.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};hC.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var uhe=_((X_t,che)=>{"use strict";var lhe=ve("readline"),UAt=ahe(),_At=/^(?:\x1b)([a-zA-Z0-9])$/,HAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,qAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function jAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function GAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var sk=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` `)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+"a".charCodeAt(0)-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=_At.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=HAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=qAt[n],o.shift=jAt(n)||o.shift,o.ctrl=GAt(n)||o.ctrl}return o};sk.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=lhe.createInterface({terminal:!0,input:r});lhe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,sk(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};sk.action=(t,e,r)=>{let o={...UAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};che.exports=sk});var fhe=_((Z_t,Ahe)=>{"use strict";Ahe.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(!!e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),YAt(t,r,o)}};function YAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var hhe=_(($_t,phe)=>{"use strict";var{define:WAt,width:KAt}=No(),N_=class{constructor(e){let r=e.options;WAt(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=KAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};phe.exports=N_});var dhe=_((e8t,ghe)=>{"use strict";var L_=No(),eo=Kc(),O_={default:eo.noop,noop:eo.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||L_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||L_.complement(this.primary)},primary:eo.cyan,success:eo.green,danger:eo.magenta,strong:eo.bold,warning:eo.yellow,muted:eo.dim,disabled:eo.gray,dark:eo.dim.gray,underline:eo.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};O_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(eo.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(eo.visible=t.styles.visible);let e=L_.merge({},O_,t.styles);delete e.merge;for(let r of Object.keys(eo))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});for(let r of Object.keys(eo.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>eo[r]});return e};ghe.exports=O_});var yhe=_((t8t,mhe)=>{"use strict";var M_=process.platform==="win32",Vf=Kc(),VAt=No(),U_={...Vf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Vf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Vf.symbols.question,submitted:Vf.symbols.check,cancelled:Vf.symbols.cross},separator:{pending:Vf.symbols.pointerSmall,submitted:Vf.symbols.middot,cancelled:Vf.symbols.middot},radio:{off:M_?"( )":"\u25EF",on:M_?"(*)":"\u25C9",disabled:M_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};U_.merge=t=>{let e=VAt.merge({},Vf.symbols,U_,t.symbols);return delete e.merge,e};mhe.exports=U_});var Che=_((r8t,Ehe)=>{"use strict";var JAt=dhe(),zAt=yhe(),XAt=No();Ehe.exports=t=>{t.options=XAt.merge({},t.options.theme,t.options),t.symbols=zAt.merge(t.options),t.styles=JAt.merge(t.options)}});var Dhe=_((Bhe,vhe)=>{"use strict";var whe=process.env.TERM_PROGRAM==="Apple_Terminal",ZAt=Kc(),__=No(),Vc=vhe.exports=Bhe,Di="\x1B[",Ihe="\x07",H_=!1,Ph=Vc.code={bell:Ihe,beep:Ihe,beginning:`${Di}G`,down:`${Di}J`,esc:Di,getPosition:`${Di}6n`,hide:`${Di}?25l`,line:`${Di}2K`,lineEnd:`${Di}K`,lineStart:`${Di}1K`,restorePosition:Di+(whe?"8":"u"),savePosition:Di+(whe?"7":"s"),screen:`${Di}2J`,show:`${Di}?25h`,up:`${Di}1J`},Gd=Vc.cursor={get hidden(){return H_},hide(){return H_=!0,Ph.hide},show(){return H_=!1,Ph.show},forward:(t=1)=>`${Di}${t}C`,backward:(t=1)=>`${Di}${t}D`,nextLine:(t=1)=>`${Di}E`.repeat(t),prevLine:(t=1)=>`${Di}F`.repeat(t),up:(t=1)=>t?`${Di}${t}A`:"",down:(t=1)=>t?`${Di}${t}B`:"",right:(t=1)=>t?`${Di}${t}C`:"",left:(t=1)=>t?`${Di}${t}D`:"",to(t,e){return e?`${Di}${e+1};${t+1}H`:`${Di}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Gd.left(-t):t>0?Gd.right(t):"",r+=e<0?Gd.up(-e):e>0?Gd.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=__.isPrimitive(o)?String(o):"",a=__.isPrimitive(a)?String(a):"",A=__.isPrimitive(A)?String(A):"",u){let p=Vc.cursor.up(u)+Vc.cursor.to(n.length),h=a.length-r;return h>0&&(p+=Vc.cursor.left(h)),p}if(A||e){let p=!a&&!!o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),Vc.cursor.move(p)}}},q_=Vc.erase={screen:Ph.screen,up:Ph.up,down:Ph.down,line:Ph.line,lineEnd:Ph.lineEnd,lineStart:Ph.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return q_.line+Gd.to(0);let r=n=>[...ZAt.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(q_.line+Gd.prevLine()).repeat(a-1)+q_.line+Gd.to(0)}});var gC=_((n8t,Phe)=>{"use strict";var $At=ve("events"),She=Kc(),j_=uhe(),eft=fhe(),tft=hhe(),rft=Che(),Ra=No(),Yd=Dhe(),c2=class extends $At{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,rft(this),eft(this),this.state=new tft(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=ift(this.options.margin),this.setMaxListeners(0),nft(this)}async keypress(e,r={}){this.keypressed=!0;let o=j_.action(e,j_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Yd.code.beep)}cursorHide(){this.stdout.write(Yd.cursor.hide()),Ra.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Yd.cursor.show())}write(e){!e||(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Yd.cursor.down(e)+Yd.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Yd.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=She.unstyle(o);let a=She.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` `),h=p[0],E=p[p.length-1],v=(o+(r?" "+r:"")).length,x=ve.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let I=await this.resolve(E,n,r,o);return!I&&r&&r[e]?this.resolve(h,n,r,o):I}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,Ra.isObject(e)&&(e=e[o.status]||e.pending),Ra.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return Ra.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return Ra.isObject(n)&&(n=n[o.status]||n.pending),Ra.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&Ra.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=Ra.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&Ra.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return Ra.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return Ra.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return Ra.resolve(this,e,...r)}get base(){return c2.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||Ra.height(this.stdout,25)}get width(){return this.options.columns||Ra.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function nft(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function ift(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` `:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}Phe.exports=c2});var khe=_((i8t,xhe)=>{"use strict";var sft=No(),bhe={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return bhe.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};xhe.exports=(t,e={})=>{let r=sft.merge({},bhe,e.roles);return r[t]||r.default}});var u2=_((s8t,Rhe)=>{"use strict";var oft=Kc(),aft=gC(),lft=khe(),ok=No(),{reorder:G_,scrollUp:cft,scrollDown:uft,isObject:Qhe,swap:Aft}=ok,Y_=class extends aft{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");Qhe(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=lft(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,ok.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,oft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return Fhe(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=G_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(I=>!h.includes(I));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&Number(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=G_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=G_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=cft(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=uft(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){Aft(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(Qhe(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=ok.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return Fhe(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function Fhe(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(ok.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}Rhe.exports=Y_});var bh=_((o8t,The)=>{"use strict";var fft=u2(),W_=No(),K_=class extends fft{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!W_.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!W_.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(W_.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` `),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` `)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,I].filter(Boolean).join(` `)),this.write(this.margin[2]),this.restore()}};The.exports=K_});var Lhe=_((a8t,Nhe)=>{"use strict";var pft=bh(),hft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},V_=class extends pft{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=hft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};Nhe.exports=V_});var z_=_((l8t,Ohe)=>{"use strict";var J_=No();Ohe.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=J_.inverse(t.styles.primary),h=R=>p(t.styles.black(R)),E=r,I=" ",v=h(I);if(t.blink&&t.blink.off===!0&&(h=R=>R,v=""),n&&a===0&&o===""&&r==="")return h(I);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=J_.isPrimitive(o)?`${o}`:"",r=J_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):v;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let R=t.styles.unstyle(E+C);return E+C+A(o.slice(R.length))}return E+C}});var ak=_((c8t,Mhe)=>{"use strict";var gft=Kc(),dft=bh(),mft=z_(),X_=class extends dft{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:I,primary:v,danger:x}=a,C=p,R=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),J=e.message;this.align==="right"&&(J=J.padStart(this.longest+1," ")),this.align==="left"&&(J=J.padEnd(this.longest+1," "));let te=this.values[A]=h||u,ae=h?"success":"dark";await L.call(e,te,this.state)!==!0&&(ae="danger");let fe=a[ae],ce=fe(await this.indicator(e,r))+(e.pad||""),me=this.indent(e),he=()=>[me,ce,J+U,h,C].filter(Boolean).join(" ");if(o.submitted)return J=gft.unstyle(J),h=I(h),C="",he();if(e.format)h=await e.format.call(this,h,e,r);else{let Be=this.styles.muted;h=mft(this,{input:h,initial:u,pos:n,showCursor:R,color:Be})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,te,e,r)),R&&(J=v(J)),e.error?h+=(h?" ":"")+x(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),he()}async submit(){return this.value=this.values,super.base.submit.call(this)}};Mhe.exports=X_});var Z_=_((u8t,_he)=>{"use strict";var yft=ak(),Eft=()=>{throw new Error("expected prompt to have a custom authenticate method")},Uhe=(t=Eft)=>{class e extends yft{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return Uhe(o)}}return e};_he.exports=Uhe()});var jhe=_((A8t,qhe)=>{"use strict";var Cft=Z_();function wft(t,e){return t.username===this.options.username&&t.password===this.options.password}var Hhe=(t=wft)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends Cft.create(t){constructor(a){super({...a,choices:e})}static create(a){return Hhe(a)}}return r};qhe.exports=Hhe()});var lk=_((f8t,Ghe)=>{"use strict";var Ift=gC(),{isPrimitive:Bft,hasColor:vft}=No(),$_=class extends Ift{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return Bft(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return vft(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),I=await this.error()||await this.hint(),v=await this.footer();I&&!A.includes(I)&&(E+=" "+I),A+=" "+E,this.clear(r),this.write([p,A,v].filter(Boolean).join(` `)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};Ghe.exports=$_});var Whe=_((p8t,Yhe)=>{"use strict";var Dft=lk(),e8=class extends Dft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};Yhe.exports=e8});var Vhe=_((h8t,Khe)=>{"use strict";var Sft=bh(),Pft=ak(),dC=Pft.prototype,t8=class extends Sft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():dC.dispatch.call(this,e,r)}append(e,r){return dC.append.call(this,e,r)}delete(e,r){return dC.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?dC.next.call(this):super.next()}prev(){return this.focused.editable?dC.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?dC.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};Khe.exports=t8});var Wd=_((g8t,Jhe)=>{"use strict";var bft=gC(),xft=z_(),{isPrimitive:kft}=No(),r8=class extends bft{constructor(e){super(e),this.initial=kft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` `,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):xft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` `)),this.restore()}};Jhe.exports=r8});var Xhe=_((d8t,zhe)=>{"use strict";var Qft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),ck=t=>Qft(t).filter(Boolean);zhe.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:ck([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:ck([...n,r]),present:u};case"save":return{past:ck([...o,r]),present:""};case"remove":return u=ck(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var i8=_((m8t,$he)=>{"use strict";var Fft=Wd(),Zhe=Xhe(),n8=class extends Fft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=Zhe(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){!this.store||(this.data=Zhe("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};$he.exports=n8});var t0e=_((y8t,e0e)=>{"use strict";var Rft=Wd(),s8=class extends Rft{format(){return""}};e0e.exports=s8});var n0e=_((E8t,r0e)=>{"use strict";var Tft=Wd(),o8=class extends Tft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};r0e.exports=o8});var s0e=_((C8t,i0e)=>{"use strict";var Nft=bh(),a8=class extends Nft{constructor(e){super({...e,multiple:!0})}};i0e.exports=a8});var c8=_((w8t,o0e)=>{"use strict";var Lft=Wd(),l8=class extends Lft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return othis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};o0e.exports=l8});var l0e=_((I8t,a0e)=>{a0e.exports=c8()});var u0e=_((B8t,c0e)=>{"use strict";var Oft=Wd(),u8=class extends Oft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};c0e.exports=u8});var p0e=_((v8t,f0e)=>{"use strict";var Mft=Kc(),Uft=u2(),A0e=No(),A8=class extends Uft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` `)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!A0e.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),I=this.margin[1]+this.margin[3];this.scaleLength=Mft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-I.length);let x=A0e.wordWrap(h,{width:this.widths[0],newline:A}).split(` `).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(` `)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` `)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),I=await this.renderChoices(),v=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!I.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,I,v].filter(Boolean).join(` `)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};f0e.exports=A8});var d0e=_((D8t,g0e)=>{"use strict";var h0e=Kc(),_ft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",p8=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=_ft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Hft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,I=()=>n[++E],v=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});Eae.name===U.key);U.field=a.find(ae=>ae.name===U.key),te||(te=new p8(U),A.push(te)),te.lines.push(U.line-1);continue}let R=u[u.length-1];R.type==="text"&&R.line===h?R.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};g0e.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Hft(e,o),A=f8("result",t,e),p=f8("format",t,e),h=f8("validate",t,e,!0),E=t.isValue.bind(t);return async(I={},v=!1)=>{let x=0;I.required=r,I.items=n,I.keys=u,I.output="";let C=async(J,te,ae,fe)=>{let ce=await h(J,te,ae,fe);return ce===!1?"Invalid field "+ae.name:ce};for(let J of a){let te=J.value,ae=J.key;if(J.type!=="template"){te&&(I.output+=te);continue}if(J.type==="template"){let fe=n.find(we=>we.name===ae);e.required===!0&&I.required.add(fe.name);let ce=[fe.input,I.values[fe.value],fe.value,te].find(E),he=(fe.field||{}).message||J.inner;if(v){let we=await C(I.values[ae],I,fe,x);if(we&&typeof we=="string"||we===!1){I.invalid.set(ae,we);continue}I.invalid.delete(ae);let g=await A(I.values[ae],I,fe,x);I.output+=h0e.unstyle(g);continue}fe.placeholder=!1;let Be=te;te=await p(te,I,fe,x),ce!==te?(I.values[ae]=ce,te=t.styles.typing(ce),I.missing.delete(he)):(I.values[ae]=void 0,ce=`<${he}>`,te=t.styles.primary(ce),fe.placeholder=!0,I.required.has(ae)&&I.missing.add(he)),I.missing.has(he)&&I.validating&&(te=t.styles.warning(ce)),I.invalid.has(ae)&&I.validating&&(te=t.styles.danger(ce)),x===I.index&&(Be!==te?te=t.styles.underline(te):te=t.styles.heading(h0e.unstyle(te))),x++}te&&(I.output+=te)}let R=I.output.split(` `).map(J=>" "+J),L=n.length,U=0;for(let J of n)I.invalid.has(J.name)&&J.lines.forEach(te=>{R[te][0]===" "&&(R[te]=I.styles.danger(I.symbols.bullet)+R[te].slice(1))}),t.isValue(I.values[J.name])&&U++;return I.completed=(U/L*100).toFixed(0),I.output=R.join(` `),I.output}};function f8(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var y0e=_((S8t,m0e)=>{"use strict";var qft=Kc(),jft=d0e(),Gft=gC(),h8=class extends Gft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await jft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` `].find(J=>J!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),I=await this.error()||"",v=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",R=await this.format(C),L=await this.footer();R&&(h+=" "+R),v&&!R&&this.state.completed===0&&(h+=" "+v),this.clear(a);let U=[E,h,x,L,I.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} `;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=qft.unstyle(o).split(` `).map(A=>A.slice(1)).join(` `);return this.value={values:a,result:u},super.submit()}};m0e.exports=h8});var C0e=_((P8t,E0e)=>{"use strict";var Yft="(Use + to sort)",Wft=bh(),g8=class extends Wft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Yft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};E0e.exports=g8});var I0e=_((b8t,w0e)=>{"use strict";var Kft=u2(),d8=class extends Kft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=Vft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",I=o?this.styles.heading:this.styles.noop,v=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,ae)=>h(ae===e.scaleIdx)).join(A),R=te=>te===e.scaleIdx?I(te):te,L=x+e.scale.map((te,ae)=>R(ae)).join(p),U=()=>[E,v].filter(Boolean).join(" "),J=()=>[U(),C,L," "].filter(Boolean).join(` `);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),J()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` `)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),I=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,I].filter(Boolean).join(` `)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function Vft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o{B0e.exports=i8()});var S0e=_((k8t,D0e)=>{"use strict";var Jft=lk(),m8=class extends Jft{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` `)),this.write(this.margin[2]),this.restore()}};D0e.exports=m8});var b0e=_((Q8t,P0e)=>{"use strict";var zft=bh(),y8=class extends zft{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};P0e.exports=y8});var k0e=_(E8=>{"use strict";var x0e=No(),As=(t,e)=>{x0e.defineExport(E8,t,e),x0e.defineExport(E8,t.toLowerCase(),e)};As("AutoComplete",()=>Lhe());As("BasicAuth",()=>jhe());As("Confirm",()=>Whe());As("Editable",()=>Vhe());As("Form",()=>ak());As("Input",()=>i8());As("Invisible",()=>t0e());As("List",()=>n0e());As("MultiSelect",()=>s0e());As("Numeral",()=>l0e());As("Password",()=>u0e());As("Scale",()=>p0e());As("Select",()=>bh());As("Snippet",()=>y0e());As("Sort",()=>C0e());As("Survey",()=>I0e());As("Text",()=>v0e());As("Toggle",()=>S0e());As("Quiz",()=>b0e())});var F0e=_((R8t,Q0e)=>{Q0e.exports={ArrayPrompt:u2(),AuthPrompt:Z_(),BooleanPrompt:lk(),NumberPrompt:c8(),StringPrompt:Wd()}});var f2=_((T8t,T0e)=>{"use strict";var R0e=ve("assert"),w8=ve("events"),xh=No(),Jc=class extends w8{constructor(e,r){super(),this.options=xh.merge({},e),this.answers={...r}}register(e,r){if(xh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}R0e.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(xh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=xh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=xh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];R0e(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||gC()}static get prompts(){return k0e()}static get types(){return F0e()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return xh.mixinEmitter(e,new w8),e}};xh.mixinEmitter(Jc,new w8);var C8=Jc.prompts;for(let t of Object.keys(C8)){let e=t.toLowerCase(),r=o=>new C8[t](o).run();Jc.prompt[e]=r,Jc[e]=r,Jc[t]||Reflect.defineProperty(Jc,t,{get:()=>C8[t]})}var A2=t=>{xh.defineExport(Jc,t,()=>Jc.types[t])};A2("ArrayPrompt");A2("AuthPrompt");A2("BooleanPrompt");A2("NumberPrompt");A2("StringPrompt");T0e.exports=Jc});var d2=_((dHt,H0e)=>{var rpt=zx();function npt(t,e,r){var o=t==null?void 0:rpt(t,e);return o===void 0?r:o}H0e.exports=npt});var G0e=_((IHt,j0e)=>{function ipt(t,e){for(var r=-1,o=t==null?0:t.length;++r{var spt=dd(),opt=zS();function apt(t,e){return t&&spt(e,opt(e),t)}Y0e.exports=apt});var V0e=_((vHt,K0e)=>{var lpt=dd(),cpt=Gy();function upt(t,e){return t&&lpt(e,cpt(e),t)}K0e.exports=upt});var z0e=_((DHt,J0e)=>{var Apt=dd(),fpt=GS();function ppt(t,e){return Apt(t,fpt(t),e)}J0e.exports=ppt});var P8=_((SHt,X0e)=>{var hpt=jS(),gpt=tP(),dpt=GS(),mpt=WN(),ypt=Object.getOwnPropertySymbols,Ept=ypt?function(t){for(var e=[];t;)hpt(e,dpt(t)),t=gpt(t);return e}:mpt;X0e.exports=Ept});var $0e=_((PHt,Z0e)=>{var Cpt=dd(),wpt=P8();function Ipt(t,e){return Cpt(t,wpt(t),e)}Z0e.exports=Ipt});var b8=_((bHt,ege)=>{var Bpt=YN(),vpt=P8(),Dpt=Gy();function Spt(t){return Bpt(t,Dpt,vpt)}ege.exports=Spt});var rge=_((xHt,tge)=>{var Ppt=Object.prototype,bpt=Ppt.hasOwnProperty;function xpt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&bpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}tge.exports=xpt});var ige=_((kHt,nge)=>{var kpt=$S();function Qpt(t,e){var r=e?kpt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}nge.exports=Qpt});var oge=_((QHt,sge)=>{var Fpt=/\w*$/;function Rpt(t){var e=new t.constructor(t.source,Fpt.exec(t));return e.lastIndex=t.lastIndex,e}sge.exports=Rpt});var Age=_((FHt,uge)=>{var age=pd(),lge=age?age.prototype:void 0,cge=lge?lge.valueOf:void 0;function Tpt(t){return cge?Object(cge.call(t)):{}}uge.exports=Tpt});var pge=_((RHt,fge)=>{var Npt=$S(),Lpt=ige(),Opt=oge(),Mpt=Age(),Upt=oL(),_pt="[object Boolean]",Hpt="[object Date]",qpt="[object Map]",jpt="[object Number]",Gpt="[object RegExp]",Ypt="[object Set]",Wpt="[object String]",Kpt="[object Symbol]",Vpt="[object ArrayBuffer]",Jpt="[object DataView]",zpt="[object Float32Array]",Xpt="[object Float64Array]",Zpt="[object Int8Array]",$pt="[object Int16Array]",eht="[object Int32Array]",tht="[object Uint8Array]",rht="[object Uint8ClampedArray]",nht="[object Uint16Array]",iht="[object Uint32Array]";function sht(t,e,r){var o=t.constructor;switch(e){case Vpt:return Npt(t);case _pt:case Hpt:return new o(+t);case Jpt:return Lpt(t,r);case zpt:case Xpt:case Zpt:case $pt:case eht:case tht:case rht:case nht:case iht:return Upt(t,r);case qpt:return new o;case jpt:case Wpt:return new o(t);case Gpt:return Opt(t);case Ypt:return new o;case Kpt:return Mpt(t)}}fge.exports=sht});var gge=_((THt,hge)=>{var oht=GI(),aht=Ju(),lht="[object Map]";function cht(t){return aht(t)&&oht(t)==lht}hge.exports=cht});var Ege=_((NHt,yge)=>{var uht=gge(),Aht=WS(),dge=KS(),mge=dge&&dge.isMap,fht=mge?Aht(mge):uht;yge.exports=fht});var wge=_((LHt,Cge)=>{var pht=GI(),hht=Ju(),ght="[object Set]";function dht(t){return hht(t)&&pht(t)==ght}Cge.exports=dht});var Dge=_((OHt,vge)=>{var mht=wge(),yht=WS(),Ige=KS(),Bge=Ige&&Ige.isSet,Eht=Bge?yht(Bge):mht;vge.exports=Eht});var x8=_((MHt,xge)=>{var Cht=HS(),wht=G0e(),Iht=rP(),Bht=W0e(),vht=V0e(),Dht=sL(),Sht=eP(),Pht=z0e(),bht=$0e(),xht=zN(),kht=b8(),Qht=GI(),Fht=rge(),Rht=pge(),Tht=aL(),Nht=Hl(),Lht=UI(),Oht=Ege(),Mht=il(),Uht=Dge(),_ht=zS(),Hht=Gy(),qht=1,jht=2,Ght=4,Sge="[object Arguments]",Yht="[object Array]",Wht="[object Boolean]",Kht="[object Date]",Vht="[object Error]",Pge="[object Function]",Jht="[object GeneratorFunction]",zht="[object Map]",Xht="[object Number]",bge="[object Object]",Zht="[object RegExp]",$ht="[object Set]",e0t="[object String]",t0t="[object Symbol]",r0t="[object WeakMap]",n0t="[object ArrayBuffer]",i0t="[object DataView]",s0t="[object Float32Array]",o0t="[object Float64Array]",a0t="[object Int8Array]",l0t="[object Int16Array]",c0t="[object Int32Array]",u0t="[object Uint8Array]",A0t="[object Uint8ClampedArray]",f0t="[object Uint16Array]",p0t="[object Uint32Array]",ri={};ri[Sge]=ri[Yht]=ri[n0t]=ri[i0t]=ri[Wht]=ri[Kht]=ri[s0t]=ri[o0t]=ri[a0t]=ri[l0t]=ri[c0t]=ri[zht]=ri[Xht]=ri[bge]=ri[Zht]=ri[$ht]=ri[e0t]=ri[t0t]=ri[u0t]=ri[A0t]=ri[f0t]=ri[p0t]=!0;ri[Vht]=ri[Pge]=ri[r0t]=!1;function Ak(t,e,r,o,a,n){var u,A=e&qht,p=e&jht,h=e&Ght;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!Mht(t))return t;var E=Nht(t);if(E){if(u=Fht(t),!A)return Sht(t,u)}else{var I=Qht(t),v=I==Pge||I==Jht;if(Lht(t))return Dht(t,A);if(I==bge||I==Sge||v&&!a){if(u=p||v?{}:Tht(t),!A)return p?bht(t,vht(u,t)):Pht(t,Bht(u,t))}else{if(!ri[I])return a?t:{};u=Rht(t,I,A)}}n||(n=new Cht);var x=n.get(t);if(x)return x;n.set(t,u),Uht(t)?t.forEach(function(L){u.add(Ak(L,e,r,L,t,n))}):Oht(t)&&t.forEach(function(L,U){u.set(U,Ak(L,e,r,U,t,n))});var C=h?p?kht:xht:p?Hht:_ht,R=E?void 0:C(t);return wht(R||t,function(L,U){R&&(U=L,L=t[U]),Iht(u,U,Ak(L,e,r,U,t,n))}),u}xge.exports=Ak});var k8=_((UHt,kge)=>{var h0t=x8(),g0t=1,d0t=4;function m0t(t){return h0t(t,g0t|d0t)}kge.exports=m0t});var Q8=_((_Ht,Qge)=>{var y0t=I_();function E0t(t,e,r){return t==null?t:y0t(t,e,r)}Qge.exports=E0t});var Lge=_((WHt,Nge)=>{var C0t=Object.prototype,w0t=C0t.hasOwnProperty;function I0t(t,e){return t!=null&&w0t.call(t,e)}Nge.exports=I0t});var Mge=_((KHt,Oge)=>{var B0t=Lge(),v0t=B_();function D0t(t,e){return t!=null&&v0t(t,e,B0t)}Oge.exports=D0t});var _ge=_((VHt,Uge)=>{function S0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}Uge.exports=S0t});var qge=_((JHt,Hge)=>{var P0t=zx(),b0t=pU();function x0t(t,e){return e.length<2?t:P0t(t,b0t(e,0,-1))}Hge.exports=x0t});var R8=_((zHt,jge)=>{var k0t=jd(),Q0t=_ge(),F0t=qge(),R0t=lC();function T0t(t,e){return e=k0t(e,t),t=F0t(t,e),t==null||delete t[R0t(Q0t(e))]}jge.exports=T0t});var T8=_((XHt,Gge)=>{var N0t=R8();function L0t(t,e){return t==null?!0:N0t(t,e)}Gge.exports=L0t});var Jge=_((S6t,U0t)=>{U0t.exports={name:"@yarnpkg/cli",version:"4.1.1",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^3.2.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var j8=_((n5t,ade)=>{"use strict";ade.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var cde=_((i5t,lde)=>{"use strict";var igt=j8();function sgt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=igt(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}lde.exports=sgt});var fde=_((s5t,Ade)=>{"use strict";var ogt=cde();function agt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var lgt=agt(ogt),cgt="text/plain",ugt="us-ascii",ude=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Agt=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(I=>{let[v,x=""]=I.split("=").map(C=>C.trim());return v==="charset"&&(x=x.toLowerCase(),x===ugt)?"":`${v}${x?`=${x}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==cgt)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function fgt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return Agt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let I=E[0],v=E.index,x=a.pathname.slice(A,v);p+=x.replace(/\/{2,}/g,"/"),p+=I,A=v+I.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];ude(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])ude(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var G8=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>G8.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=fgt(t,e));let a=lgt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};G8.MAX_INPUT_LENGTH=2048;Ade.exports=G8});var gde=_((o5t,hde)=>{"use strict";var pgt=j8();function pde(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=pgt(t);if(t=t.substring(t.indexOf("://")+3),pde(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@"){"use strict";var hgt=fde(),dde=gde();function ggt(t){var e=hgt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),dde(e.protocols)||e.protocols.length===0&&dde(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}mde.exports=ggt});var Cde=_((l5t,Ede)=>{"use strict";var dgt=yde();function Y8(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=dgt(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return Y8.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),I=a.indexOf("raw",2),v=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:I>0?I-1:v>0?v-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var x=a.length>n&&a[n+1]==="-"?n+1:n;a.length>x+2&&["raw","src","blob","tree","edit"].indexOf(a[x+1])>=0&&(r.filepathtype=a[x+1],r.ref=a[x+2],a.length>x+3&&(r.filepath=a.slice(x+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,R=C.exec(r.pathname);return R!=null&&(r.source="bitbucket-server",R[1]==="users"?r.owner="~"+R[2]:r.owner=R[2],r.organization=r.owner,r.name=R[3],a=R[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}Y8.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?mgt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+ygt(t)+a;default:return t.href}};function mgt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function ygt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}Ede.exports=Y8});var Lde=_((H9t,Nde)=>{var xgt=Hb(),kgt=eP(),Qgt=Hl(),Fgt=pE(),Rgt=w_(),Tgt=lC(),Ngt=N1();function Lgt(t){return Qgt(t)?xgt(t,Tgt):Fgt(t)?[t]:kgt(Rgt(Ngt(t)))}Nde.exports=Lgt});function _gt(t,e){return e===1&&Ugt.has(t[0])}function B2(t){let e=Array.isArray(t)?t:(0,Ude.default)(t);return e.map((o,a)=>Ogt.test(o)?`[${o}]`:Mgt.test(o)&&!_gt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function Hgt(t,e){let r=[];if(e.methodName!==null&&r.push(de.pretty(t,e.methodName,de.Type.CODE)),e.file!==null){let o=[];o.push(de.pretty(t,e.file,de.Type.PATH)),e.line!==null&&(o.push(de.pretty(t,e.line,de.Type.NUMBER)),e.column!==null&&o.push(de.pretty(t,e.column,de.Type.NUMBER))),r.push(`(${o.join(de.pretty(t,":","grey"))})`)}return r.join(" ")}function gk(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){let a=new Map,n=new Map,u=[...r.keys()].map(A=>[A,new Map]);for(let[A,p]of[...u,...e]){let h=r.get(A)?.map(x=>({text:x,fixable:!1}))??[],E=!1,I=t.getWorkspaceByCwd(A),v=I.manifest.exportTo({});for(let[x,C]of p){if(C.size>1){let R=[...C].map(([L,U])=>{let J=de.pretty(t.configuration,L,de.Type.INSPECT),te=U.size>0?Hgt(t.configuration,U.values().next().value):null;return te!==null?` ${J} at ${te}`:` ${J}`}).join("");h.push({text:`Conflict detected in constraint targeting ${de.pretty(t.configuration,x,de.Type.CODE)}; conflicting values are:${R}`,fixable:!1})}else{let[[R]]=C,L=(0,Ode.default)(v,x);if(JSON.stringify(L)===JSON.stringify(R))continue;if(!o){let U=typeof L>"u"?`Missing field ${de.pretty(t.configuration,x,de.Type.CODE)}; expected ${de.pretty(t.configuration,R,de.Type.INSPECT)}`:typeof R>"u"?`Extraneous field ${de.pretty(t.configuration,x,de.Type.CODE)} currently set to ${de.pretty(t.configuration,L,de.Type.INSPECT)}`:`Invalid field ${de.pretty(t.configuration,x,de.Type.CODE)}; expected ${de.pretty(t.configuration,R,de.Type.INSPECT)}, found ${de.pretty(t.configuration,L,de.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof R>"u"?(0,_de.default)(v,x):(0,Mde.default)(v,x,R),E=!0}E&&a.set(I,v)}h.length>0&&n.set(I,h)}return{changedWorkspaces:a,remainingErrors:n}}function Hde(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${de.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:de.tuple(de.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:de.tuple(de.Type.NO_HINT,h)}))})}let u={value:de.tuple(de.Type.LOCATOR,o.anchoredLocator),children:_e.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=_e.sortMap(r.children,o=>o.value[1]),r}var Ode,Mde,Ude,_de,wC,Ogt,Mgt,Ugt,v2=Et(()=>{Ye();Ode=$e(d2()),Mde=$e(Q8()),Ude=$e(Lde()),_de=$e(T8()),wC=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;_e.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let I of a)E.has(I)||a.delete(I);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},Ogt=/^[0-9]+$/,Mgt=/^[a-zA-Z0-9_]+$/,Ugt=new Set(["scripts",...Ot.allDependencies])});var qde=_(($9t,sH)=>{var qgt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E0;I--)E[I].equals(E[I-1])&&E.splice(I,1);for(var v=new t.type.Term("[]"),I=E.length-1;I>=0;I--)v=new t.type.Term(".",[E[I],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),I=new t.type.Term("[]"),v=E.length-1;v>=0;v--)I=new t.type.Term(".",[E[v],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var I=p.sort(t.compare),v=new t.type.Term("[]"),x=I.length-1;x>=0;x--)v=new t.type.Term(".",[new t.type.Term("-",[I[x],I[x].pair]),v]),delete I[x].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;if(h===0){for(var v=new t.type.Term("[]"),h=E.length-1;h>=0;h--)v=new t.type.Term(".",[E[h],v]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[v,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],I=A;h>0&&I.indicator==="./2";)E.push(I.args[0]),I=I.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,I=new t.type.Term("[]",[]);E.indicator==="./2";)I=new t.type.Term(".",[E.args[0],I]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[I,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],I=new t.type.Term("[]",[]),v,x=0;x=0;x--)I=new t.type.Term(".",[E[x],I]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,I])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof sH<"u"?sH.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(qgt)});var nme=_(Yr=>{"use strict";var $d=process.platform==="win32",oH="aes-256-cbc",jgt="sha256",Yde="The current environment doesn't support interactive reading from TTY.",Yn=ve("fs"),jde=process.binding("tty_wrap").TTY,lH=ve("child_process"),c0=ve("path"),cH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},zf="none",Xc,BC,Gde=!1,l0,mk,aH,Ggt=0,hH="",Zd=[],yk,Wde=!1,uH=!1,D2=!1;function Kde(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return mk.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function Ygt(t,e){function r(U){var J,te="",ae;for(aH=aH||ve("os").tmpdir();;){J=c0.join(aH,U+te);try{ae=Yn.openSync(J,"wx")}catch(fe){if(fe.code==="EEXIST"){te++;continue}else throw fe}Yn.closeSync(ae);break}return J}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),I=r("readline-sync.exit"),v=r("readline-sync.done"),x=ve("crypto"),C,R,L;C=x.createHash(jgt),C.update(""+process.pid+Ggt+++Math.random()),L=C.digest("hex"),R=x.createDecipher(oH,L),o=Kde(t),$d?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+l0+"%Q%"+o.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+I+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+oH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+v+"%Q%"]):(a="/bin/sh",n=["-c",'("'+l0+'"'+o.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+I+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+oH+'" "'+L+'" >"'+h+'"; echo 1 >"'+v+'"']),D2&&D2("_execFileSync",o);try{lH.spawn(a,n,e)}catch(U){u.error=new Error(U.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Yn.readFileSync(v,{encoding:t.encoding}).trim()!=="1";);return(A=Yn.readFileSync(I,{encoding:t.encoding}).trim())==="0"?u.input=R.update(Yn.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+R.final(t.encoding):(p=Yn.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(Yde+(p?` `+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Yn.unlinkSync(h),Yn.unlinkSync(E),Yn.unlinkSync(I),Yn.unlinkSync(v),u}function Wgt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(l0||($d?process.env.PSModulePath?(l0="powershell.exe",mk=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(l0="cscript.exe",mk=["//nologo",__dirname+"\\read.cs.js"]):(l0="/bin/sh",mk=[__dirname+"/read.sh"])),$d&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),lH.execFileSync){e=Kde(t),D2&&D2("execFileSync",e);try{r.input=lH.execFileSync(l0,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Yde+(o?` `+o:"")),r.error.method="execFileSync",r.error.program=l0,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=Ygt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function AH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=Wgt(t);if(n.error)throw n.error;return n.input}return uH&&uH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof zf=="string")if(zf=null,$d){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),I=0;return(E[0]=+E[0])&&(I+=E[0]*1e4),(E[1]=+E[1])&&(I+=E[1]*100),(E[2]=+E[2])&&(I+=E[2]),I}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),zf=process.stdin.fd,BC=process.stdin._handle;else try{zf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),BC=new jde(zf,!0)}catch{}if(process.stdout.isTTY)Xc=process.stdout.fd;else{try{Xc=Yn.openSync("\\\\.\\CON","w")}catch{}if(typeof Xc!="number")try{Xc=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{zf=Yn.openSync("/dev/tty","r"),BC=process.stdin._handle}catch{}}else try{zf=Yn.openSync("/dev/tty","r"),BC=new jde(zf,!1)}catch{}if(process.stdout.isTTY)Xc=process.stdout.fd;else try{Xc=Yn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,I,v;yk="";function x(C){return C===Gde?!0:BC.setRawMode(C)!==0?!1:(Gde=C,!0)}if(Wde||!BC||typeof Xc!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Yn.writeSync(Xc,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Yn.readSync(zf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(I=p.toString(t.encoding,0,E),yk+=I):(I=` `,yk+=String.fromCharCode(0)),I&&typeof(v=(I.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(I=v,n=!0),I&&(I=I.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),I&&u&&(I=I.replace(u,"")),I&&(A||(t.hideEchoBack?t.mask&&Yn.writeSync(Xc,new Array(I.length+1).join(t.mask)):Yn.writeSync(Xc,I)),e+=I),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Yn.writeSync(Xc,` `),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` `),t.encoding),t.displayOnly?"":hH=t.keepWhitespace||t.keyIn?e:e.trim()}function Kgt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function gH(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function Rs(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(cH),t.unshift(cH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(!!a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=Kgt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function fH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function dH(t,e){var r=c0.normalize($d?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=c0.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+gH(r)+"(?=\\/|\\\\|$)",$d?"i":""),"~")}function vC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,I){var v;return A||typeof(v=e(E))!="string"?p:v?(h||"")+v+(I||""):""}return t.replace(o,n).replace(a,n)}function Vde(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,I){return I.length>3?(E.push(I[0]+"..."+I[I.length-1]),p=!0):I.length&&(E=E.concat(I)),E}return o=t.reduce(function(E,I){return E.concat((I+"").split(""))},[]).reduce(function(E,I){var v,x;return e||(I=I.toLowerCase()),v=/^\d$/.test(I)?1:/^[A-Z]$/.test(I)?2:/^[a-z]$/.test(I)?3:0,r&&v===0?A+=I:(x=I.charCodeAt(0),v&&v===n&&x===u+1?a.push(I):(E=h(E,a),a=[I],n=v),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function Jde(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function zde(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=Vde(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=Jde(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=hH;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=c0.basename(r):t==="cwdHome"&&(r=dH(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=Zd[Zd.length-n]||"")}return r}function Xde(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o And the length must be: $`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,I,v;for(e=e||{},u=vC(e.charlist?e.charlist+"":"$",Xde),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+gH(u)+"]{"+o+","+a+"}$"),r=Vde([u],n.caseSensitive,!0),r.text=Jde(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!v;)n.limit=h,n.limitMessage=E,I=Yr.question(t,n),n.limit=[I,""],n.limitMessage=p,v=Yr.question(A,n);return I};function eme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Yr.question(t,Rs({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Yr.questionInt=function(t,e){return eme(t,e,function(r){return parseInt(r,10)})};Yr.questionFloat=function(t,e){return eme(t,e,parseFloat)};Yr.questionPath=function(t,e){var r,o="",a=Rs({hideEchoBack:!1,limitMessage:`$Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=dH(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(I,v){var x=c0.resolve(I+=v+c0.sep);if(!Yn.existsSync(x))Yn.mkdirSync(x);else if(!Yn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return I},"")}try{if(u=Yn.existsSync(n),r=u?Yn.realpathSync(n):c0.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(c0.dirname(r)),Yn.closeSync(Yn.openSync(r,"w"))),r=Yn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Yn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Yr.question(t,a),r};function tme(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=pH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=pH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Yr.promptCL=function(t,e){var r=Rs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=tme(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Yr.prompt(r),o.args};Yr.promptLoop=function(t,e){for(var r=Rs({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Yr.prompt(r)););};Yr.promptCLLoop=function(t,e){var r=Rs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=tme(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Yr.prompt(r),!o.hRes;);};Yr.promptSimShell=function(t){return Yr.prompt(Rs({hideEchoBack:!1,history:!0},t,{prompt:function(){return $d?"$>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$$ "}()}))};function rme(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Yr.keyIn(t,Rs(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Yr.keyInYN=function(t,e){return rme(t,e)};Yr.keyInYNStrict=function(t,e){return rme(t,e,"yn")};Yr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Yr.keyIn(t,Rs({limit:null},e,{hideEchoBack:!0,mask:""}))};Yr.keyInSelect=function(t,e,r){var o=Rs({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` `;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` `,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` `),o.limit=a,A+=` `,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$]: "),A+=e),n[Yr.keyIn(A,o).toLowerCase()]};Yr.getRawInput=function(){return yk};function S2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Yr.setDefaultOptions(r)[t]}Yr.setPrint=function(){return S2("print",arguments)};Yr.setPrompt=function(){return S2("prompt",arguments)};Yr.setEncoding=function(){return S2("encoding",arguments)};Yr.setMask=function(){return S2("mask",arguments)};Yr.setBufferSize=function(){return S2("bufferSize",arguments)}});var mH=_((t7t,hl)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(w,P,y){var F=tau_file_system.files[w];if(!F){if(y==="read")return null;F={path:w,text:"",type:P,get:function(z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+z)},put:function(z,X){return X==="end_of_file"?(this.text+=z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+z+this.text.substring(X+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var X=Math.floor(z/2);if(this.text.length<=X)return-1;var Z=n(this.text[Math.floor(z/2)],0);return z%2===0?Z&255:Z/256>>>0},put_byte:function(z,X){var Z=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length>>0,ie=(ie&255)<<8|z&255):(ie=ie&255,ie=(z&255)<<8|ie&255),this.text.length===Z?this.text+=u(ie):this.text=this.text.substring(0,Z)+u(ie)+this.text.substring(Z+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[w]=F}return y==="write"&&(F.text=""),F}},tau_user_input={buffer:"",get:function(w,P){for(var y;tau_user_input.buffer.length\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(w,P){return w.get_flag("char_conversion").id==="on"?P.replace(/./g,function(y){return w.get_char_conversion(y)}):P}function U(w){this.thread=w,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(w){return this.tokens=w},U.prototype.new_text=function(w){this.text=w,this.tokens=[]},U.prototype.get_tokens=function(w){var P,y=0,F=0,z=0,X=[],Z=!1;if(w){var ie=this.tokens[w-1];y=ie.len,P=L(this.thread,this.text.substr(ie.len)),F=ie.line,z=ie.start}else P=this.text;if(/^\s*$/.test(P))return null;for(;P!=="";){var Pe=[],Ne=!1;if(/^\n/.exec(P)!==null){F++,z=0,y++,P=P.replace(/\n/,""),Z=!0;continue}for(var ot in R)if(R.hasOwnProperty(ot)){var dt=R[ot].exec(P);dt&&Pe.push({value:dt[0],name:ot,matches:dt})}if(!Pe.length)return this.set_last_tokens([{value:P,matches:[],name:"lexical",line:F,start:z}]);var ie=r(Pe,function(Qr,mr){return Qr.value.length>=mr.value.length?Qr:mr});switch(ie.start=z,ie.line=F,P=P.replace(ie.value,""),z+=ie.value.length,y+=ie.value.length,ie.name){case"atom":ie.raw=ie.value,ie.value.charAt(0)==="'"&&(ie.value=v(ie.value.substr(1,ie.value.length-2),"'"),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence"));break;case"number":ie.float=ie.value.substring(0,2)!=="0x"&&ie.value.match(/[.eE]/)!==null&&ie.value!=="0'.",ie.value=C(ie.value),ie.blank=Ne;break;case"string":var jt=ie.value.charAt(0);ie.value=v(ie.value.substr(1,ie.value.length-2),jt),ie.value===null&&(ie.name="lexical",ie.value="unknown escape sequence");break;case"whitespace":var $t=X[X.length-1];$t&&($t.space=!0),Ne=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(ie=X.pop(),ie.name="atom",ie.value="{}",ie.raw="{}",ie.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(ie=X.pop(),ie.name="atom",ie.value="[]",ie.raw="[]",ie.space=!1);break}ie.len=y,X.push(ie),Ne=!1}var bt=this.set_last_tokens(X);return bt.length===0?null:bt};function J(w,P,y,F,z){if(!P[y])return{type:A,value:b.error.syntax(P[y-1],"expression expected",!0)};var X;if(F==="0"){var Z=P[y];switch(Z.name){case"number":return{type:p,len:y+1,value:new b.type.Num(Z.value,Z.float)};case"variable":return{type:p,len:y+1,value:new b.type.Var(Z.value)};case"string":var ie;switch(w.get_flag("double_quotes").id){case"atom":ie=new H(Z.value,[]);break;case"codes":ie=new H("[]",[]);for(var Pe=Z.value.length-1;Pe>=0;Pe--)ie=new H(".",[new b.type.Num(n(Z.value,Pe),!1),ie]);break;case"chars":ie=new H("[]",[]);for(var Pe=Z.value.length-1;Pe>=0;Pe--)ie=new H(".",[new b.type.Term(Z.value.charAt(Pe),[]),ie]);break}return{type:p,len:y+1,value:ie};case"l_paren":var bt=J(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name==="r_paren"?(bt.len++,bt):{type:A,derived:!0,value:b.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],") or operator expected",!P[bt.len])};case"l_bracket":var bt=J(w,P,y+1,w.__get_max_priority(),!0);return bt.type!==p?bt:P[bt.len]&&P[bt.len].name==="r_bracket"?(bt.len++,bt.value=new H("{}",[bt.value]),bt):{type:A,derived:!0,value:b.error.syntax(P[bt.len]?P[bt.len]:P[bt.len-1],"} or operator expected",!P[bt.len])}}var Ne=te(w,P,y,z);return Ne.type===p||Ne.derived||(Ne=ae(w,P,y),Ne.type===p||Ne.derived)?Ne:{type:A,derived:!1,value:b.error.syntax(P[y],"unexpected token")}}var ot=w.__get_max_priority(),dt=w.__get_next_priority(F),jt=y;if(P[y].name==="atom"&&P[y+1]&&(P[y].space||P[y+1].name!=="l_paren")){var Z=P[y++],$t=w.__lookup_operator_classes(F,Z.value);if($t&&$t.indexOf("fy")>-1){var bt=J(w,P,y,F,z);if(bt.type!==A)return Z.value==="-"&&!Z.space&&b.type.is_number(bt.value)?{value:new b.type.Num(-bt.value.value,bt.value.is_float),len:bt.len,type:p}:{value:new b.type.Term(Z.value,[bt.value]),len:bt.len,type:p};X=bt}else if($t&&$t.indexOf("fx")>-1){var bt=J(w,P,y,dt,z);if(bt.type!==A)return{value:new b.type.Term(Z.value,[bt.value]),len:bt.len,type:p};X=bt}}y=jt;var bt=J(w,P,y,dt,z);if(bt.type===p){y=bt.len;var Z=P[y];if(P[y]&&(P[y].name==="atom"&&w.__lookup_operator_classes(F,Z.value)||P[y].name==="bar"&&w.__lookup_operator_classes(F,"|"))){var an=dt,Qr=F,$t=w.__lookup_operator_classes(F,Z.value);if($t.indexOf("xf")>-1)return{value:new b.type.Term(Z.value,[bt.value]),len:++bt.len,type:p};if($t.indexOf("xfx")>-1){var mr=J(w,P,y+1,an,z);return mr.type===p?{value:new b.type.Term(Z.value,[bt.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if($t.indexOf("xfy")>-1){var mr=J(w,P,y+1,Qr,z);return mr.type===p?{value:new b.type.Term(Z.value,[bt.value,mr.value]),len:mr.len,type:p}:(mr.derived=!0,mr)}else if(bt.type!==A)for(;;){y=bt.len;var Z=P[y];if(Z&&Z.name==="atom"&&w.__lookup_operator_classes(F,Z.value)){var $t=w.__lookup_operator_classes(F,Z.value);if($t.indexOf("yf")>-1)bt={value:new b.type.Term(Z.value,[bt.value]),len:++y,type:p};else if($t.indexOf("yfx")>-1){var mr=J(w,P,++y,an,z);if(mr.type===A)return mr.derived=!0,mr;y=mr.len,bt={value:new b.type.Term(Z.value,[bt.value,mr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:b.error.syntax(P[bt.len-1],"operator expected")};return bt}return bt}function te(w,P,y,F){if(!P[y]||P[y].name==="atom"&&P[y].raw==="."&&!F&&(P[y].space||!P[y+1]||P[y+1].name!=="l_paren"))return{type:A,derived:!1,value:b.error.syntax(P[y-1],"unfounded token")};var z=P[y],X=[];if(P[y].name==="atom"&&P[y].raw!==","){if(y++,P[y-1].space)return{type:p,len:y,value:new b.type.Term(z.value,X)};if(P[y]&&P[y].name==="l_paren"){if(P[y+1]&&P[y+1].name==="r_paren")return{type:A,derived:!0,value:b.error.syntax(P[y+1],"argument expected")};var Z=J(w,P,++y,"999",!0);if(Z.type===A)return Z.derived?Z:{type:A,derived:!0,value:b.error.syntax(P[y]?P[y]:P[y-1],"argument expected",!P[y])};for(X.push(Z.value),y=Z.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(Z=J(w,P,y+1,"999",!0),Z.type===A)return Z.derived?Z:{type:A,derived:!0,value:b.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X.push(Z.value),y=Z.len}if(P[y]&&P[y].name==="r_paren")y++;else return{type:A,derived:!0,value:b.error.syntax(P[y]?P[y]:P[y-1],", or ) expected",!P[y])}}return{type:p,len:y,value:new b.type.Term(z.value,X)}}return{type:A,derived:!1,value:b.error.syntax(P[y],"term expected")}}function ae(w,P,y){if(!P[y])return{type:A,derived:!1,value:b.error.syntax(P[y-1],"[ expected")};if(P[y]&&P[y].name==="l_brace"){var F=J(w,P,++y,"999",!0),z=[F.value],X=void 0;if(F.type===A)return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:new b.type.Term("[]",[])}:{type:A,derived:!0,value:b.error.syntax(P[y],"] expected")};for(y=F.len;P[y]&&P[y].name==="atom"&&P[y].value===",";){if(F=J(w,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:b.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};z.push(F.value),y=F.len}var Z=!1;if(P[y]&&P[y].name==="bar"){if(Z=!0,F=J(w,P,y+1,"999",!0),F.type===A)return F.derived?F:{type:A,derived:!0,value:b.error.syntax(P[y+1]?P[y+1]:P[y],"argument expected",!P[y+1])};X=F.value,y=F.len}return P[y]&&P[y].name==="r_brace"?{type:p,len:y+1,value:g(z,X)}:{type:A,derived:!0,value:b.error.syntax(P[y]?P[y]:P[y-1],Z?"] expected":", or | or ] expected",!P[y])}}return{type:A,derived:!1,value:b.error.syntax(P[y],"list expected")}}function fe(w,P,y){var F=P[y].line,z=J(w,P,y,w.__get_max_priority(),!1),X=null,Z;if(z.type!==A)if(y=z.len,P[y]&&P[y].name==="atom"&&P[y].raw===".")if(y++,b.type.is_term(z.value)){if(z.value.indicator===":-/2"?(X=new b.type.Rule(z.value.args[0],we(z.value.args[1])),Z={value:X,len:y,type:p}):z.value.indicator==="-->/2"?(X=he(new b.type.Rule(z.value.args[0],z.value.args[1]),w),X.body=we(X.body),Z={value:X,len:y,type:b.type.is_rule(X)?p:A}):(X=new b.type.Rule(z.value,null),Z={value:X,len:y,type:p}),X){var ie=X.singleton_variables();ie.length>0&&w.throw_warning(b.warning.singleton(ie,X.head.indicator,F))}return Z}else return{type:A,value:b.error.syntax(P[y],"callable expected")};else return{type:A,value:b.error.syntax(P[y]?P[y]:P[y-1],". or operator expected")};return z}function ce(w,P,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var F=new U(w),z={},X;F.new_text(P);var Z=0,ie=F.get_tokens(Z);do{if(ie===null||!ie[Z])break;var Pe=fe(w,ie,Z);if(Pe.type===A)return new H("throw",[Pe.value]);if(Pe.value.body===null&&Pe.value.head.indicator==="?-/1"){var Ne=new Je(w.session);Ne.add_goal(Pe.value.head.args[0]),Ne.answer(function(dt){b.type.is_error(dt)?w.throw_warning(dt.args[0]):(dt===!1||dt===null)&&w.throw_warning(b.warning.failed_goal(Pe.value.head.args[0],Pe.len))}),Z=Pe.len;var ot=!0}else if(Pe.value.body===null&&Pe.value.head.indicator===":-/1"){var ot=w.run_directive(Pe.value.head.args[0]);Z=Pe.len,Pe.value.head.args[0].indicator==="char_conversion/2"&&(ie=F.get_tokens(Z),Z=0)}else{X=Pe.value.head.indicator,y.reconsult!==!1&&z[X]!==!0&&!w.is_multifile_predicate(X)&&(w.session.rules[X]=a(w.session.rules[X]||[],function(jt){return jt.dynamic}),z[X]=!0);var ot=w.add_rule(Pe.value,y);Z=Pe.len}if(!ot)return ot}while(!0);return!0}function me(w,P){var y=new U(w);y.new_text(P);var F=0;do{var z=y.get_tokens(F);if(z===null)break;var X=J(w,z,0,w.__get_max_priority(),!1);if(X.type!==A){var Z=X.len,ie=Z;if(z[Z]&&z[Z].name==="atom"&&z[Z].raw===".")w.add_goal(we(X.value));else{var Pe=z[Z];return new H("throw",[b.error.syntax(Pe||z[Z-1],". or operator expected",!Pe)])}F=X.len+1}else return new H("throw",[X.value])}while(!0);return!0}function he(w,P){w=w.rename(P);var y=P.next_free_variable(),F=Be(w.body,y,P);return F.error?F.value:(w.body=F.value,w.head.args=w.head.args.concat([y,F.variable]),w.head=new H(w.head.id,w.head.args),w)}function Be(w,P,y){var F;if(b.type.is_term(w)&&w.indicator==="!/0")return{value:w,variable:P,error:!1};if(b.type.is_term(w)&&w.indicator===",/2"){var z=Be(w.args[0],P,y);if(z.error)return z;var X=Be(w.args[1],z.variable,y);return X.error?X:{value:new H(",",[z.value,X.value]),variable:X.variable,error:!1}}else{if(b.type.is_term(w)&&w.indicator==="{}/1")return{value:w.args[0],variable:P,error:!1};if(b.type.is_empty_list(w))return{value:new H("true",[]),variable:P,error:!1};if(b.type.is_list(w)){F=y.next_free_variable();for(var Z=w,ie;Z.indicator==="./2";)ie=Z,Z=Z.args[1];return b.type.is_variable(Z)?{value:b.error.instantiation("DCG"),variable:P,error:!0}:b.type.is_empty_list(Z)?(ie.args[1]=F,{value:new H("=",[P,w]),variable:F,error:!1}):{value:b.error.type("list",w,"DCG"),variable:P,error:!0}}else return b.type.is_callable(w)?(F=y.next_free_variable(),w.args=w.args.concat([P,F]),w=new H(w.id,w.args),{value:w,variable:F,error:!1}):{value:b.error.type("callable",w,"DCG"),variable:P,error:!0}}}function we(w){return b.type.is_variable(w)?new H("call",[w]):b.type.is_term(w)&&[",/2",";/2","->/2"].indexOf(w.indicator)!==-1?new H(w.id,[we(w.args[0]),we(w.args[1])]):w}function g(w,P){for(var y=P||new b.type.Term("[]",[]),F=w.length-1;F>=0;F--)y=new b.type.Term(".",[w[F],y]);return y}function Ee(w,P){for(var y=w.length-1;y>=0;y--)w[y]===P&&w.splice(y,1)}function Se(w){for(var P={},y=[],F=0;F=0;P--)if(w.charAt(P)==="/")return new H("/",[new H(w.substring(0,P)),new Fe(parseInt(w.substring(P+1)),!1)])}function Ie(w){this.id=w}function Fe(w,P){this.is_float=P!==void 0?P:parseInt(w)!==w,this.value=this.is_float?w:parseInt(w)}var At=0;function H(w,P,y){this.ref=y||++At,this.id=w,this.args=P||[],this.indicator=w+"/"+this.args.length}var at=0;function Re(w,P,y,F,z,X){this.id=at++,this.stream=w,this.mode=P,this.alias=y,this.type=F!==void 0?F:"text",this.reposition=z!==void 0?z:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function ke(w){w=w||{},this.links=w}function xe(w,P,y){P=P||new ke,y=y||null,this.goal=w,this.substitution=P,this.parent=y}function He(w,P,y){this.head=w,this.body=P,this.dynamic=y||!1}function Te(w){w=w===void 0||w<=0?1e3:w,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new Je(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=w,this.streams={user_input:new Re(typeof hl<"u"&&hl.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Re(typeof hl<"u"&&hl.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof hl<"u"&&hl.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(P){return P.substitution},this.format_error=function(P){return P.goal},this.flag={bounded:b.flag.bounded.value,max_integer:b.flag.max_integer.value,min_integer:b.flag.min_integer.value,integer_rounding_function:b.flag.integer_rounding_function.value,char_conversion:b.flag.char_conversion.value,debug:b.flag.debug.value,max_arity:b.flag.max_arity.value,unknown:b.flag.unknown.value,double_quotes:b.flag.double_quotes.value,occurs_check:b.flag.occurs_check.value,dialect:b.flag.dialect.value,version_data:b.flag.version_data.value,nodejs:b.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function Je(w){this.epoch=Date.now(),this.session=w,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function qe(w,P,y){this.id=w,this.rules=P,this.exports=y,b.module[w]=this}qe.prototype.exports_predicate=function(w){return this.exports.indexOf(w)!==-1},Ie.prototype.unify=function(w,P){if(P&&e(w.variables(),this.id)!==-1&&!b.type.is_variable(w))return null;var y={};return y[this.id]=w,new ke(y)},Fe.prototype.unify=function(w,P){return b.type.is_number(w)&&this.value===w.value&&this.is_float===w.is_float?new ke:null},H.prototype.unify=function(w,P){if(b.type.is_term(w)&&this.indicator===w.indicator){for(var y=new ke,F=0;F=0){var F=this.args[0].value,z=Math.floor(F/26),X=F%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(w)+"}";case"./2":for(var Z="["+this.args[0].toString(w),ie=this.args[1];ie.indicator==="./2";)Z+=", "+ie.args[0].toString(w),ie=ie.args[1];return ie.indicator!=="[]/0"&&(Z+="|"+ie.toString(w)),Z+="]",Z;case",/2":return"("+this.args[0].toString(w)+", "+this.args[1].toString(w)+")";default:var Pe=this.id,Ne=w.session?w.session.lookup_operator(this.id,this.args.length):null;if(w.session===void 0||w.ignore_ops||Ne===null)return w.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(Pe)&&Pe!=="{}"&&Pe!=="[]"&&(Pe="'"+x(Pe)+"'"),Pe+(this.args.length?"("+o(this.args,function($t){return $t.toString(w)}).join(", ")+")":"");var ot=Ne.priority>P.priority||Ne.priority===P.priority&&(Ne.class==="xfy"&&this.indicator!==P.indicator||Ne.class==="yfx"&&this.indicator!==P.indicator||this.indicator===P.indicator&&Ne.class==="yfx"&&y==="right"||this.indicator===P.indicator&&Ne.class==="xfy"&&y==="left");Ne.indicator=this.indicator;var dt=ot?"(":"",jt=ot?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Ne.class)!==-1?dt+Pe+" "+this.args[0].toString(w,Ne)+jt:["yf","xf"].indexOf(Ne.class)!==-1?dt+this.args[0].toString(w,Ne)+" "+Pe+jt:dt+this.args[0].toString(w,Ne,"left")+" "+this.id+" "+this.args[1].toString(w,Ne,"right")+jt}},Re.prototype.toString=function(w){return"("+this.id+")"},ke.prototype.toString=function(w){var P="{";for(var y in this.links)!this.links.hasOwnProperty(y)||(P!=="{"&&(P+=", "),P+=y+"/"+this.links[y].toString(w));return P+="}",P},xe.prototype.toString=function(w){return this.goal===null?"<"+this.substitution.toString(w)+">":"<"+this.goal.toString(w)+", "+this.substitution.toString(w)+">"},He.prototype.toString=function(w){return this.body?this.head.toString(w)+" :- "+this.body.toString(w)+".":this.head.toString(w)+"."},Te.prototype.toString=function(w){for(var P="",y=0;y=0;z--)F=new H(".",[P[z],F]);return F}return new H(this.id,o(this.args,function(X){return X.apply(w)}),this.ref)},Re.prototype.apply=function(w){return this},He.prototype.apply=function(w){return new He(this.head.apply(w),this.body!==null?this.body.apply(w):null)},ke.prototype.apply=function(w){var P,y={};for(P in this.links)!this.links.hasOwnProperty(P)||(y[P]=this.links[P].apply(w));return new ke(y)},H.prototype.select=function(){for(var w=this;w.indicator===",/2";)w=w.args[0];return w},H.prototype.replace=function(w){return this.indicator===",/2"?this.args[0].indicator===",/2"?new H(",",[this.args[0].replace(w),this.args[1]]):w===null?this.args[1]:new H(",",[w,this.args[1]]):w},H.prototype.search=function(w){if(b.type.is_term(w)&&w.ref!==void 0&&this.ref===w.ref)return!0;for(var P=0;PP&&F0&&(P=this.head_point().substitution.domain());e(P,b.format_variable(this.session.rename))!==-1;)this.session.rename++;if(w.id==="_")return new Ie(b.format_variable(this.session.rename));this.session.renamed_variables[w.id]=b.format_variable(this.session.rename)}return new Ie(this.session.renamed_variables[w.id])},Te.prototype.next_free_variable=function(){return this.thread.next_free_variable()},Je.prototype.next_free_variable=function(){this.session.rename++;var w=[];for(this.points.length>0&&(w=this.head_point().substitution.domain());e(w,b.format_variable(this.session.rename))!==-1;)this.session.rename++;return new Ie(b.format_variable(this.session.rename))},Te.prototype.is_public_predicate=function(w){return!this.public_predicates.hasOwnProperty(w)||this.public_predicates[w]===!0},Je.prototype.is_public_predicate=function(w){return this.session.is_public_predicate(w)},Te.prototype.is_multifile_predicate=function(w){return this.multifile_predicates.hasOwnProperty(w)&&this.multifile_predicates[w]===!0},Je.prototype.is_multifile_predicate=function(w){return this.session.is_multifile_predicate(w)},Te.prototype.prepend=function(w){return this.thread.prepend(w)},Je.prototype.prepend=function(w){for(var P=w.length-1;P>=0;P--)this.points.push(w[P])},Te.prototype.success=function(w,P){return this.thread.success(w,P)},Je.prototype.success=function(w,y){var y=typeof y>"u"?w:y;this.prepend([new xe(w.goal.replace(null),w.substitution,y)])},Te.prototype.throw_error=function(w){return this.thread.throw_error(w)},Je.prototype.throw_error=function(w){this.prepend([new xe(new H("throw",[w]),new ke,null,null)])},Te.prototype.step_rule=function(w,P){return this.thread.step_rule(w,P)},Je.prototype.step_rule=function(w,P){var y=P.indicator;if(w==="user"&&(w=null),w===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var F=w===null?this.session.modules:e(this.session.modules,w)===-1?[]:[w],z=0;z1)&&this.again()},Te.prototype.answers=function(w,P,y){return this.thread.answers(w,P,y)},Je.prototype.answers=function(w,P,y){var F=P||1e3,z=this;if(P<=0){y&&y();return}this.answer(function(X){w(X),X!==!1?setTimeout(function(){z.answers(w,P-1,y)},1):y&&y()})},Te.prototype.again=function(w){return this.thread.again(w)},Je.prototype.again=function(w){for(var P,y=Date.now();this.__calls.length>0;){for(this.warnings=[],w!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!b.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var F=Date.now();this.cpu_time_last=F-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):b.type.is_error(this.head_point().goal)?(P=this.session.format_error(this.points.pop()),this.points=[],z(P)):(this.debugger&&this.debugger_states.push(this.head_point()),P=this.session.format_success(this.points.pop()),z(P))}},Te.prototype.unfold=function(w){if(w.body===null)return!1;var P=w.head,y=w.body,F=y.select(),z=new Je(this),X=[];z.add_goal(F),z.step();for(var Z=z.points.length-1;Z>=0;Z--){var ie=z.points[Z],Pe=P.apply(ie.substitution),Ne=y.replace(ie.goal);Ne!==null&&(Ne=Ne.apply(ie.substitution)),X.push(new He(Pe,Ne))}var ot=this.rules[P.indicator],dt=e(ot,w);return X.length>0&&dt!==-1?(ot.splice.apply(ot,[dt,1].concat(X)),!0):!1},Je.prototype.unfold=function(w){return this.session.unfold(w)},Ie.prototype.interpret=function(w){return b.error.instantiation(w.level)},Fe.prototype.interpret=function(w){return this},H.prototype.interpret=function(w){return b.type.is_unitary_list(this)?this.args[0].interpret(w):b.operate(w,this)},Ie.prototype.compare=function(w){return this.idw.id?1:0},Fe.prototype.compare=function(w){if(this.value===w.value&&this.is_float===w.is_float)return 0;if(this.valuew.value)return 1},H.prototype.compare=function(w){if(this.args.lengthw.args.length||this.args.length===w.args.length&&this.id>w.id)return 1;for(var P=0;PF)return 1;if(w.constructor===Fe){if(w.is_float&&P.is_float)return 0;if(w.is_float)return-1;if(P.is_float)return 1}return 0},is_substitution:function(w){return w instanceof ke},is_state:function(w){return w instanceof xe},is_rule:function(w){return w instanceof He},is_variable:function(w){return w instanceof Ie},is_stream:function(w){return w instanceof Re},is_anonymous_var:function(w){return w instanceof Ie&&w.id==="_"},is_callable:function(w){return w instanceof H},is_number:function(w){return w instanceof Fe},is_integer:function(w){return w instanceof Fe&&!w.is_float},is_float:function(w){return w instanceof Fe&&w.is_float},is_term:function(w){return w instanceof H},is_atom:function(w){return w instanceof H&&w.args.length===0},is_ground:function(w){if(w instanceof Ie)return!1;if(w instanceof H){for(var P=0;P0},is_list:function(w){return w instanceof H&&(w.indicator==="[]/0"||w.indicator==="./2")},is_empty_list:function(w){return w instanceof H&&w.indicator==="[]/0"},is_non_empty_list:function(w){return w instanceof H&&w.indicator==="./2"},is_fully_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof Ie||w instanceof H&&w.indicator==="[]/0"},is_instantiated_list:function(w){for(;w instanceof H&&w.indicator==="./2";)w=w.args[1];return w instanceof H&&w.indicator==="[]/0"},is_unitary_list:function(w){return w instanceof H&&w.indicator==="./2"&&w.args[1]instanceof H&&w.args[1].indicator==="[]/0"},is_character:function(w){return w instanceof H&&(w.id.length===1||w.id.length>0&&w.id.length<=2&&n(w.id,0)>=65536)},is_character_code:function(w){return w instanceof Fe&&!w.is_float&&w.value>=0&&w.value<=1114111},is_byte:function(w){return w instanceof Fe&&!w.is_float&&w.value>=0&&w.value<=255},is_operator:function(w){return w instanceof H&&b.arithmetic.evaluation[w.indicator]},is_directive:function(w){return w instanceof H&&b.directive[w.indicator]!==void 0},is_builtin:function(w){return w instanceof H&&b.predicate[w.indicator]!==void 0},is_error:function(w){return w instanceof H&&w.indicator==="throw/1"},is_predicate_indicator:function(w){return w instanceof H&&w.indicator==="//2"&&w.args[0]instanceof H&&w.args[0].args.length===0&&w.args[1]instanceof Fe&&w.args[1].is_float===!1},is_flag:function(w){return w instanceof H&&w.args.length===0&&b.flag[w.id]!==void 0},is_value_flag:function(w,P){if(!b.type.is_flag(w))return!1;for(var y in b.flag[w.id].allowed)if(!!b.flag[w.id].allowed.hasOwnProperty(y)&&b.flag[w.id].allowed[y].equals(P))return!0;return!1},is_io_mode:function(w){return b.type.is_atom(w)&&["read","write","append"].indexOf(w.id)!==-1},is_stream_option:function(w){return b.type.is_term(w)&&(w.indicator==="alias/1"&&b.type.is_atom(w.args[0])||w.indicator==="reposition/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="type/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary")||w.indicator==="eof_action/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))},is_stream_position:function(w){return b.type.is_integer(w)&&w.value>=0||b.type.is_atom(w)&&(w.id==="end_of_stream"||w.id==="past_end_of_stream")},is_stream_property:function(w){return b.type.is_term(w)&&(w.indicator==="input/0"||w.indicator==="output/0"||w.indicator==="alias/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0]))||w.indicator==="file_name/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0]))||w.indicator==="position/1"&&(b.type.is_variable(w.args[0])||b.type.is_stream_position(w.args[0]))||w.indicator==="reposition/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))||w.indicator==="type/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="text"||w.args[0].id==="binary"))||w.indicator==="mode/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="read"||w.args[0].id==="write"||w.args[0].id==="append"))||w.indicator==="eof_action/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="error"||w.args[0].id==="eof_code"||w.args[0].id==="reset"))||w.indicator==="end_of_stream/1"&&(b.type.is_variable(w.args[0])||b.type.is_atom(w.args[0])&&(w.args[0].id==="at"||w.args[0].id==="past"||w.args[0].id==="not")))},is_streamable:function(w){return w.__proto__.stream!==void 0},is_read_option:function(w){return b.type.is_term(w)&&["variables/1","variable_names/1","singletons/1"].indexOf(w.indicator)!==-1},is_write_option:function(w){return b.type.is_term(w)&&(w.indicator==="quoted/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="ignore_ops/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")||w.indicator==="numbervars/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false"))},is_close_option:function(w){return b.type.is_term(w)&&w.indicator==="force/1"&&b.type.is_atom(w.args[0])&&(w.args[0].id==="true"||w.args[0].id==="false")},is_modifiable_flag:function(w){return b.type.is_flag(w)&&b.flag[w.id].changeable},is_module:function(w){return w instanceof H&&w.indicator==="library/1"&&w.args[0]instanceof H&&w.args[0].args.length===0&&b.module[w.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(w){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(w){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(w){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(w){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(w,P){return w}},"-/1":{type_args:null,type_result:null,fn:function(w,P){return-w}},"\\/1":{type_args:!1,type_result:!1,fn:function(w,P){return~w}},"abs/1":{type_args:null,type_result:null,fn:function(w,P){return Math.abs(w)}},"sign/1":{type_args:null,type_result:null,fn:function(w,P){return Math.sign(w)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(w,P){return w-parseInt(w)}},"float/1":{type_args:null,type_result:!0,fn:function(w,P){return parseFloat(w)}},"floor/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.floor(w)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(w,P){return parseInt(w)}},"round/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.round(w)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(w,P){return Math.ceil(w)}},"sin/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.sin(w)}},"cos/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.cos(w)}},"tan/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.tan(w)}},"asin/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.asin(w)}},"acos/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.acos(w)}},"atan/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.atan(w)}},"atan2/2":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.atan2(w,P)}},"exp/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.exp(w)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(w,P){return Math.sqrt(w)}},"log/1":{type_args:null,type_result:!0,fn:function(w,P){return w>0?Math.log(w):b.error.evaluation("undefined",P.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(w,P,y){return w+P}},"-/2":{type_args:null,type_result:null,fn:function(w,P,y){return w-P}},"*/2":{type_args:null,type_result:null,fn:function(w,P,y){return w*P}},"//2":{type_args:null,type_result:!0,fn:function(w,P,y){return P?w/P:b.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?parseInt(w/P):b.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(w,P,y){return Math.pow(w,P)}},"^/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.pow(w,P)}},"<>/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w>>P}},"/\\/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w&P}},"\\//2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w|P}},"xor/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return w^P}},"rem/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w%P:b.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(w,P,y){return P?w-parseInt(w/P)*P:b.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.max(w,P)}},"min/2":{type_args:null,type_result:null,fn:function(w,P,y){return Math.min(w,P)}}}},directive:{"dynamic/1":function(w,P){var y=P.args[0];if(b.type.is_variable(y))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_compound(y)||y.indicator!=="//2")w.throw_error(b.error.type("predicate_indicator",y,P.indicator));else if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_atom(y.args[0]))w.throw_error(b.error.type("atom",y.args[0],P.indicator));else if(!b.type.is_integer(y.args[1]))w.throw_error(b.error.type("integer",y.args[1],P.indicator));else{var F=P.args[0].args[0].id+"/"+P.args[0].args[1].value;w.session.public_predicates[F]=!0,w.session.rules[F]||(w.session.rules[F]=[])}},"multifile/1":function(w,P){var y=P.args[0];b.type.is_variable(y)?w.throw_error(b.error.instantiation(P.indicator)):!b.type.is_compound(y)||y.indicator!=="//2"?w.throw_error(b.error.type("predicate_indicator",y,P.indicator)):b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1])?w.throw_error(b.error.instantiation(P.indicator)):b.type.is_atom(y.args[0])?b.type.is_integer(y.args[1])?w.session.multifile_predicates[P.args[0].args[0].id+"/"+P.args[0].args[1].value]=!0:w.throw_error(b.error.type("integer",y.args[1],P.indicator)):w.throw_error(b.error.type("atom",y.args[0],P.indicator))},"set_prolog_flag/2":function(w,P){var y=P.args[0],F=P.args[1];b.type.is_variable(y)||b.type.is_variable(F)?w.throw_error(b.error.instantiation(P.indicator)):b.type.is_atom(y)?b.type.is_flag(y)?b.type.is_value_flag(y,F)?b.type.is_modifiable_flag(y)?w.session.flag[y.id]=F:w.throw_error(b.error.permission("modify","flag",y)):w.throw_error(b.error.domain("flag_value",new H("+",[y,F]),P.indicator)):w.throw_error(b.error.domain("prolog_flag",y,P.indicator)):w.throw_error(b.error.type("atom",y,P.indicator))},"use_module/1":function(w,P){var y=P.args[0];if(b.type.is_variable(y))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_term(y))w.throw_error(b.error.type("term",y,P.indicator));else if(b.type.is_module(y)){var F=y.args[0].id;e(w.session.modules,F)===-1&&w.session.modules.push(F)}},"char_conversion/2":function(w,P){var y=P.args[0],F=P.args[1];b.type.is_variable(y)||b.type.is_variable(F)?w.throw_error(b.error.instantiation(P.indicator)):b.type.is_character(y)?b.type.is_character(F)?y.id===F.id?delete w.session.__char_conversion[y.id]:w.session.__char_conversion[y.id]=F.id:w.throw_error(b.error.type("character",F,P.indicator)):w.throw_error(b.error.type("character",y,P.indicator))},"op/3":function(w,P){var y=P.args[0],F=P.args[1],z=P.args[2];if(b.type.is_variable(y)||b.type.is_variable(F)||b.type.is_variable(z))w.throw_error(b.error.instantiation(P.indicator));else if(!b.type.is_integer(y))w.throw_error(b.error.type("integer",y,P.indicator));else if(!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,P.indicator));else if(!b.type.is_atom(z))w.throw_error(b.error.type("atom",z,P.indicator));else if(y.value<0||y.value>1200)w.throw_error(b.error.domain("operator_priority",y,P.indicator));else if(z.id===",")w.throw_error(b.error.permission("modify","operator",z,P.indicator));else if(z.id==="|"&&(y.value<1001||F.id.length!==3))w.throw_error(b.error.permission("modify","operator",z,P.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(F.id)===-1)w.throw_error(b.error.domain("operator_specifier",F,P.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var Z in w.session.__operators)if(!!w.session.__operators.hasOwnProperty(Z)){var ie=w.session.__operators[Z][z.id];ie&&(e(ie,"fx")!==-1&&(X.prefix={priority:Z,type:"fx"}),e(ie,"fy")!==-1&&(X.prefix={priority:Z,type:"fy"}),e(ie,"xf")!==-1&&(X.postfix={priority:Z,type:"xf"}),e(ie,"yf")!==-1&&(X.postfix={priority:Z,type:"yf"}),e(ie,"xfx")!==-1&&(X.infix={priority:Z,type:"xfx"}),e(ie,"xfy")!==-1&&(X.infix={priority:Z,type:"xfy"}),e(ie,"yfx")!==-1&&(X.infix={priority:Z,type:"yfx"}))}var Pe;switch(F.id){case"fy":case"fx":Pe="prefix";break;case"yf":case"xf":Pe="postfix";break;default:Pe="infix";break}if(((X.prefix&&Pe==="prefix"||X.postfix&&Pe==="postfix"||X.infix&&Pe==="infix")&&X[Pe].type!==F.id||X.infix&&Pe==="postfix"||X.postfix&&Pe==="infix")&&y.value!==0)w.throw_error(b.error.permission("create","operator",z,P.indicator));else return X[Pe]&&(Ee(w.session.__operators[X[Pe].priority][z.id],F.id),w.session.__operators[X[Pe].priority][z.id].length===0&&delete w.session.__operators[X[Pe].priority][z.id]),y.value>0&&(w.session.__operators[y.value]||(w.session.__operators[y.value.toString()]={}),w.session.__operators[y.value][z.id]||(w.session.__operators[y.value][z.id]=[]),w.session.__operators[y.value][z.id].push(F.id)),!0}}},predicate:{"op/3":function(w,P,y){b.directive["op/3"](w,y)&&w.success(P)},"current_op/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],Z=[];for(var ie in w.session.__operators)for(var Pe in w.session.__operators[ie])for(var Ne=0;Ne/2"){var F=w.points,z=w.session.format_success,X=w.session.format_error;w.session.format_success=function(Ne){return Ne.substitution},w.session.format_error=function(Ne){return Ne.goal},w.points=[new xe(y.args[0].args[0],P.substitution,P)];var Z=function(Ne){w.points=F,w.session.format_success=z,w.session.format_error=X,Ne===!1?w.prepend([new xe(P.goal.replace(y.args[1]),P.substitution,P)]):b.type.is_error(Ne)?w.throw_error(Ne.args[0]):Ne===null?(w.prepend([P]),w.__calls.shift()(null)):w.prepend([new xe(P.goal.replace(y.args[0].args[1]).apply(Ne),P.substitution.apply(Ne),P)])};w.__calls.unshift(Z)}else{var ie=new xe(P.goal.replace(y.args[0]),P.substitution,P),Pe=new xe(P.goal.replace(y.args[1]),P.substitution,P);w.prepend([ie,Pe])}},"!/0":function(w,P,y){var F,z,X=[];for(F=P,z=null;F.parent!==null&&F.parent.goal.search(y);)if(z=F,F=F.parent,F.goal!==null){var Z=F.goal.select();if(Z&&Z.id==="call"&&Z.search(y)){F=z;break}}for(var ie=w.points.length-1;ie>=0;ie--){for(var Pe=w.points[ie],Ne=Pe.parent;Ne!==null&&Ne!==F.parent;)Ne=Ne.parent;Ne===null&&Ne!==F.parent&&X.push(Pe)}w.points=X.reverse(),w.success(P)},"\\+/1":function(w,P,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(w.level)):b.type.is_callable(F)?w.prepend([new xe(P.goal.replace(new H(",",[new H(",",[new H("call",[F]),new H("!",[])]),new H("fail",[])])),P.substitution,P),new xe(P.goal.replace(null),P.substitution,P)]):w.throw_error(b.error.type("callable",F,w.level))},"->/2":function(w,P,y){var F=P.goal.replace(new H(",",[y.args[0],new H(",",[new H("!"),y.args[1]])]));w.prepend([new xe(F,P.substitution,P)])},"fail/0":function(w,P,y){},"false/0":function(w,P,y){},"true/0":function(w,P,y){w.success(P)},"call/1":ne(1),"call/2":ne(2),"call/3":ne(3),"call/4":ne(4),"call/5":ne(5),"call/6":ne(6),"call/7":ne(7),"call/8":ne(8),"once/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("call",[F]),new H("!",[])])),P.substitution,P)])},"forall/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("\\+",[new H(",",[new H("call",[F]),new H("\\+",[new H("call",[z])])])])),P.substitution,P)])},"repeat/0":function(w,P,y){w.prepend([new xe(P.goal.replace(null),P.substitution,P),P])},"throw/1":function(w,P,y){b.type.is_variable(y.args[0])?w.throw_error(b.error.instantiation(w.level)):w.throw_error(y.args[0])},"catch/3":function(w,P,y){var F=w.points;w.points=[],w.prepend([new xe(y.args[0],P.substitution,P)]);var z=w.session.format_success,X=w.session.format_error;w.session.format_success=function(ie){return ie.substitution},w.session.format_error=function(ie){return ie.goal};var Z=function(ie){var Pe=w.points;if(w.points=F,w.session.format_success=z,w.session.format_error=X,b.type.is_error(ie)){for(var Ne=[],ot=w.points.length-1;ot>=0;ot--){for(var $t=w.points[ot],dt=$t.parent;dt!==null&&dt!==P.parent;)dt=dt.parent;dt===null&&dt!==P.parent&&Ne.push($t)}w.points=Ne;var jt=w.get_flag("occurs_check").indicator==="true/0",$t=new xe,bt=b.unify(ie.args[0],y.args[1],jt);bt!==null?($t.substitution=P.substitution.apply(bt),$t.goal=P.goal.replace(y.args[2]).apply(bt),$t.parent=P,w.prepend([$t])):w.throw_error(ie.args[0])}else if(ie!==!1){for(var an=ie===null?[]:[new xe(P.goal.apply(ie).replace(null),P.substitution.apply(ie),P)],Qr=[],ot=Pe.length-1;ot>=0;ot--){Qr.push(Pe[ot]);var mr=Pe[ot].goal!==null?Pe[ot].goal.select():null;if(b.type.is_term(mr)&&mr.indicator==="!/0")break}var br=o(Qr,function(Wr){return Wr.goal===null&&(Wr.goal=new H("true",[])),Wr=new xe(P.goal.replace(new H("catch",[Wr.goal,y.args[1],y.args[2]])),P.substitution.apply(Wr.substitution),Wr.parent),Wr.exclude=y.args[0].variables(),Wr}).reverse();w.prepend(br),w.prepend(an),ie===null&&(this.current_limit=0,w.__calls.shift()(null))}};w.__calls.unshift(Z)},"=/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=new xe,X=b.unify(y.args[0],y.args[1],F);X!==null&&(z.goal=P.goal.apply(X).replace(null),z.substitution=P.substitution.apply(X),z.parent=P,w.prepend([z]))},"unify_with_occurs_check/2":function(w,P,y){var F=new xe,z=b.unify(y.args[0],y.args[1],!0);z!==null&&(F.goal=P.goal.apply(z).replace(null),F.substitution=P.substitution.apply(z),F.parent=P,w.prepend([F]))},"\\=/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[0],y.args[1],F);z===null&&w.success(P)},"subsumes_term/2":function(w,P,y){var F=w.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[1],y.args[0],F);z!==null&&y.args[1].apply(z).equals(y.args[1])&&w.success(P)},"findall/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(z))w.throw_error(b.error.type("callable",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var Z=w.next_free_variable(),ie=new H(",",[z,new H("=",[Z,F])]),Pe=w.points,Ne=w.session.limit,ot=w.session.format_success;w.session.format_success=function($t){return $t.substitution},w.add_goal(ie,!0,P);var dt=[],jt=function($t){if($t!==!1&&$t!==null&&!b.type.is_error($t))w.__calls.unshift(jt),dt.push($t.links[Z.id]),w.session.limit=w.current_limit;else if(w.points=Pe,w.session.limit=Ne,w.session.format_success=ot,b.type.is_error($t))w.throw_error($t.args[0]);else if(w.current_limit>0){for(var bt=new H("[]"),an=dt.length-1;an>=0;an--)bt=new H(".",[dt[an],bt]);w.prepend([new xe(P.goal.replace(new H("=",[X,bt])),P.substitution,P)])}};w.__calls.unshift(jt)}},"bagof/3":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2];if(b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))w.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_list(Z))w.throw_error(b.error.type("list",Z,y.indicator));else{var ie=w.next_free_variable(),Pe;X.indicator==="^/2"?(Pe=X.args[0].variables(),X=X.args[1]):Pe=[],Pe=Pe.concat(z.variables());for(var Ne=X.variables().filter(function(br){return e(Pe,br)===-1}),ot=new H("[]"),dt=Ne.length-1;dt>=0;dt--)ot=new H(".",[new Ie(Ne[dt]),ot]);var jt=new H(",",[X,new H("=",[ie,new H(",",[ot,z])])]),$t=w.points,bt=w.session.limit,an=w.session.format_success;w.session.format_success=function(br){return br.substitution},w.add_goal(jt,!0,P);var Qr=[],mr=function(br){if(br!==!1&&br!==null&&!b.type.is_error(br)){w.__calls.unshift(mr);var Wr=!1,Kn=br.links[ie.id].args[0],Ns=br.links[ie.id].args[1];for(var Ti in Qr)if(!!Qr.hasOwnProperty(Ti)){var ps=Qr[Ti];if(ps.variables.equals(Kn)){ps.answers.push(Ns),Wr=!0;break}}Wr||Qr.push({variables:Kn,answers:[Ns]}),w.session.limit=w.current_limit}else if(w.points=$t,w.session.limit=bt,w.session.format_success=an,b.type.is_error(br))w.throw_error(br.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi=0;so--)Ls=new H(".",[br[so],Ls]);io.push(new xe(P.goal.replace(new H(",",[new H("=",[ot,Qr[Pi].variables]),new H("=",[Z,Ls])])),P.substitution,P))}w.prepend(io)}};w.__calls.unshift(mr)}},"setof/3":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2];if(b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))w.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_list(Z))w.throw_error(b.error.type("list",Z,y.indicator));else{var ie=w.next_free_variable(),Pe;X.indicator==="^/2"?(Pe=X.args[0].variables(),X=X.args[1]):Pe=[],Pe=Pe.concat(z.variables());for(var Ne=X.variables().filter(function(br){return e(Pe,br)===-1}),ot=new H("[]"),dt=Ne.length-1;dt>=0;dt--)ot=new H(".",[new Ie(Ne[dt]),ot]);var jt=new H(",",[X,new H("=",[ie,new H(",",[ot,z])])]),$t=w.points,bt=w.session.limit,an=w.session.format_success;w.session.format_success=function(br){return br.substitution},w.add_goal(jt,!0,P);var Qr=[],mr=function(br){if(br!==!1&&br!==null&&!b.type.is_error(br)){w.__calls.unshift(mr);var Wr=!1,Kn=br.links[ie.id].args[0],Ns=br.links[ie.id].args[1];for(var Ti in Qr)if(!!Qr.hasOwnProperty(Ti)){var ps=Qr[Ti];if(ps.variables.equals(Kn)){ps.answers.push(Ns),Wr=!0;break}}Wr||Qr.push({variables:Kn,answers:[Ns]}),w.session.limit=w.current_limit}else if(w.points=$t,w.session.limit=bt,w.session.format_success=an,b.type.is_error(br))w.throw_error(br.args[0]);else if(w.current_limit>0){for(var io=[],Pi=0;Pi=0;so--)Ls=new H(".",[br[so],Ls]);io.push(new xe(P.goal.replace(new H(",",[new H("=",[ot,Qr[Pi].variables]),new H("=",[Z,Ls])])),P.substitution,P))}w.prepend(io)}};w.__calls.unshift(mr)}},"functor/3":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2];if(b.type.is_variable(z)&&(b.type.is_variable(X)||b.type.is_variable(Z)))w.throw_error(b.error.instantiation("functor/3"));else if(!b.type.is_variable(Z)&&!b.type.is_integer(Z))w.throw_error(b.error.type("integer",y.args[2],"functor/3"));else if(!b.type.is_variable(X)&&!b.type.is_atomic(X))w.throw_error(b.error.type("atomic",y.args[1],"functor/3"));else if(b.type.is_integer(X)&&b.type.is_integer(Z)&&Z.value!==0)w.throw_error(b.error.type("atom",y.args[1],"functor/3"));else if(b.type.is_variable(z)){if(y.args[2].value>=0){for(var ie=[],Pe=0;Pe0&&F<=y.args[1].args.length){var z=new H("=",[y.args[1].args[F-1],y.args[2]]);w.prepend([new xe(P.goal.replace(z),P.substitution,P)])}}},"=../2":function(w,P,y){var F;if(b.type.is_variable(y.args[0])&&(b.type.is_variable(y.args[1])||b.type.is_non_empty_list(y.args[1])&&b.type.is_variable(y.args[1].args[0])))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_fully_list(y.args[1]))w.throw_error(b.error.type("list",y.args[1],y.indicator));else if(b.type.is_variable(y.args[0])){if(!b.type.is_variable(y.args[1])){var X=[];for(F=y.args[1].args[1];F.indicator==="./2";)X.push(F.args[0]),F=F.args[1];b.type.is_variable(y.args[0])&&b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):X.length===0&&b.type.is_compound(y.args[1].args[0])?w.throw_error(b.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(b.type.is_compound(y.args[1].args[0])||b.type.is_number(y.args[1].args[0]))?w.throw_error(b.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?w.prepend([new xe(P.goal.replace(new H("=",[y.args[1].args[0],y.args[0]],P)),P.substitution,P)]):w.prepend([new xe(P.goal.replace(new H("=",[new H(y.args[1].args[0].id,X),y.args[0]])),P.substitution,P)])}}else{if(b.type.is_atomic(y.args[0]))F=new H(".",[y.args[0],new H("[]")]);else{F=new H("[]");for(var z=y.args[0].args.length-1;z>=0;z--)F=new H(".",[y.args[0].args[z],F]);F=new H(".",[new H(y.args[0].id),F])}w.prepend([new xe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"copy_term/2":function(w,P,y){var F=y.args[0].rename(w);w.prepend([new xe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P.parent)])},"term_variables/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(!b.type.is_fully_list(z))w.throw_error(b.error.type("list",z,y.indicator));else{var X=g(o(Se(F.variables()),function(Z){return new Ie(Z)}));w.prepend([new xe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"clause/2":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_callable(y.args[1]))w.throw_error(b.error.type("callable",y.args[1],y.indicator));else if(w.session.rules[y.args[0].indicator]!==void 0)if(w.is_public_predicate(y.args[0].indicator)){var F=[];for(var z in w.session.rules[y.args[0].indicator])if(!!w.session.rules[y.args[0].indicator].hasOwnProperty(z)){var X=w.session.rules[y.args[0].indicator][z];w.session.renamed_variables={},X=X.rename(w),X.body===null&&(X.body=new H("true"));var Z=new H(",",[new H("=",[X.head,y.args[0]]),new H("=",[X.body,y.args[1]])]);F.push(new xe(P.goal.replace(Z),P.substitution,P))}w.prepend(F)}else w.throw_error(b.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(w,P,y){var F=y.args[0];if(!b.type.is_variable(F)&&(!b.type.is_compound(F)||F.indicator!=="//2"))w.throw_error(b.error.type("predicate_indicator",F,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_variable(F.args[0])&&!b.type.is_atom(F.args[0]))w.throw_error(b.error.type("atom",F.args[0],y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_variable(F.args[1])&&!b.type.is_integer(F.args[1]))w.throw_error(b.error.type("integer",F.args[1],y.indicator));else{var z=[];for(var X in w.session.rules)if(!!w.session.rules.hasOwnProperty(X)){var Z=X.lastIndexOf("/"),ie=X.substr(0,Z),Pe=parseInt(X.substr(Z+1,X.length-(Z+1))),Ne=new H("/",[new H(ie),new Fe(Pe,!1)]),ot=new H("=",[Ne,F]);z.push(new xe(P.goal.replace(ot),P.substitution,P))}w.prepend(z)}},"asserta/1":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=we(y.args[0].args[1])):(F=y.args[0],z=null),b.type.is_callable(F)?z!==null&&!b.type.is_callable(z)?w.throw_error(b.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator]=[new He(F,z,!0)].concat(w.session.rules[F.indicator]),w.success(P)):w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(b.error.type("callable",F,y.indicator))}},"assertz/1":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,z;y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=we(y.args[0].args[1])):(F=y.args[0],z=null),b.type.is_callable(F)?z!==null&&!b.type.is_callable(z)?w.throw_error(b.error.type("callable",z,y.indicator)):w.is_public_predicate(F.indicator)?(w.session.rules[F.indicator]===void 0&&(w.session.rules[F.indicator]=[]),w.session.public_predicates[F.indicator]=!0,w.session.rules[F.indicator].push(new He(F,z,!0)),w.success(P)):w.throw_error(b.error.permission("modify","static_procedure",F.indicator,y.indicator)):w.throw_error(b.error.type("callable",F,y.indicator))}},"retract/1":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))w.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var F,z;if(y.args[0].indicator===":-/2"?(F=y.args[0].args[0],z=y.args[0].args[1]):(F=y.args[0],z=new H("true")),typeof P.retract>"u")if(w.is_public_predicate(F.indicator)){if(w.session.rules[F.indicator]!==void 0){for(var X=[],Z=0;Zw.get_flag("max_arity").value)w.throw_error(b.error.representation("max_arity",y.indicator));else{var F=y.args[0].args[0].id+"/"+y.args[0].args[1].value;w.is_public_predicate(F)?(delete w.session.rules[F],w.success(P)):w.throw_error(b.error.permission("modify","static_procedure",F,y.indicator))}},"atom_length/2":function(w,P,y){if(b.type.is_variable(y.args[0]))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_atom(y.args[0]))w.throw_error(b.error.type("atom",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_integer(y.args[1]))w.throw_error(b.error.type("integer",y.args[1],y.indicator));else if(b.type.is_integer(y.args[1])&&y.args[1].value<0)w.throw_error(b.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var F=new Fe(y.args[0].id.length,!1);w.prepend([new xe(P.goal.replace(new H("=",[F,y.args[1]])),P.substitution,P)])}},"atom_concat/3":function(w,P,y){var F,z,X=y.args[0],Z=y.args[1],ie=y.args[2];if(b.type.is_variable(ie)&&(b.type.is_variable(X)||b.type.is_variable(Z)))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))w.throw_error(b.error.type("atom",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_atom(Z))w.throw_error(b.error.type("atom",Z,y.indicator));else if(!b.type.is_variable(ie)&&!b.type.is_atom(ie))w.throw_error(b.error.type("atom",ie,y.indicator));else{var Pe=b.type.is_variable(X),Ne=b.type.is_variable(Z);if(!Pe&&!Ne)z=new H("=",[ie,new H(X.id+Z.id)]),w.prepend([new xe(P.goal.replace(z),P.substitution,P)]);else if(Pe&&!Ne)F=ie.id.substr(0,ie.id.length-Z.id.length),F+Z.id===ie.id&&(z=new H("=",[X,new H(F)]),w.prepend([new xe(P.goal.replace(z),P.substitution,P)]));else if(Ne&&!Pe)F=ie.id.substr(X.id.length),X.id+F===ie.id&&(z=new H("=",[Z,new H(F)]),w.prepend([new xe(P.goal.replace(z),P.substitution,P)]));else{for(var ot=[],dt=0;dt<=ie.id.length;dt++){var jt=new H(ie.id.substr(0,dt)),$t=new H(ie.id.substr(dt));z=new H(",",[new H("=",[jt,X]),new H("=",[$t,Z])]),ot.push(new xe(P.goal.replace(z),P.substitution,P))}w.prepend(ot)}}},"sub_atom/5":function(w,P,y){var F,z=y.args[0],X=y.args[1],Z=y.args[2],ie=y.args[3],Pe=y.args[4];if(b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))w.throw_error(b.error.type("integer",X,y.indicator));else if(!b.type.is_variable(Z)&&!b.type.is_integer(Z))w.throw_error(b.error.type("integer",Z,y.indicator));else if(!b.type.is_variable(ie)&&!b.type.is_integer(ie))w.throw_error(b.error.type("integer",ie,y.indicator));else if(b.type.is_integer(X)&&X.value<0)w.throw_error(b.error.domain("not_less_than_zero",X,y.indicator));else if(b.type.is_integer(Z)&&Z.value<0)w.throw_error(b.error.domain("not_less_than_zero",Z,y.indicator));else if(b.type.is_integer(ie)&&ie.value<0)w.throw_error(b.error.domain("not_less_than_zero",ie,y.indicator));else{var Ne=[],ot=[],dt=[];if(b.type.is_variable(X))for(F=0;F<=z.id.length;F++)Ne.push(F);else Ne.push(X.value);if(b.type.is_variable(Z))for(F=0;F<=z.id.length;F++)ot.push(F);else ot.push(Z.value);if(b.type.is_variable(ie))for(F=0;F<=z.id.length;F++)dt.push(F);else dt.push(ie.value);var jt=[];for(var $t in Ne)if(!!Ne.hasOwnProperty($t)){F=Ne[$t];for(var bt in ot)if(!!ot.hasOwnProperty(bt)){var an=ot[bt],Qr=z.id.length-F-an;if(e(dt,Qr)!==-1&&F+an+Qr===z.id.length){var mr=z.id.substr(F,an);if(z.id===z.id.substr(0,F)+mr+z.id.substr(F+an,Qr)){var br=new H("=",[new H(mr),Pe]),Wr=new H("=",[X,new Fe(F)]),Kn=new H("=",[Z,new Fe(an)]),Ns=new H("=",[ie,new Fe(Qr)]),Ti=new H(",",[new H(",",[new H(",",[Wr,Kn]),Ns]),br]);jt.push(new xe(P.goal.replace(Ti),P.substitution,P))}}}}w.prepend(jt)}},"atom_chars/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_variable(F)){for(var ie=z,Pe=b.type.is_variable(F),Ne="";ie.indicator==="./2";){if(b.type.is_character(ie.args[0]))Ne+=ie.args[0].id;else if(b.type.is_variable(ie.args[0])&&Pe){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}b.type.is_variable(ie)&&Pe?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)?w.throw_error(b.error.type("list",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),Z=F.id.length-1;Z>=0;Z--)X=new H(".",[new H(F.id.charAt(Z)),X]);w.prepend([new xe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"atom_codes/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_variable(F)){for(var ie=z,Pe=b.type.is_variable(F),Ne="";ie.indicator==="./2";){if(b.type.is_character_code(ie.args[0]))Ne+=u(ie.args[0].value);else if(b.type.is_variable(ie.args[0])&&Pe){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.representation("character_code",y.indicator));return}ie=ie.args[1]}b.type.is_variable(ie)&&Pe?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)?w.throw_error(b.error.type("list",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[new H(Ne),F])),P.substitution,P)])}else{for(var X=new H("[]"),Z=F.id.length-1;Z>=0;Z--)X=new H(".",[new Fe(n(F.id,Z),!1),X]);w.prepend([new xe(P.goal.replace(new H("=",[z,X])),P.substitution,P)])}},"char_code/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(b.type.is_variable(F)&&b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_character(F))w.throw_error(b.error.type("character",F,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_integer(z))w.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_character_code(z))w.throw_error(b.error.representation("character_code",y.indicator));else if(b.type.is_variable(z)){var X=new Fe(n(F.id,0),!1);w.prepend([new xe(P.goal.replace(new H("=",[X,z])),P.substitution,P)])}else{var Z=new H(u(z.value));w.prepend([new xe(P.goal.replace(new H("=",[Z,F])),P.substitution,P)])}},"number_chars/2":function(w,P,y){var F,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))w.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var Z=b.type.is_variable(z);if(!b.type.is_variable(X)){var ie=X,Pe=!0;for(F="";ie.indicator==="./2";){if(b.type.is_character(ie.args[0]))F+=ie.args[0].id;else if(b.type.is_variable(ie.args[0]))Pe=!1;else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character",ie.args[0],y.indicator));return}ie=ie.args[1]}if(Pe=Pe&&b.type.is_empty_list(ie),!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)){w.throw_error(b.error.type("list",X,y.indicator));return}if(!Pe&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else if(Pe)if(b.type.is_variable(ie)&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else{var Ne=w.parse(F),ot=Ne.value;!b.type.is_number(ot)||Ne.tokens[Ne.tokens.length-1].space?w.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,ot])),P.substitution,P)]);return}}if(!Z){F=z.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new H(F.charAt(jt)),dt]);w.prepend([new xe(P.goal.replace(new H("=",[X,dt])),P.substitution,P)])}}},"number_codes/2":function(w,P,y){var F,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))w.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else{var Z=b.type.is_variable(z);if(!b.type.is_variable(X)){var ie=X,Pe=!0;for(F="";ie.indicator==="./2";){if(b.type.is_character_code(ie.args[0]))F+=u(ie.args[0].value);else if(b.type.is_variable(ie.args[0]))Pe=!1;else if(!b.type.is_variable(ie.args[0])){w.throw_error(b.error.type("character_code",ie.args[0],y.indicator));return}ie=ie.args[1]}if(Pe=Pe&&b.type.is_empty_list(ie),!b.type.is_empty_list(ie)&&!b.type.is_variable(ie)){w.throw_error(b.error.type("list",X,y.indicator));return}if(!Pe&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else if(Pe)if(b.type.is_variable(ie)&&Z){w.throw_error(b.error.instantiation(y.indicator));return}else{var Ne=w.parse(F),ot=Ne.value;!b.type.is_number(ot)||Ne.tokens[Ne.tokens.length-1].space?w.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,ot])),P.substitution,P)]);return}}if(!Z){F=z.toString();for(var dt=new H("[]"),jt=F.length-1;jt>=0;jt--)dt=new H(".",[new Fe(n(F,jt),!1),dt]);w.prepend([new xe(P.goal.replace(new H("=",[X,dt])),P.substitution,P)])}}},"upcase_atom/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?!b.type.is_variable(z)&&!b.type.is_atom(z)?w.throw_error(b.error.type("atom",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,new H(F.id.toUpperCase(),[])])),P.substitution,P)]):w.throw_error(b.error.type("atom",F,y.indicator))},"downcase_atom/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?!b.type.is_variable(z)&&!b.type.is_atom(z)?w.throw_error(b.error.type("atom",z,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[z,new H(F.id.toLowerCase(),[])])),P.substitution,P)]):w.throw_error(b.error.type("atom",F,y.indicator))},"atomic_list_concat/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("atomic_list_concat",[F,new H("",[]),z])),P.substitution,P)])},"atomic_list_concat/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z)||b.type.is_variable(F)&&b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_list(F))w.throw_error(b.error.type("list",F,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))w.throw_error(b.error.type("atom",X,y.indicator));else if(b.type.is_variable(X)){for(var ie="",Pe=F;b.type.is_term(Pe)&&Pe.indicator==="./2";){if(!b.type.is_atom(Pe.args[0])&&!b.type.is_number(Pe.args[0])){w.throw_error(b.error.type("atomic",Pe.args[0],y.indicator));return}ie!==""&&(ie+=z.id),b.type.is_atom(Pe.args[0])?ie+=Pe.args[0].id:ie+=""+Pe.args[0].value,Pe=Pe.args[1]}ie=new H(ie,[]),b.type.is_variable(Pe)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_term(Pe)||Pe.indicator!=="[]/0"?w.throw_error(b.error.type("list",F,y.indicator)):w.prepend([new xe(P.goal.replace(new H("=",[ie,X])),P.substitution,P)])}else{var Z=g(o(X.id.split(z.id),function(Ne){return new H(Ne,[])}));w.prepend([new xe(P.goal.replace(new H("=",[Z,F])),P.substitution,P)])}},"@=/2":function(w,P,y){b.compare(y.args[0],y.args[1])>0&&w.success(P)},"@>=/2":function(w,P,y){b.compare(y.args[0],y.args[1])>=0&&w.success(P)},"compare/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(b.type.is_atom(F)&&["<",">","="].indexOf(F.id)===-1)w.throw_error(b.type.domain("order",F,y.indicator));else{var Z=b.compare(z,X);Z=Z===0?"=":Z===-1?"<":">",w.prepend([new xe(P.goal.replace(new H("=",[F,new H(Z,[])])),P.substitution,P)])}},"is/2":function(w,P,y){var F=y.args[1].interpret(w);b.type.is_number(F)?w.prepend([new xe(P.goal.replace(new H("=",[y.args[0],F],w.level)),P.substitution,P)]):w.throw_error(F)},"between/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(F)||b.type.is_variable(z))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_integer(F))w.throw_error(b.error.type("integer",F,y.indicator));else if(!b.type.is_integer(z))w.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))w.throw_error(b.error.type("integer",X,y.indicator));else if(b.type.is_variable(X)){var Z=[new xe(P.goal.replace(new H("=",[X,F])),P.substitution,P)];F.value=X.value&&w.success(P)},"succ/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)&&b.type.is_variable(z)?w.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(F)&&!b.type.is_integer(F)?w.throw_error(b.error.type("integer",F,y.indicator)):!b.type.is_variable(z)&&!b.type.is_integer(z)?w.throw_error(b.error.type("integer",z,y.indicator)):!b.type.is_variable(F)&&F.value<0?w.throw_error(b.error.domain("not_less_than_zero",F,y.indicator)):!b.type.is_variable(z)&&z.value<0?w.throw_error(b.error.domain("not_less_than_zero",z,y.indicator)):(b.type.is_variable(z)||z.value>0)&&(b.type.is_variable(F)?w.prepend([new xe(P.goal.replace(new H("=",[F,new Fe(z.value-1,!1)])),P.substitution,P)]):w.prepend([new xe(P.goal.replace(new H("=",[z,new Fe(F.value+1,!1)])),P.substitution,P)]))},"=:=/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F===0&&w.success(P)},"=\\=/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F!==0&&w.success(P)},"/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F>0&&w.success(P)},">=/2":function(w,P,y){var F=b.arithmetic_compare(w,y.args[0],y.args[1]);b.type.is_term(F)?w.throw_error(F):F>=0&&w.success(P)},"var/1":function(w,P,y){b.type.is_variable(y.args[0])&&w.success(P)},"atom/1":function(w,P,y){b.type.is_atom(y.args[0])&&w.success(P)},"atomic/1":function(w,P,y){b.type.is_atomic(y.args[0])&&w.success(P)},"compound/1":function(w,P,y){b.type.is_compound(y.args[0])&&w.success(P)},"integer/1":function(w,P,y){b.type.is_integer(y.args[0])&&w.success(P)},"float/1":function(w,P,y){b.type.is_float(y.args[0])&&w.success(P)},"number/1":function(w,P,y){b.type.is_number(y.args[0])&&w.success(P)},"nonvar/1":function(w,P,y){b.type.is_variable(y.args[0])||w.success(P)},"ground/1":function(w,P,y){y.variables().length===0&&w.success(P)},"acyclic_term/1":function(w,P,y){for(var F=P.substitution.apply(P.substitution),z=y.args[0].variables(),X=0;X0?bt[bt.length-1]:null,bt!==null&&(jt=J(w,bt,0,w.__get_max_priority(),!1))}if(jt.type===p&&jt.len===bt.length-1&&an.value==="."){jt=jt.value.rename(w);var Qr=new H("=",[z,jt]);if(ie.variables){var mr=g(o(Se(jt.variables()),function(br){return new Ie(br)}));Qr=new H(",",[Qr,new H("=",[ie.variables,mr])])}if(ie.variable_names){var mr=g(o(Se(jt.variables()),function(Wr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Wr)break;return new H("=",[new H(Kn,[]),new Ie(Wr)])}));Qr=new H(",",[Qr,new H("=",[ie.variable_names,mr])])}if(ie.singletons){var mr=g(o(new He(jt,null).singleton_variables(),function(Wr){var Kn;for(Kn in w.session.renamed_variables)if(w.session.renamed_variables.hasOwnProperty(Kn)&&w.session.renamed_variables[Kn]===Wr)break;return new H("=",[new H(Kn,[]),new Ie(Wr)])}));Qr=new H(",",[Qr,new H("=",[ie.singletons,mr])])}w.prepend([new xe(P.goal.replace(Qr),P.substitution,P)])}else jt.type===p?w.throw_error(b.error.syntax(bt[jt.len],"unexpected token",!1)):w.throw_error(jt.value)}}},"write/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("write",[new Ie("S"),F])])),P.substitution,P)])},"write/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("false",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"writeq/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("writeq",[new Ie("S"),F])])),P.substitution,P)])},"writeq/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("false")]),new H(".",[new H("numbervars",[new H("true")]),new H("[]",[])])])])])),P.substitution,P)])},"write_canonical/1":function(w,P,y){var F=y.args[0];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("write_canonical",[new Ie("S"),F])])),P.substitution,P)])},"write_canonical/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H("write_term",[F,z,new H(".",[new H("quoted",[new H("true",[])]),new H(".",[new H("ignore_ops",[new H("true")]),new H(".",[new H("numbervars",[new H("false")]),new H("[]",[])])])])])),P.substitution,P)])},"write_term/2":function(w,P,y){var F=y.args[0],z=y.args[1];w.prepend([new xe(P.goal.replace(new H(",",[new H("current_output",[new Ie("S")]),new H("write_term",[new Ie("S"),F,z])])),P.substitution,P)])},"write_term/3":function(w,P,y){var F=y.args[0],z=y.args[1],X=y.args[2],Z=b.type.is_stream(F)?F:w.get_stream_by_alias(F.id);if(b.type.is_variable(F)||b.type.is_variable(X))w.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(X))w.throw_error(b.error.type("list",X,y.indicator));else if(!b.type.is_stream(F)&&!b.type.is_atom(F))w.throw_error(b.error.domain("stream_or_alias",F,y.indicator));else if(!b.type.is_stream(Z)||Z.stream===null)w.throw_error(b.error.existence("stream",F,y.indicator));else if(Z.input)w.throw_error(b.error.permission("output","stream",F,y.indicator));else if(Z.type==="binary")w.throw_error(b.error.permission("output","binary_stream",F,y.indicator));else if(Z.position==="past_end_of_stream"&&Z.eof_action==="error")w.throw_error(b.error.permission("output","past_end_of_stream",F,y.indicator));else{for(var ie={},Pe=X,Ne;b.type.is_term(Pe)&&Pe.indicator==="./2";){if(Ne=Pe.args[0],b.type.is_variable(Ne)){w.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_write_option(Ne)){w.throw_error(b.error.domain("write_option",Ne,y.indicator));return}ie[Ne.id]=Ne.args[0].id==="true",Pe=Pe.args[1]}if(Pe.indicator!=="[]/0"){b.type.is_variable(Pe)?w.throw_error(b.error.instantiation(y.indicator)):w.throw_error(b.error.type("list",X,y.indicator));return}else{ie.session=w.session;var ot=z.toString(ie);Z.stream.put(ot,Z.position),typeof Z.position=="number"&&(Z.position+=ot.length),w.success(P)}}},"halt/0":function(w,P,y){w.points=[]},"halt/1":function(w,P,y){var F=y.args[0];b.type.is_variable(F)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_integer(F)?w.points=[]:w.throw_error(b.error.type("integer",F,y.indicator))},"current_prolog_flag/2":function(w,P,y){var F=y.args[0],z=y.args[1];if(!b.type.is_variable(F)&&!b.type.is_atom(F))w.throw_error(b.error.type("atom",F,y.indicator));else if(!b.type.is_variable(F)&&!b.type.is_flag(F))w.throw_error(b.error.domain("prolog_flag",F,y.indicator));else{var X=[];for(var Z in b.flag)if(!!b.flag.hasOwnProperty(Z)){var ie=new H(",",[new H("=",[new H(Z),F]),new H("=",[w.get_flag(Z),z])]);X.push(new xe(P.goal.replace(ie),P.substitution,P))}w.prepend(X)}},"set_prolog_flag/2":function(w,P,y){var F=y.args[0],z=y.args[1];b.type.is_variable(F)||b.type.is_variable(z)?w.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(F)?b.type.is_flag(F)?b.type.is_value_flag(F,z)?b.type.is_modifiable_flag(F)?(w.session.flag[F.id]=z,w.success(P)):w.throw_error(b.error.permission("modify","flag",F)):w.throw_error(b.error.domain("flag_value",new H("+",[F,z]),y.indicator)):w.throw_error(b.error.domain("prolog_flag",F,y.indicator)):w.throw_error(b.error.type("atom",F,y.indicator))}},flag:{bounded:{allowed:[new H("true"),new H("false")],value:new H("true"),changeable:!1},max_integer:{allowed:[new Fe(Number.MAX_SAFE_INTEGER)],value:new Fe(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Fe(Number.MIN_SAFE_INTEGER)],value:new Fe(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new H("down"),new H("toward_zero")],value:new H("toward_zero"),changeable:!1},char_conversion:{allowed:[new H("on"),new H("off")],value:new H("on"),changeable:!0},debug:{allowed:[new H("on"),new H("off")],value:new H("off"),changeable:!0},max_arity:{allowed:[new H("unbounded")],value:new H("unbounded"),changeable:!1},unknown:{allowed:[new H("error"),new H("fail"),new H("warning")],value:new H("error"),changeable:!0},double_quotes:{allowed:[new H("chars"),new H("codes"),new H("atom")],value:new H("codes"),changeable:!0},occurs_check:{allowed:[new H("false"),new H("true")],value:new H("false"),changeable:!0},dialect:{allowed:[new H("tau")],value:new H("tau"),changeable:!1},version_data:{allowed:[new H("tau",[new Fe(t.major,!1),new Fe(t.minor,!1),new Fe(t.patch,!1),new H(t.status)])],value:new H("tau",[new Fe(t.major,!1),new Fe(t.minor,!1),new Fe(t.patch,!1),new H(t.status)]),changeable:!1},nodejs:{allowed:[new H("yes"),new H("no")],value:new H(typeof hl<"u"&&hl.exports?"yes":"no"),changeable:!1}},unify:function(w,P,y){y=y===void 0?!1:y;for(var F=[{left:w,right:P}],z={};F.length!==0;){var X=F.pop();if(w=X.left,P=X.right,b.type.is_term(w)&&b.type.is_term(P)){if(w.indicator!==P.indicator)return null;for(var Z=0;Zz.value?1:0:z}else return F},operate:function(w,P){if(b.type.is_operator(P)){for(var y=b.type.is_operator(P),F=[],z,X=!1,Z=0;Zw.get_flag("max_integer").value||z0?w.start+w.matches[0].length:w.start,z=y?new H("token_not_found"):new H("found",[new H(w.value.toString())]),X=new H(".",[new H("line",[new Fe(w.line+1)]),new H(".",[new H("column",[new Fe(F+1)]),new H(".",[z,new H("[]",[])])])]);return new H("error",[new H("syntax_error",[new H(P)]),X])},syntax_by_predicate:function(w,P){return new H("error",[new H("syntax_error",[new H(w)]),ee(P)])}},warning:{singleton:function(w,P,y){for(var F=new H("[]"),z=w.length-1;z>=0;z--)F=new H(".",[new Ie(w[z]),F]);return new H("warning",[new H("singleton_variables",[F,ee(P)]),new H(".",[new H("line",[new Fe(y,!1)]),new H("[]")])])},failed_goal:function(w,P){return new H("warning",[new H("failed_goal",[w]),new H(".",[new H("line",[new Fe(P,!1)]),new H("[]")])])}},format_variable:function(w){return"_"+w},format_answer:function(w,P,F){P instanceof Te&&(P=P.thread);var F=F||{};if(F.session=P?P.session:void 0,b.type.is_error(w))return"uncaught exception: "+w.args[0].toString();if(w===!1)return"false.";if(w===null)return"limit exceeded ;";var z=0,X="";if(b.type.is_substitution(w)){var Z=w.domain(!0);w=w.filter(function(Ne,ot){return!b.type.is_variable(ot)||Z.indexOf(ot.id)!==-1&&Ne!==ot.id})}for(var ie in w.links)!w.links.hasOwnProperty(ie)||(z++,X!==""&&(X+=", "),X+=ie.toString(F)+" = "+w.links[ie].toString(F));var Pe=typeof P>"u"||P.points.length>0?" ;":".";return z===0?"true"+Pe:X+Pe},flatten_error:function(w){if(!b.type.is_error(w))return null;w=w.args[0];var P={};return P.type=w.args[0].id,P.thrown=P.type==="syntax_error"?null:w.args[1].id,P.expected=null,P.found=null,P.representation=null,P.existence=null,P.existence_type=null,P.line=null,P.column=null,P.permission_operation=null,P.permission_type=null,P.evaluation_type=null,P.type==="type_error"||P.type==="domain_error"?(P.expected=w.args[0].args[0].id,P.found=w.args[0].args[1].toString()):P.type==="syntax_error"?w.args[1].indicator==="./2"?(P.expected=w.args[0].args[0].id,P.found=w.args[1].args[1].args[1].args[0],P.found=P.found.id==="token_not_found"?P.found.id:P.found.args[0].id,P.line=w.args[1].args[0].args[0].value,P.column=w.args[1].args[1].args[0].args[0].value):P.thrown=w.args[1].id:P.type==="permission_error"?(P.found=w.args[0].args[2].toString(),P.permission_operation=w.args[0].args[0].id,P.permission_type=w.args[0].args[1].id):P.type==="evaluation_error"?P.evaluation_type=w.args[0].args[0].id:P.type==="representation_error"?P.representation=w.args[0].args[0].id:P.type==="existence_error"&&(P.existence=w.args[0].args[1].toString(),P.existence_type=w.args[0].args[0].id),P},create:function(w){return new b.type.Session(w)}};typeof hl<"u"?hl.exports=b:window.pl=b})()});function ime(t,e,r){t.prepend(r.map(o=>new Ta.default.type.State(e.goal.replace(o),e.substitution,e)))}function yH(t){let e=ome.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function ame(t,e){ome.set(t,e),t.consult(`:- use_module(library(${zgt.id})).`)}var EH,Ta,sme,u0,Vgt,Jgt,ome,zgt,lme=Et(()=>{Ye();EH=$e(d2()),Ta=$e(mH()),sme=$e(ve("vm")),{is_atom:u0,is_variable:Vgt,is_instantiated_list:Jgt}=Ta.default.type;ome=new WeakMap;zgt=new Ta.default.type.Module("constraints",{["project_workspaces_by_descriptor/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!u0(o)||!u0(a)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let u=W.parseIdent(o.id),A=W.makeDescriptor(u,a.id),h=yH(t).tryWorkspaceByDescriptor(A);Vgt(n)&&h!==null&&ime(t,e,[new Ta.default.type.Term("=",[n,new Ta.default.type.Term(String(h.relativeCwd))])]),u0(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},["workspace_field/3"]:(t,e,r)=>{let[o,a,n]=r.args;if(!u0(o)||!u0(a)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let A=yH(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,EH.default)(A.manifest.raw,a.id);typeof p>"u"||ime(t,e,[new Ta.default.type.Term("=",[n,new Ta.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},["workspace_field_test/3"]:(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new Ta.default.type.State(e.goal.replace(new Ta.default.type.Term("workspace_field_test",[o,a,n,new Ta.default.type.Term("[]",[])])),e.substitution,e)])},["workspace_field_test/4"]:(t,e,r)=>{let[o,a,n,u]=r.args;if(!u0(o)||!u0(a)||!u0(n)||!Jgt(u)){t.throw_error(Ta.default.error.instantiation(r.indicator));return}let p=yH(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,EH.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[v,x]of u.toJavaScript().entries())E[`$${v}`]=x;sme.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var b2={};Vt(b2,{Constraints:()=>P2,DependencyType:()=>fme});function to(t){if(t instanceof DC.default.type.Num)return t.value;if(t instanceof DC.default.type.Term)switch(t.indicator){case"throw/1":return to(t.args[0]);case"error/1":return to(t.args[0]);case"error/2":if(t.args[0]instanceof DC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(to(t.args[0]),...to(t.args[1]));{let e=to(t.args[0]);return e.message+=` (in ${to(t.args[1])})`,e}case"syntax_error/1":return new zt(43,`Syntax error: ${to(t.args[0])}`);case"existence_error/2":return new zt(44,`Existence error: ${to(t.args[0])} ${to(t.args[1])} not found`);case"instantiation_error/0":return new zt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:to(t.args[0])};case"column/1":return{column:to(t.args[0])};case"found/1":return{found:to(t.args[0])};case"./2":return[to(t.args[0])].concat(to(t.args[1]));case"//2":return`${to(t.args[0])}/${to(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function ume(t){let e;try{e=to(t)}catch(r){throw typeof r=="string"?new zt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function em(t){return t.id==="null"?null:`${t.toJavaScript()}`}function Xgt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function A0(t){return typeof t=="string"?`'${t}'`:"[]"}var Ame,DC,fme,cme,CH,P2,x2=Et(()=>{Ye();Ye();St();Ame=$e(qde()),DC=$e(mH());v2();lme();(0,Ame.default)(DC.default);fme=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(fme||{}),cme=["dependencies","devDependencies","peerDependencies"];CH=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=DC.default.create(o),ame(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw ume(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new zt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw ume(o);yield o}}};P2=class{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");oe.existsSync(r)&&(this.source=oe.readFileSync(r,"utf8"))}static async find(e){return new P2(e)}getProjectDatabase(){let e="";for(let r of cme)e+=`dependency_type(${r}). `;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${A0(o)}). `,e+=`workspace_ident(${A0(o)}, ${A0(W.stringifyIdent(r.anchoredLocator))}). `,e+=`workspace_version(${A0(o)}, ${A0(r.manifest.version)}). `;for(let a of cme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${A0(o)}, ${A0(W.stringifyIdent(n))}, ${A0(n.range)}, ${a}). `}return e+=`workspace(_) :- false. `,e+=`workspace_ident(_, _) :- false. `,e+=`workspace_version(_, _) :- false. `,e+=`workspace_has_dependency(_, _, _, _) :- false. `,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. `,e+=`gen_enforced_field(_, _, _) :- false. `,e}get fullSource(){return`${this.getProjectDatabase()} ${this.source} ${this.getDeclarations()}`}createSession(){return new CH(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=B2([A,W.stringifyIdent(n)]),h=_e.getMapWithDefault(o,a.cwd);_e.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=B2(n),p=_e.getMapWithDefault(o,a.cwd);_e.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.DependencyIdent),u=em(o.links.DependencyRange),A=em(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=W.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return _e.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>W.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>W.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=V.resolve(this.project.cwd,em(o.links.WorkspaceCwd)),n=em(o.links.FieldPath),u=Xgt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return _e.sortMap(r,[({workspace:o})=>W.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=em(u));yield a}}}});var wme=_(Ik=>{"use strict";Object.defineProperty(Ik,"__esModule",{value:!0});function G2(t){let e=[...t.caches],r=e.shift();return r===void 0?Cme():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>G2({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>G2({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>G2({caches:e}).delete(o))},clear(){return r.clear().catch(()=>G2({caches:e}).clear())}}}function Cme(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}Ik.createFallbackableCache=G2;Ik.createNullCache=Cme});var Bme=_((QWt,Ime)=>{Ime.exports=wme()});var vme=_(TH=>{"use strict";Object.defineProperty(TH,"__esModule",{value:!0});function ddt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}TH.createInMemoryCache=ddt});var Sme=_((RWt,Dme)=>{Dme.exports=vme()});var bme=_(Zc=>{"use strict";Object.defineProperty(Zc,"__esModule",{value:!0});function mdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===NH.WithinHeaders?o:{}},queryParameters(){return t===NH.WithinQueryParameters?o:{}}}}function ydt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function Pme(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return Pme(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function Edt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function Cdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function wdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var Idt="4.14.2",Bdt=t=>()=>t.transporter.requester.destroy(),NH={WithinQueryParameters:0,WithinHeaders:1};Zc.AuthMode=NH;Zc.addMethods=Cdt;Zc.createAuth=mdt;Zc.createRetryablePromise=ydt;Zc.createWaitablePromise=Pme;Zc.destroy=Bdt;Zc.encode=wdt;Zc.shuffle=Edt;Zc.version=Idt});var Y2=_((NWt,xme)=>{xme.exports=bme()});var kme=_(LH=>{"use strict";Object.defineProperty(LH,"__esModule",{value:!0});var vdt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};LH.MethodEnum=vdt});var W2=_((OWt,Qme)=>{Qme.exports=kme()});var Wme=_(Fi=>{"use strict";Object.defineProperty(Fi,"__esModule",{value:!0});var Rme=W2();function OH(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var K2={Read:1,Write:2,Any:3},xC={Up:1,Down:2,Timeouted:3},Tme=2*60*1e3;function UH(t,e=xC.Up){return{...t,status:e,lastUpdate:Date.now()}}function Nme(t){return t.status===xC.Up||Date.now()-t.lastUpdate>Tme}function Lme(t){return t.status===xC.Timeouted&&Date.now()-t.lastUpdate<=Tme}function _H(t){return typeof t=="string"?{protocol:"https",url:t,accept:K2.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||K2.Any}}function Ddt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(UH(r))))).then(r=>{let o=r.filter(A=>Nme(A)),a=r.filter(A=>Lme(A)),n=[...o,...a],u=n.length>0?n.map(A=>_H(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Sdt=({isTimedOut:t,status:e})=>!t&&~~e===0,Pdt=t=>{let e=t.status;return t.isTimedOut||Sdt(t)||~~(e/100)!==2&&~~(e/100)!==4},bdt=({status:t})=>~~(t/100)===2,xdt=(t,e)=>Pdt(t)?e.onRetry(t):bdt(t)?e.onSuccess(t):e.onFail(t);function Fme(t,e,r,o){let a=[],n=Hme(r,o),u=qme(t,o),A=r.method,p=r.method!==Rme.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,I=(v,x)=>{let C=v.pop();if(C===void 0)throw Yme(MH(a));let R={data:n,headers:u,method:A,url:Ume(C,r.path,h),connectTimeout:x(E,t.timeouts.connect),responseTimeout:x(E,o.timeout)},L=J=>{let te={request:R,response:J,host:C,triesLeft:v.length};return a.push(te),te},U={onSuccess:J=>Ome(J),onRetry(J){let te=L(J);return J.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",HH(te)),t.hostsCache.set(C,UH(C,J.isTimedOut?xC.Timeouted:xC.Down))]).then(()=>I(v,x))},onFail(J){throw L(J),Mme(J,MH(a))}};return t.requester.send(R).then(J=>xdt(J,U))};return Ddt(t.hostsCache,e).then(v=>I([...v.statelessHosts].reverse(),v.getTimeout))}function kdt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,I={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(v=>_H(v)),read(v,x){let C=OH(x,I.timeouts.read),R=()=>Fme(I,I.hosts.filter(J=>(J.accept&K2.Read)!==0),v,C);if((C.cacheable!==void 0?C.cacheable:v.cacheable)!==!0)return R();let U={request:v,mappedRequestOptions:C,transporter:{queryParameters:I.queryParameters,headers:I.headers}};return I.responsesCache.get(U,()=>I.requestsCache.get(U,()=>I.requestsCache.set(U,R()).then(J=>Promise.all([I.requestsCache.delete(U),J]),J=>Promise.all([I.requestsCache.delete(U),Promise.reject(J)])).then(([J,te])=>te)),{miss:J=>I.responsesCache.set(U,J)})},write(v,x){return Fme(I,I.hosts.filter(C=>(C.accept&K2.Write)!==0),v,OH(x,I.timeouts.write))}};return I}function Qdt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function Ome(t){try{return JSON.parse(t.content)}catch(e){throw Gme(e.message,t)}}function Mme({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return jme(o,e,r)}function Fdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function Ume(t,e,r){let o=_me(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function _me(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Fdt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function Hme(t,e){if(t.method===Rme.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function qme(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function MH(t){return t.map(e=>HH(e))}function HH(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function jme(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function Gme(t,e){return{name:"DeserializationError",message:t,response:e}}function Yme(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Fi.CallEnum=K2;Fi.HostStatusEnum=xC;Fi.createApiError=jme;Fi.createDeserializationError=Gme;Fi.createMappedRequestOptions=OH;Fi.createRetryError=Yme;Fi.createStatefulHost=UH;Fi.createStatelessHost=_H;Fi.createTransporter=kdt;Fi.createUserAgent=Qdt;Fi.deserializeFailure=Mme;Fi.deserializeSuccess=Ome;Fi.isStatefulHostTimeouted=Lme;Fi.isStatefulHostUp=Nme;Fi.serializeData=Hme;Fi.serializeHeaders=qme;Fi.serializeQueryParameters=_me;Fi.serializeUrl=Ume;Fi.stackFrameWithoutCredentials=HH;Fi.stackTraceWithoutCredentials=MH});var V2=_((UWt,Kme)=>{Kme.exports=Wme()});var Vme=_(m0=>{"use strict";Object.defineProperty(m0,"__esModule",{value:!0});var kC=Y2(),Rdt=V2(),J2=W2(),Tdt=t=>{let e=t.region||"us",r=kC.createAuth(kC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Rdt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return kC.addMethods({appId:a,transporter:o},t.methods)},Ndt=t=>(e,r)=>t.transporter.write({method:J2.MethodEnum.Post,path:"2/abtests",data:e},r),Ldt=t=>(e,r)=>t.transporter.write({method:J2.MethodEnum.Delete,path:kC.encode("2/abtests/%s",e)},r),Odt=t=>(e,r)=>t.transporter.read({method:J2.MethodEnum.Get,path:kC.encode("2/abtests/%s",e)},r),Mdt=t=>e=>t.transporter.read({method:J2.MethodEnum.Get,path:"2/abtests"},e),Udt=t=>(e,r)=>t.transporter.write({method:J2.MethodEnum.Post,path:kC.encode("2/abtests/%s/stop",e)},r);m0.addABTest=Ndt;m0.createAnalyticsClient=Tdt;m0.deleteABTest=Ldt;m0.getABTest=Odt;m0.getABTests=Mdt;m0.stopABTest=Udt});var zme=_((HWt,Jme)=>{Jme.exports=Vme()});var Zme=_(z2=>{"use strict";Object.defineProperty(z2,"__esModule",{value:!0});var qH=Y2(),_dt=V2(),Xme=W2(),Hdt=t=>{let e=t.region||"us",r=qH.createAuth(qH.AuthMode.WithinHeaders,t.appId,t.apiKey),o=_dt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return qH.addMethods({appId:t.appId,transporter:o},t.methods)},qdt=t=>e=>t.transporter.read({method:Xme.MethodEnum.Get,path:"1/strategies/personalization"},e),jdt=t=>(e,r)=>t.transporter.write({method:Xme.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);z2.createPersonalizationClient=Hdt;z2.getPersonalizationStrategy=qdt;z2.setPersonalizationStrategy=jdt});var eye=_((jWt,$me)=>{$me.exports=Zme()});var hye=_(Ft=>{"use strict";Object.defineProperty(Ft,"__esModule",{value:!0});var Gt=Y2(),Na=V2(),Ir=W2(),Gdt=ve("crypto");function Bk(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var Ydt=t=>{let e=t.appId,r=Gt.createAuth(t.authMode!==void 0?t.authMode:Gt.AuthMode.WithinHeaders,e,t.apiKey),o=Na.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Na.CallEnum.Read},{url:`${e}.algolia.net`,accept:Na.CallEnum.Write}].concat(Gt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Gt.addMethods(a,t.methods)};function tye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function rye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function nye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Wdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Gt.createRetryablePromise(h=>X2(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/keys",data:n},a),u)},Kdt=t=>(e,r,o)=>{let a=Na.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},Vdt=t=>(e,r,o)=>t.transporter.write({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),Jdt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>QC(t)(o.taskID,a)),vk=t=>(e,r,o)=>{let a=(n,u)=>Z2(t)(e,{methods:{waitTask:Zi}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},zdt=t=>(e,r,o)=>vk(t)(e,r,{...o,scope:[Sk.Rules]}),Xdt=t=>(e,r,o)=>vk(t)(e,r,{...o,scope:[Sk.Settings]}),Zdt=t=>(e,r,o)=>vk(t)(e,r,{...o,scope:[Sk.Synonyms]}),$dt=t=>(e,r)=>e.method===Ir.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),emt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>X2(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/keys/%s",e)},r),o)},tmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>QC(t)(n.taskID,u))},rmt=()=>(t,e)=>{let r=Na.serializeQueryParameters(e),o=Gdt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},X2=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/keys/%s",e)},r),iye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/task/%s",e.toString())},r),nmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),imt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/logs"},e),smt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw nye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},omt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/top"},e),amt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/clusters/mapping/%s",e)},r),lmt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},Z2=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Gt.addMethods(o,r.methods)},cmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/keys"},e),umt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters"},e),Amt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/indexes"},e),fmt=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:"1/clusters/mapping"},e),pmt=t=>(e,r,o)=>{let a=(n,u)=>Z2(t)(e,{methods:{waitTask:Zi}}).waitTask(n.taskID,u);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},hmt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>Z2(t)(u,{methods:{waitTask:Zi}}).waitTask(a.taskID[u],n)));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},gmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),dmt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Na.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},mmt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return Z2(t)(o.indexName,{methods:{searchForFacetValues:Aye}}).searchForFacetValues(a,n,{...r,...u})})),ymt=t=>(e,r)=>{let o=Na.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Ir.MethodEnum.Delete,path:"1/clusters/mapping"},o)},Emt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>QC(t)(n.taskID,u))},Cmt=t=>(e,r)=>{let o=(a,n)=>Gt.createRetryablePromise(u=>X2(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/keys/%s/restore",e)},r),o)},wmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>QC(t)(n.taskID,u))},Imt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),Bmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),vmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>QC(t)(o.taskID,a)),Dmt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(I=>A.indexOf(I)!==-1).every(I=>E[I]===o[I]),h=(E,I)=>Gt.createRetryablePromise(v=>X2(t)(e,I).then(x=>p(x)?Promise.resolve():v()));return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/keys/%s",e),data:u},n),h)},QC=t=>(e,r)=>Gt.createRetryablePromise(o=>iye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),sye=t=>(e,r)=>{let o=(a,n)=>Zi(t)(a.taskID,n);return Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Smt=t=>e=>Bk({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),Pmt=t=>e=>{let r={hitsPerPage:1e3,...e};return Bk({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},bmt=t=>e=>{let r={hitsPerPage:1e3,...e};return Bk({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Dk=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E({action:r,body:I})),n).then(I=>(u.objectIDs=u.objectIDs.concat(I.objectIDs),u.taskIDs.push(I.taskID),E++,A(E)))};return Gt.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>Zi(t)(E,h))))},xmt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>Zi(t)(r.taskID,o)),kmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Na.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>Zi(t)(n.taskID,u))},Qmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Na.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>Zi(t)(n.taskID,u))},Fmt=t=>(e,r)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>Zi(t)(o.taskID,a)),Rmt=t=>e=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s",t.indexName)},e),(r,o)=>Zi(t)(r.taskID,o)),Tmt=t=>(e,r)=>Gt.createWaitablePromise(oye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>Zi(t)(o.taskID,a)),oye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return Dk(t)(o,nm.DeleteObject,r)},Nmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>Zi(t)(u.taskID,A))},Lmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Delete,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>Zi(t)(u.taskID,A))},Omt=t=>e=>aye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Mmt=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Umt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>uye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw rye();return A()});return A()},_mt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/%s",t.indexName,e)},r),Hmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},qmt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:Ir.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},jmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),aye=t=>e=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Gmt=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),lye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Get,path:Gt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),Ymt=t=>(e,r)=>Gt.createWaitablePromise(cye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>Zi(t)(o.taskID,a)),cye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?nm.PartialUpdateObject:nm.PartialUpdateObjectNoCreate;return Dk(t)(e,n,a)},Wmt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,R,L,U)=>Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/operation",C),data:{operation:L,destination:R}},U),(J,te)=>Zi(t)(J.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=jH({appId:t.appId,transporter:t.transporter,indexName:h}),I=[],v=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});I.push(v);let x=(o?v.wait(u):v).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return I.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return I.push(C),o?C.wait(u):C}).then(()=>Promise.all(I)).then(([C,R,L])=>({objectIDs:R.objectIDs,taskIDs:[C.taskID,...R.taskIDs,L.taskID]}));return Gt.createWaitablePromise(x,(C,R)=>Promise.all(I.map(L=>L.wait(R))))},Kmt=t=>(e,r)=>GH(t)(e,{...r,clearExistingRules:!0}),Vmt=t=>(e,r)=>YH(t)(e,{...r,clearExistingSynonyms:!0}),Jmt=t=>(e,r)=>Gt.createWaitablePromise(jH(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>Zi(t)(o.taskID,a)),jH=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?nm.AddObject:nm.UpdateObject;if(n===nm.UpdateObject){for(let u of e)if(u.objectID===void 0)return Gt.createWaitablePromise(Promise.reject(tye()))}return Dk(t)(e,n,a)},zmt=t=>(e,r)=>GH(t)([e],r),GH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Na.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>Zi(t)(A.taskID,p))},Xmt=t=>(e,r)=>YH(t)([e],r),YH=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Na.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>Zi(t)(p.taskID,h))},uye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),Aye=t=>(e,r,o)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),fye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),pye=t=>(e,r)=>t.transporter.read({method:Ir.MethodEnum.Post,path:Gt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Zmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Na.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Gt.createWaitablePromise(t.transporter.write({method:Ir.MethodEnum.Put,path:Gt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>Zi(t)(u.taskID,A))},Zi=t=>(e,r)=>Gt.createRetryablePromise(o=>lye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),$mt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},nm={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},Sk={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},eyt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},tyt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Ft.ApiKeyACLEnum=$mt;Ft.BatchActionEnum=nm;Ft.ScopeEnum=Sk;Ft.StrategyEnum=eyt;Ft.SynonymEnum=tyt;Ft.addApiKey=Wdt;Ft.assignUserID=Kdt;Ft.assignUserIDs=Vdt;Ft.batch=sye;Ft.browseObjects=Smt;Ft.browseRules=Pmt;Ft.browseSynonyms=bmt;Ft.chunkedBatch=Dk;Ft.clearDictionaryEntries=Jdt;Ft.clearObjects=xmt;Ft.clearRules=kmt;Ft.clearSynonyms=Qmt;Ft.copyIndex=vk;Ft.copyRules=zdt;Ft.copySettings=Xdt;Ft.copySynonyms=Zdt;Ft.createBrowsablePromise=Bk;Ft.createMissingObjectIDError=tye;Ft.createObjectNotFoundError=rye;Ft.createSearchClient=Ydt;Ft.createValidUntilNotFoundError=nye;Ft.customRequest=$dt;Ft.deleteApiKey=emt;Ft.deleteBy=Fmt;Ft.deleteDictionaryEntries=tmt;Ft.deleteIndex=Rmt;Ft.deleteObject=Tmt;Ft.deleteObjects=oye;Ft.deleteRule=Nmt;Ft.deleteSynonym=Lmt;Ft.exists=Omt;Ft.findAnswers=Mmt;Ft.findObject=Umt;Ft.generateSecuredApiKey=rmt;Ft.getApiKey=X2;Ft.getAppTask=iye;Ft.getDictionarySettings=nmt;Ft.getLogs=imt;Ft.getObject=_mt;Ft.getObjectPosition=Hmt;Ft.getObjects=qmt;Ft.getRule=jmt;Ft.getSecuredApiKeyRemainingValidity=smt;Ft.getSettings=aye;Ft.getSynonym=Gmt;Ft.getTask=lye;Ft.getTopUserIDs=omt;Ft.getUserID=amt;Ft.hasPendingMappings=lmt;Ft.initIndex=Z2;Ft.listApiKeys=cmt;Ft.listClusters=umt;Ft.listIndices=Amt;Ft.listUserIDs=fmt;Ft.moveIndex=pmt;Ft.multipleBatch=hmt;Ft.multipleGetObjects=gmt;Ft.multipleQueries=dmt;Ft.multipleSearchForFacetValues=mmt;Ft.partialUpdateObject=Ymt;Ft.partialUpdateObjects=cye;Ft.removeUserID=ymt;Ft.replaceAllObjects=Wmt;Ft.replaceAllRules=Kmt;Ft.replaceAllSynonyms=Vmt;Ft.replaceDictionaryEntries=Emt;Ft.restoreApiKey=Cmt;Ft.saveDictionaryEntries=wmt;Ft.saveObject=Jmt;Ft.saveObjects=jH;Ft.saveRule=zmt;Ft.saveRules=GH;Ft.saveSynonym=Xmt;Ft.saveSynonyms=YH;Ft.search=uye;Ft.searchDictionaryEntries=Imt;Ft.searchForFacetValues=Aye;Ft.searchRules=fye;Ft.searchSynonyms=pye;Ft.searchUserIDs=Bmt;Ft.setDictionarySettings=vmt;Ft.setSettings=Zmt;Ft.updateApiKey=Dmt;Ft.waitAppTask=QC;Ft.waitTask=Zi});var dye=_((YWt,gye)=>{gye.exports=hye()});var mye=_(Pk=>{"use strict";Object.defineProperty(Pk,"__esModule",{value:!0});function ryt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var nyt={Debug:1,Info:2,Error:3};Pk.LogLevelEnum=nyt;Pk.createNullLogger=ryt});var Eye=_((KWt,yye)=>{yye.exports=mye()});var Bye=_(WH=>{"use strict";Object.defineProperty(WH,"__esModule",{value:!0});var Cye=ve("http"),wye=ve("https"),iyt=ve("url"),Iye={keepAlive:!0},syt=new Cye.Agent(Iye),oyt=new wye.Agent(Iye);function ayt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||syt,n=r||t||oyt;return{send(u){return new Promise(A=>{let p=iyt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},I=(p.protocol==="https:"?wye:Cye).request(E,R=>{let L=[];R.on("data",U=>{L=L.concat(U)}),R.on("end",()=>{clearTimeout(x),clearTimeout(C),A({status:R.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),v=(R,L)=>setTimeout(()=>{I.abort(),A({status:0,content:L,isTimedOut:!0})},R*1e3),x=v(u.connectTimeout,"Connection timeout"),C;I.on("error",R=>{clearTimeout(x),clearTimeout(C),A({status:0,content:R.message,isTimedOut:!1})}),I.once("response",()=>{clearTimeout(x),C=v(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&I.write(u.data),I.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}WH.createNodeHttpRequester=ayt});var Dye=_((JWt,vye)=>{vye.exports=Bye()});var xye=_((zWt,bye)=>{"use strict";var Sye=Bme(),lyt=Sme(),FC=zme(),VH=Y2(),KH=eye(),Ut=dye(),cyt=Eye(),uyt=Dye(),Ayt=V2();function Pye(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:uyt.createNodeHttpRequester(),logger:cyt.createNullLogger(),responsesCache:Sye.createNullCache(),requestsCache:Sye.createNullCache(),hostsCache:lyt.createInMemoryCache(),userAgent:Ayt.createUserAgent(VH.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>KH.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:KH.getPersonalizationStrategy,setPersonalizationStrategy:KH.setPersonalizationStrategy}});return Ut.createSearchClient({...a,methods:{search:Ut.multipleQueries,searchForFacetValues:Ut.multipleSearchForFacetValues,multipleBatch:Ut.multipleBatch,multipleGetObjects:Ut.multipleGetObjects,multipleQueries:Ut.multipleQueries,copyIndex:Ut.copyIndex,copySettings:Ut.copySettings,copyRules:Ut.copyRules,copySynonyms:Ut.copySynonyms,moveIndex:Ut.moveIndex,listIndices:Ut.listIndices,getLogs:Ut.getLogs,listClusters:Ut.listClusters,multipleSearchForFacetValues:Ut.multipleSearchForFacetValues,getApiKey:Ut.getApiKey,addApiKey:Ut.addApiKey,listApiKeys:Ut.listApiKeys,updateApiKey:Ut.updateApiKey,deleteApiKey:Ut.deleteApiKey,restoreApiKey:Ut.restoreApiKey,assignUserID:Ut.assignUserID,assignUserIDs:Ut.assignUserIDs,getUserID:Ut.getUserID,searchUserIDs:Ut.searchUserIDs,listUserIDs:Ut.listUserIDs,getTopUserIDs:Ut.getTopUserIDs,removeUserID:Ut.removeUserID,hasPendingMappings:Ut.hasPendingMappings,generateSecuredApiKey:Ut.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Ut.getSecuredApiKeyRemainingValidity,destroy:VH.destroy,clearDictionaryEntries:Ut.clearDictionaryEntries,deleteDictionaryEntries:Ut.deleteDictionaryEntries,getDictionarySettings:Ut.getDictionarySettings,getAppTask:Ut.getAppTask,replaceDictionaryEntries:Ut.replaceDictionaryEntries,saveDictionaryEntries:Ut.saveDictionaryEntries,searchDictionaryEntries:Ut.searchDictionaryEntries,setDictionarySettings:Ut.setDictionarySettings,waitAppTask:Ut.waitAppTask,customRequest:Ut.customRequest,initIndex:u=>A=>Ut.initIndex(u)(A,{methods:{batch:Ut.batch,delete:Ut.deleteIndex,findAnswers:Ut.findAnswers,getObject:Ut.getObject,getObjects:Ut.getObjects,saveObject:Ut.saveObject,saveObjects:Ut.saveObjects,search:Ut.search,searchForFacetValues:Ut.searchForFacetValues,waitTask:Ut.waitTask,setSettings:Ut.setSettings,getSettings:Ut.getSettings,partialUpdateObject:Ut.partialUpdateObject,partialUpdateObjects:Ut.partialUpdateObjects,deleteObject:Ut.deleteObject,deleteObjects:Ut.deleteObjects,deleteBy:Ut.deleteBy,clearObjects:Ut.clearObjects,browseObjects:Ut.browseObjects,getObjectPosition:Ut.getObjectPosition,findObject:Ut.findObject,exists:Ut.exists,saveSynonym:Ut.saveSynonym,saveSynonyms:Ut.saveSynonyms,getSynonym:Ut.getSynonym,searchSynonyms:Ut.searchSynonyms,browseSynonyms:Ut.browseSynonyms,deleteSynonym:Ut.deleteSynonym,clearSynonyms:Ut.clearSynonyms,replaceAllObjects:Ut.replaceAllObjects,replaceAllSynonyms:Ut.replaceAllSynonyms,searchRules:Ut.searchRules,getRule:Ut.getRule,deleteRule:Ut.deleteRule,saveRule:Ut.saveRule,saveRules:Ut.saveRules,replaceAllRules:Ut.replaceAllRules,browseRules:Ut.browseRules,clearRules:Ut.clearRules}}),initAnalytics:()=>u=>FC.createAnalyticsClient({...o,...u,methods:{addABTest:FC.addABTest,getABTest:FC.getABTest,getABTests:FC.getABTests,stopABTest:FC.stopABTest,deleteABTest:FC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}Pye.version=VH.version;bye.exports=Pye});var zH=_((XWt,JH)=>{var kye=xye();JH.exports=kye;JH.exports.default=kye});var $H=_(($Wt,Rye)=>{"use strict";var Fye=Object.getOwnPropertySymbols,pyt=Object.prototype.hasOwnProperty,hyt=Object.prototype.propertyIsEnumerable;function gyt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function dyt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}Rye.exports=dyt()?Object.assign:function(t,e){for(var r,o=gyt(t),a,n=1;n{"use strict";var i6=$H(),$c=typeof Symbol=="function"&&Symbol.for,$2=$c?Symbol.for("react.element"):60103,myt=$c?Symbol.for("react.portal"):60106,yyt=$c?Symbol.for("react.fragment"):60107,Eyt=$c?Symbol.for("react.strict_mode"):60108,Cyt=$c?Symbol.for("react.profiler"):60114,wyt=$c?Symbol.for("react.provider"):60109,Iyt=$c?Symbol.for("react.context"):60110,Byt=$c?Symbol.for("react.forward_ref"):60112,vyt=$c?Symbol.for("react.suspense"):60113,Dyt=$c?Symbol.for("react.memo"):60115,Syt=$c?Symbol.for("react.lazy"):60116,Tye=typeof Symbol=="function"&&Symbol.iterator;function eB(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;rbk.length&&bk.push(t)}function t6(t,e,r,o){var a=typeof t;(a==="undefined"||a==="boolean")&&(t=null);var n=!1;if(t===null)n=!0;else switch(a){case"string":case"number":n=!0;break;case"object":switch(t.$$typeof){case $2:case myt:n=!0}}if(n)return r(o,t,e===""?"."+e6(t,0):e),1;if(n=0,e=e===""?".":e+":",Array.isArray(t))for(var u=0;u{"use strict";Wye.exports=Yye()});var u6=_((rKt,c6)=>{"use strict";var An=c6.exports;c6.exports.default=An;var Ln="\x1B[",tB="\x1B]",TC="\x07",xk=";",Kye=process.env.TERM_PROGRAM==="Apple_Terminal";An.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Ln+(t+1)+"G":Ln+(e+1)+";"+(t+1)+"H"};An.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Ln+-t+"D":t>0&&(r+=Ln+t+"C"),e<0?r+=Ln+-e+"A":e>0&&(r+=Ln+e+"B"),r};An.cursorUp=(t=1)=>Ln+t+"A";An.cursorDown=(t=1)=>Ln+t+"B";An.cursorForward=(t=1)=>Ln+t+"C";An.cursorBackward=(t=1)=>Ln+t+"D";An.cursorLeft=Ln+"G";An.cursorSavePosition=Kye?"\x1B7":Ln+"s";An.cursorRestorePosition=Kye?"\x1B8":Ln+"u";An.cursorGetPosition=Ln+"6n";An.cursorNextLine=Ln+"E";An.cursorPrevLine=Ln+"F";An.cursorHide=Ln+"?25l";An.cursorShow=Ln+"?25h";An.eraseLines=t=>{let e="";for(let r=0;r[tB,"8",xk,xk,e,TC,t,tB,"8",xk,xk,TC].join("");An.image=(t,e={})=>{let r=`${tB}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+TC};An.iTerm={setCwd:(t=process.cwd())=>`${tB}50;CurrentDir=${t}${TC}`,annotation:(t,e={})=>{let r=`${tB}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+TC}}});var Jye=_((nKt,A6)=>{"use strict";var Vye=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};A6.exports=Vye;A6.exports.default=Vye});var Xye=_((iKt,Qk)=>{"use strict";var Fyt=Jye(),kk=new WeakMap,zye=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(kk.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return Fyt(n,t),kk.set(n,o),n};Qk.exports=zye;Qk.exports.default=zye;Qk.exports.callCount=t=>{if(!kk.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return kk.get(t)}});var Zye=_((sKt,Fk)=>{Fk.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&Fk.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&Fk.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var h6=_((oKt,OC)=>{var Ei=global.process,im=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};im(Ei)?($ye=ve("assert"),NC=Zye(),eEe=/^win/i.test(Ei.platform),rB=ve("events"),typeof rB!="function"&&(rB=rB.EventEmitter),Ei.__signal_exit_emitter__?Ts=Ei.__signal_exit_emitter__:(Ts=Ei.__signal_exit_emitter__=new rB,Ts.count=0,Ts.emitted={}),Ts.infinite||(Ts.setMaxListeners(1/0),Ts.infinite=!0),OC.exports=function(t,e){if(!im(global.process))return function(){};$ye.equal(typeof t,"function","a callback must be provided for exit handler"),LC===!1&&f6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){Ts.removeListener(r,t),Ts.listeners("exit").length===0&&Ts.listeners("afterexit").length===0&&Rk()};return Ts.on(r,t),o},Rk=function(){!LC||!im(global.process)||(LC=!1,NC.forEach(function(e){try{Ei.removeListener(e,Tk[e])}catch{}}),Ei.emit=Nk,Ei.reallyExit=p6,Ts.count-=1)},OC.exports.unload=Rk,sm=function(e,r,o){Ts.emitted[e]||(Ts.emitted[e]=!0,Ts.emit(e,r,o))},Tk={},NC.forEach(function(t){Tk[t]=function(){if(!!im(global.process)){var r=Ei.listeners(t);r.length===Ts.count&&(Rk(),sm("exit",null,t),sm("afterexit",null,t),eEe&&t==="SIGHUP"&&(t="SIGINT"),Ei.kill(Ei.pid,t))}}}),OC.exports.signals=function(){return NC},LC=!1,f6=function(){LC||!im(global.process)||(LC=!0,Ts.count+=1,NC=NC.filter(function(e){try{return Ei.on(e,Tk[e]),!0}catch{return!1}}),Ei.emit=rEe,Ei.reallyExit=tEe)},OC.exports.load=f6,p6=Ei.reallyExit,tEe=function(e){!im(global.process)||(Ei.exitCode=e||0,sm("exit",Ei.exitCode,null),sm("afterexit",Ei.exitCode,null),p6.call(Ei,Ei.exitCode))},Nk=Ei.emit,rEe=function(e,r){if(e==="exit"&&im(global.process)){r!==void 0&&(Ei.exitCode=r);var o=Nk.apply(this,arguments);return sm("exit",Ei.exitCode,null),sm("afterexit",Ei.exitCode,null),o}else return Nk.apply(this,arguments)}):OC.exports=function(){return function(){}};var $ye,NC,eEe,rB,Ts,Rk,sm,Tk,LC,f6,p6,tEe,Nk,rEe});var iEe=_((aKt,nEe)=>{"use strict";var Ryt=Xye(),Tyt=h6();nEe.exports=Ryt(()=>{Tyt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var g6=_(MC=>{"use strict";var Nyt=iEe(),Lk=!1;MC.show=(t=process.stderr)=>{!t.isTTY||(Lk=!1,t.write("\x1B[?25h"))};MC.hide=(t=process.stderr)=>{!t.isTTY||(Nyt(),Lk=!0,t.write("\x1B[?25l"))};MC.toggle=(t,e)=>{t!==void 0&&(Lk=t),Lk?MC.show(e):MC.hide(e)}});var lEe=_(nB=>{"use strict";var aEe=nB&&nB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nB,"__esModule",{value:!0});var sEe=aEe(u6()),oEe=aEe(g6()),Lyt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&(oEe.default.hide(),a=!0);let A=u+` `;A!==o&&(o=A,t.write(sEe.default.eraseLines(r)+A),r=A.split(` `).length)};return n.clear=()=>{t.write(sEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||(oEe.default.show(),a=!1)},n};nB.default={create:Lyt}});var cEe=_((uKt,Oyt)=>{Oyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var fEe=_(gl=>{"use strict";var AEe=cEe(),pA=process.env;Object.defineProperty(gl,"_vendors",{value:AEe.map(function(t){return t.constant})});gl.name=null;gl.isPR=null;AEe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return uEe(o)});if(gl[t.constant]=r,r)switch(gl.name=t.name,typeof t.pr){case"string":gl.isPR=!!pA[t.pr];break;case"object":"env"in t.pr?gl.isPR=t.pr.env in pA&&pA[t.pr.env]!==t.pr.ne:"any"in t.pr?gl.isPR=t.pr.any.some(function(o){return!!pA[o]}):gl.isPR=uEe(t.pr);break;default:gl.isPR=null}});gl.isCI=!!(pA.CI||pA.CONTINUOUS_INTEGRATION||pA.BUILD_NUMBER||pA.RUN_ID||gl.name);function uEe(t){return typeof t=="string"?!!pA[t]:Object.keys(t).every(function(e){return pA[e]===t[e]})}});var hEe=_((fKt,pEe)=>{"use strict";pEe.exports=fEe().isCI});var dEe=_((pKt,gEe)=>{"use strict";var Myt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};gEe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Myt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var BEe=_(kn=>{"use strict";Object.defineProperty(kn,"__esModule",{value:!0});var _C,oB,Hk,qk,I6;typeof window>"u"||typeof MessageChannel!="function"?(UC=null,d6=null,m6=function(){if(UC!==null)try{var t=kn.unstable_now();UC(!0,t),UC=null}catch(e){throw setTimeout(m6,0),e}},mEe=Date.now(),kn.unstable_now=function(){return Date.now()-mEe},_C=function(t){UC!==null?setTimeout(_C,0,t):(UC=t,setTimeout(m6,0))},oB=function(t,e){d6=setTimeout(t,e)},Hk=function(){clearTimeout(d6)},qk=function(){return!1},I6=kn.unstable_forceFrameRate=function(){}):(Ok=window.performance,y6=window.Date,yEe=window.setTimeout,EEe=window.clearTimeout,typeof console<"u"&&(CEe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills"),typeof CEe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills")),typeof Ok=="object"&&typeof Ok.now=="function"?kn.unstable_now=function(){return Ok.now()}:(wEe=y6.now(),kn.unstable_now=function(){return y6.now()-wEe}),iB=!1,sB=null,Mk=-1,E6=5,C6=0,qk=function(){return kn.unstable_now()>=C6},I6=function(){},kn.unstable_forceFrameRate=function(t){0>t||125_k(u,r))p!==void 0&&0>_k(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>_k(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function _k(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var eu=[],y0=[],Uyt=1,na=null,Lo=3,Gk=!1,om=!1,aB=!1;function Yk(t){for(var e=nc(y0);e!==null;){if(e.callback===null)jk(y0);else if(e.startTime<=t)jk(y0),e.sortIndex=e.expirationTime,B6(eu,e);else break;e=nc(y0)}}function v6(t){if(aB=!1,Yk(t),!om)if(nc(eu)!==null)om=!0,_C(D6);else{var e=nc(y0);e!==null&&oB(v6,e.startTime-t)}}function D6(t,e){om=!1,aB&&(aB=!1,Hk()),Gk=!0;var r=Lo;try{for(Yk(e),na=nc(eu);na!==null&&(!(na.expirationTime>e)||t&&!qk());){var o=na.callback;if(o!==null){na.callback=null,Lo=na.priorityLevel;var a=o(na.expirationTime<=e);e=kn.unstable_now(),typeof a=="function"?na.callback=a:na===nc(eu)&&jk(eu),Yk(e)}else jk(eu);na=nc(eu)}if(na!==null)var n=!0;else{var u=nc(y0);u!==null&&oB(v6,u.startTime-e),n=!1}return n}finally{na=null,Lo=r,Gk=!1}}function IEe(t){switch(t){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1e4;default:return 5e3}}var _yt=I6;kn.unstable_ImmediatePriority=1;kn.unstable_UserBlockingPriority=2;kn.unstable_NormalPriority=3;kn.unstable_IdlePriority=5;kn.unstable_LowPriority=4;kn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=Lo;Lo=t;try{return e()}finally{Lo=r}};kn.unstable_next=function(t){switch(Lo){case 1:case 2:case 3:var e=3;break;default:e=Lo}var r=Lo;Lo=e;try{return t()}finally{Lo=r}};kn.unstable_scheduleCallback=function(t,e,r){var o=kn.unstable_now();if(typeof r=="object"&&r!==null){var a=r.delay;a=typeof a=="number"&&0o?(t.sortIndex=a,B6(y0,t),nc(eu)===null&&t===nc(y0)&&(aB?Hk():aB=!0,oB(v6,a-o))):(t.sortIndex=r,B6(eu,t),om||Gk||(om=!0,_C(D6))),t};kn.unstable_cancelCallback=function(t){t.callback=null};kn.unstable_wrapCallback=function(t){var e=Lo;return function(){var r=Lo;Lo=e;try{return t.apply(this,arguments)}finally{Lo=r}}};kn.unstable_getCurrentPriorityLevel=function(){return Lo};kn.unstable_shouldYield=function(){var t=kn.unstable_now();Yk(t);var e=nc(eu);return e!==na&&na!==null&&e!==null&&e.callback!==null&&e.startTime<=t&&e.expirationTime{"use strict";vEe.exports=BEe()});var DEe=_((dKt,lB)=>{lB.exports=function t(e){"use strict";var r=$H(),o=on(),a=S6();function n(S){for(var D="https://reactjs.org/docs/error-decoder.html?invariant="+S,T=1;Tao||(S.current=yl[ao],yl[ao]=null,ao--)}function On(S,D){ao++,yl[ao]=S.current,S.current=D}var Ni={},Mn={current:Ni},_i={current:!1},tr=Ni;function Oe(S,D){var T=S.type.contextTypes;if(!T)return Ni;var q=S.stateNode;if(q&&q.__reactInternalMemoizedUnmaskedChildContext===D)return q.__reactInternalMemoizedMaskedChildContext;var Y={},Ae;for(Ae in T)Y[Ae]=D[Ae];return q&&(S=S.stateNode,S.__reactInternalMemoizedUnmaskedChildContext=D,S.__reactInternalMemoizedMaskedChildContext=Y),Y}function ii(S){return S=S.childContextTypes,S!=null}function Ma(S){Vn(_i,S),Vn(Mn,S)}function hr(S){Vn(_i,S),Vn(Mn,S)}function uc(S,D,T){if(Mn.current!==Ni)throw Error(n(168));On(Mn,D,S),On(_i,T,S)}function uu(S,D,T){var q=S.stateNode;if(S=D.childContextTypes,typeof q.getChildContext!="function")return T;q=q.getChildContext();for(var Y in q)if(!(Y in S))throw Error(n(108,he(D)||"Unknown",Y));return r({},T,{},q)}function Ac(S){var D=S.stateNode;return D=D&&D.__reactInternalMemoizedMergedChildContext||Ni,tr=Mn.current,On(Mn,D,S),On(_i,_i.current,S),!0}function El(S,D,T){var q=S.stateNode;if(!q)throw Error(n(169));T?(D=uu(S,D,tr),q.__reactInternalMemoizedMergedChildContext=D,Vn(_i,S),Vn(Mn,S),On(Mn,D,S)):Vn(_i,S),On(_i,T,S)}var DA=a.unstable_runWithPriority,Au=a.unstable_scheduleCallback,Ce=a.unstable_cancelCallback,Rt=a.unstable_shouldYield,fc=a.unstable_requestPaint,Hi=a.unstable_now,fu=a.unstable_getCurrentPriorityLevel,Yt=a.unstable_ImmediatePriority,Cl=a.unstable_UserBlockingPriority,SA=a.unstable_NormalPriority,up=a.unstable_LowPriority,pc=a.unstable_IdlePriority,PA={},Qn=fc!==void 0?fc:function(){},hi=null,hc=null,bA=!1,sa=Hi(),Li=1e4>sa?Hi:function(){return Hi()-sa};function _o(){switch(fu()){case Yt:return 99;case Cl:return 98;case SA:return 97;case up:return 96;case pc:return 95;default:throw Error(n(332))}}function Ze(S){switch(S){case 99:return Yt;case 98:return Cl;case 97:return SA;case 96:return up;case 95:return pc;default:throw Error(n(332))}}function lo(S,D){return S=Ze(S),DA(S,D)}function gc(S,D,T){return S=Ze(S),Au(S,D,T)}function pu(S){return hi===null?(hi=[S],hc=Au(Yt,hu)):hi.push(S),PA}function qi(){if(hc!==null){var S=hc;hc=null,Ce(S)}hu()}function hu(){if(!bA&&hi!==null){bA=!0;var S=0;try{var D=hi;lo(99,function(){for(;S=D&&(jo=!0),S.firstContext=null)}function ms(S,D){if(aa!==S&&D!==!1&&D!==0)if((typeof D!="number"||D===1073741823)&&(aa=S,D=1073741823),D={context:S,observedBits:D,next:null},Us===null){if(co===null)throw Error(n(308));Us=D,co.dependencies={expirationTime:0,firstContext:D,responders:null}}else Us=Us.next=D;return b?S._currentValue:S._currentValue2}var _s=!1;function Un(S){return{baseState:S,firstUpdate:null,lastUpdate:null,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function Sn(S){return{baseState:S.baseState,firstUpdate:S.firstUpdate,lastUpdate:S.lastUpdate,firstCapturedUpdate:null,lastCapturedUpdate:null,firstEffect:null,lastEffect:null,firstCapturedEffect:null,lastCapturedEffect:null}}function ys(S,D){return{expirationTime:S,suspenseConfig:D,tag:0,payload:null,callback:null,next:null,nextEffect:null}}function We(S,D){S.lastUpdate===null?S.firstUpdate=S.lastUpdate=D:(S.lastUpdate.next=D,S.lastUpdate=D)}function tt(S,D){var T=S.alternate;if(T===null){var q=S.updateQueue,Y=null;q===null&&(q=S.updateQueue=Un(S.memoizedState))}else q=S.updateQueue,Y=T.updateQueue,q===null?Y===null?(q=S.updateQueue=Un(S.memoizedState),Y=T.updateQueue=Un(T.memoizedState)):q=S.updateQueue=Sn(Y):Y===null&&(Y=T.updateQueue=Sn(q));Y===null||q===Y?We(q,D):q.lastUpdate===null||Y.lastUpdate===null?(We(q,D),We(Y,D)):(We(q,D),Y.lastUpdate=D)}function It(S,D){var T=S.updateQueue;T=T===null?S.updateQueue=Un(S.memoizedState):nr(S,T),T.lastCapturedUpdate===null?T.firstCapturedUpdate=T.lastCapturedUpdate=D:(T.lastCapturedUpdate.next=D,T.lastCapturedUpdate=D)}function nr(S,D){var T=S.alternate;return T!==null&&D===T.updateQueue&&(D=S.updateQueue=Sn(D)),D}function $(S,D,T,q,Y,Ae){switch(T.tag){case 1:return S=T.payload,typeof S=="function"?S.call(Ae,q,Y):S;case 3:S.effectTag=S.effectTag&-4097|64;case 0:if(S=T.payload,Y=typeof S=="function"?S.call(Ae,q,Y):S,Y==null)break;return r({},q,Y);case 2:_s=!0}return q}function ye(S,D,T,q,Y){_s=!1,D=nr(S,D);for(var Ae=D.baseState,De=null,vt=0,wt=D.firstUpdate,xt=Ae;wt!==null;){var _r=wt.expirationTime;_rbn?(ai=Fr,Fr=null):ai=Fr.sibling;var tn=di(rt,Fr,ft[bn],Wt);if(tn===null){Fr===null&&(Fr=ai);break}S&&Fr&&tn.alternate===null&&D(rt,Fr),Ve=Ae(tn,Ve,bn),Pn===null?vr=tn:Pn.sibling=tn,Pn=tn,Fr=ai}if(bn===ft.length)return T(rt,Fr),vr;if(Fr===null){for(;bnbn?(ai=Fr,Fr=null):ai=Fr.sibling;var ho=di(rt,Fr,tn.value,Wt);if(ho===null){Fr===null&&(Fr=ai);break}S&&Fr&&ho.alternate===null&&D(rt,Fr),Ve=Ae(ho,Ve,bn),Pn===null?vr=ho:Pn.sibling=ho,Pn=ho,Fr=ai}if(tn.done)return T(rt,Fr),vr;if(Fr===null){for(;!tn.done;bn++,tn=ft.next())tn=is(rt,tn.value,Wt),tn!==null&&(Ve=Ae(tn,Ve,bn),Pn===null?vr=tn:Pn.sibling=tn,Pn=tn);return vr}for(Fr=q(rt,Fr);!tn.done;bn++,tn=ft.next())tn=po(Fr,rt,bn,tn.value,Wt),tn!==null&&(S&&tn.alternate!==null&&Fr.delete(tn.key===null?bn:tn.key),Ve=Ae(tn,Ve,bn),Pn===null?vr=tn:Pn.sibling=tn,Pn=tn);return S&&Fr.forEach(function(vF){return D(rt,vF)}),vr}return function(rt,Ve,ft,Wt){var vr=typeof ft=="object"&&ft!==null&&ft.type===E&&ft.key===null;vr&&(ft=ft.props.children);var Pn=typeof ft=="object"&&ft!==null;if(Pn)switch(ft.$$typeof){case p:e:{for(Pn=ft.key,vr=Ve;vr!==null;){if(vr.key===Pn)if(vr.tag===7?ft.type===E:vr.elementType===ft.type){T(rt,vr.sibling),Ve=Y(vr,ft.type===E?ft.props.children:ft.props,Wt),Ve.ref=QA(rt,vr,ft),Ve.return=rt,rt=Ve;break e}else{T(rt,vr);break}else D(rt,vr);vr=vr.sibling}ft.type===E?(Ve=bu(ft.props.children,rt.mode,Wt,ft.key),Ve.return=rt,rt=Ve):(Wt=qm(ft.type,ft.key,ft.props,null,rt.mode,Wt),Wt.ref=QA(rt,Ve,ft),Wt.return=rt,rt=Wt)}return De(rt);case h:e:{for(vr=ft.key;Ve!==null;){if(Ve.key===vr)if(Ve.tag===4&&Ve.stateNode.containerInfo===ft.containerInfo&&Ve.stateNode.implementation===ft.implementation){T(rt,Ve.sibling),Ve=Y(Ve,ft.children||[],Wt),Ve.return=rt,rt=Ve;break e}else{T(rt,Ve);break}else D(rt,Ve);Ve=Ve.sibling}Ve=Rw(ft,rt.mode,Wt),Ve.return=rt,rt=Ve}return De(rt)}if(typeof ft=="string"||typeof ft=="number")return ft=""+ft,Ve!==null&&Ve.tag===6?(T(rt,Ve.sibling),Ve=Y(Ve,ft,Wt),Ve.return=rt,rt=Ve):(T(rt,Ve),Ve=Fw(ft,rt.mode,Wt),Ve.return=rt,rt=Ve),De(rt);if(kA(ft))return VA(rt,Ve,ft,Wt);if(ce(ft))return Yo(rt,Ve,ft,Wt);if(Pn&&Ap(rt,ft),typeof ft>"u"&&!vr)switch(rt.tag){case 1:case 0:throw rt=rt.type,Error(n(152,rt.displayName||rt.name||"Component"))}return T(rt,Ve)}}var gu=ig(!0),sg=ig(!1),du={},uo={current:du},FA={current:du},mc={current:du};function ca(S){if(S===du)throw Error(n(174));return S}function og(S,D){On(mc,D,S),On(FA,S,S),On(uo,du,S),D=ne(D),Vn(uo,S),On(uo,D,S)}function yc(S){Vn(uo,S),Vn(FA,S),Vn(mc,S)}function Pm(S){var D=ca(mc.current),T=ca(uo.current);D=ee(T,S.type,D),T!==D&&(On(FA,S,S),On(uo,D,S))}function ag(S){FA.current===S&&(Vn(uo,S),Vn(FA,S))}var $n={current:0};function fp(S){for(var D=S;D!==null;){if(D.tag===13){var T=D.memoizedState;if(T!==null&&(T=T.dehydrated,T===null||Ls(T)||so(T)))return D}else if(D.tag===19&&D.memoizedProps.revealOrder!==void 0){if((D.effectTag&64)!==0)return D}else if(D.child!==null){D.child.return=D,D=D.child;continue}if(D===S)break;for(;D.sibling===null;){if(D.return===null||D.return===S)return null;D=D.return}D.sibling.return=D.return,D=D.sibling}return null}function lg(S,D){return{responder:S,props:D}}var RA=u.ReactCurrentDispatcher,Hs=u.ReactCurrentBatchConfig,mu=0,Ha=null,Gi=null,ua=null,yu=null,Es=null,Ec=null,Cc=0,G=null,Dt=0,wl=!1,xi=null,wc=0;function ct(){throw Error(n(321))}function Eu(S,D){if(D===null)return!1;for(var T=0;TCc&&(Cc=_r,Hm(Cc))):(Pw(_r,wt.suspenseConfig),Ae=wt.eagerReducer===S?wt.eagerState:S(Ae,wt.action)),De=wt,wt=wt.next}while(wt!==null&&wt!==q);xt||(vt=De,Y=Ae),hs(Ae,D.memoizedState)||(jo=!0),D.memoizedState=Ae,D.baseUpdate=vt,D.baseState=Y,T.lastRenderedState=Ae}return[D.memoizedState,T.dispatch]}function ug(S){var D=TA();return typeof S=="function"&&(S=S()),D.memoizedState=D.baseState=S,S=D.queue={last:null,dispatch:null,lastRenderedReducer:Br,lastRenderedState:S},S=S.dispatch=gg.bind(null,Ha,S),[D.memoizedState,S]}function Ag(S){return Cs(Br,S)}function fg(S,D,T,q){return S={tag:S,create:D,destroy:T,deps:q,next:null},G===null?(G={lastEffect:null},G.lastEffect=S.next=S):(D=G.lastEffect,D===null?G.lastEffect=S.next=S:(T=D.next,D.next=S,S.next=T,G.lastEffect=S)),S}function hp(S,D,T,q){var Y=TA();Dt|=S,Y.memoizedState=fg(D,T,void 0,q===void 0?null:q)}function Ic(S,D,T,q){var Y=pp();q=q===void 0?null:q;var Ae=void 0;if(Gi!==null){var De=Gi.memoizedState;if(Ae=De.destroy,q!==null&&Eu(q,De.deps)){fg(0,T,Ae,q);return}}Dt|=S,Y.memoizedState=fg(D,T,Ae,q)}function Ct(S,D){return hp(516,192,S,D)}function bm(S,D){return Ic(516,192,S,D)}function pg(S,D){if(typeof D=="function")return S=S(),D(S),function(){D(null)};if(D!=null)return S=S(),D.current=S,function(){D.current=null}}function hg(){}function Cu(S,D){return TA().memoizedState=[S,D===void 0?null:D],S}function xm(S,D){var T=pp();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Eu(D,q[1])?q[0]:(T.memoizedState=[S,D],S)}function gg(S,D,T){if(!(25>wc))throw Error(n(301));var q=S.alternate;if(S===Ha||q!==null&&q===Ha)if(wl=!0,S={expirationTime:mu,suspenseConfig:null,action:T,eagerReducer:null,eagerState:null,next:null},xi===null&&(xi=new Map),T=xi.get(D),T===void 0)xi.set(D,S);else{for(D=T;D.next!==null;)D=D.next;D.next=S}else{var Y=ga(),Ae=ht.suspense;Y=qA(Y,S,Ae),Ae={expirationTime:Y,suspenseConfig:Ae,action:T,eagerReducer:null,eagerState:null,next:null};var De=D.last;if(De===null)Ae.next=Ae;else{var vt=De.next;vt!==null&&(Ae.next=vt),De.next=Ae}if(D.last=Ae,S.expirationTime===0&&(q===null||q.expirationTime===0)&&(q=D.lastRenderedReducer,q!==null))try{var wt=D.lastRenderedState,xt=q(wt,T);if(Ae.eagerReducer=q,Ae.eagerState=xt,hs(xt,wt))return}catch{}finally{}Pc(S,Y)}}var wu={readContext:ms,useCallback:ct,useContext:ct,useEffect:ct,useImperativeHandle:ct,useLayoutEffect:ct,useMemo:ct,useReducer:ct,useRef:ct,useState:ct,useDebugValue:ct,useResponder:ct,useDeferredValue:ct,useTransition:ct},Ew={readContext:ms,useCallback:Cu,useContext:ms,useEffect:Ct,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,hp(4,36,pg.bind(null,D,S),T)},useLayoutEffect:function(S,D){return hp(4,36,S,D)},useMemo:function(S,D){var T=TA();return D=D===void 0?null:D,S=S(),T.memoizedState=[S,D],S},useReducer:function(S,D,T){var q=TA();return D=T!==void 0?T(D):D,q.memoizedState=q.baseState=D,S=q.queue={last:null,dispatch:null,lastRenderedReducer:S,lastRenderedState:D},S=S.dispatch=gg.bind(null,Ha,S),[q.memoizedState,S]},useRef:function(S){var D=TA();return S={current:S},D.memoizedState=S},useState:ug,useDebugValue:hg,useResponder:lg,useDeferredValue:function(S,D){var T=ug(S),q=T[0],Y=T[1];return Ct(function(){a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=D===void 0?null:D;try{Y(S)}finally{Hs.suspense=Ae}})},[S,D]),q},useTransition:function(S){var D=ug(!1),T=D[0],q=D[1];return[Cu(function(Y){q(!0),a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=S===void 0?null:S;try{q(!1),Y()}finally{Hs.suspense=Ae}})},[S,T]),T]}},km={readContext:ms,useCallback:xm,useContext:ms,useEffect:bm,useImperativeHandle:function(S,D,T){return T=T!=null?T.concat([S]):null,Ic(4,36,pg.bind(null,D,S),T)},useLayoutEffect:function(S,D){return Ic(4,36,S,D)},useMemo:function(S,D){var T=pp();D=D===void 0?null:D;var q=T.memoizedState;return q!==null&&D!==null&&Eu(D,q[1])?q[0]:(S=S(),T.memoizedState=[S,D],S)},useReducer:Cs,useRef:function(){return pp().memoizedState},useState:Ag,useDebugValue:hg,useResponder:lg,useDeferredValue:function(S,D){var T=Ag(S),q=T[0],Y=T[1];return bm(function(){a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=D===void 0?null:D;try{Y(S)}finally{Hs.suspense=Ae}})},[S,D]),q},useTransition:function(S){var D=Ag(!1),T=D[0],q=D[1];return[xm(function(Y){q(!0),a.unstable_next(function(){var Ae=Hs.suspense;Hs.suspense=S===void 0?null:S;try{q(!1),Y()}finally{Hs.suspense=Ae}})},[S,T]),T]}},Aa=null,Bc=null,Il=!1;function Iu(S,D){var T=Dl(5,null,null,0);T.elementType="DELETED",T.type="DELETED",T.stateNode=D,T.return=S,T.effectTag=8,S.lastEffect!==null?(S.lastEffect.nextEffect=T,S.lastEffect=T):S.firstEffect=S.lastEffect=T}function dg(S,D){switch(S.tag){case 5:return D=io(D,S.type,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 6:return D=Pi(D,S.pendingProps),D!==null?(S.stateNode=D,!0):!1;case 13:return!1;default:return!1}}function NA(S){if(Il){var D=Bc;if(D){var T=D;if(!dg(S,D)){if(D=cc(T),!D||!dg(S,D)){S.effectTag=S.effectTag&-1025|2,Il=!1,Aa=S;return}Iu(Aa,T)}Aa=S,Bc=cu(D)}else S.effectTag=S.effectTag&-1025|2,Il=!1,Aa=S}}function gp(S){for(S=S.return;S!==null&&S.tag!==5&&S.tag!==3&&S.tag!==13;)S=S.return;Aa=S}function qa(S){if(!y||S!==Aa)return!1;if(!Il)return gp(S),Il=!0,!1;var D=S.type;if(S.tag!==5||D!=="head"&&D!=="body"&&!ke(D,S.memoizedProps))for(D=Bc;D;)Iu(S,D),D=cc(D);if(gp(S),S.tag===13){if(!y)throw Error(n(316));if(S=S.memoizedState,S=S!==null?S.dehydrated:null,!S)throw Error(n(317));Bc=Os(S)}else Bc=Aa?cc(S.stateNode):null;return!0}function mg(){y&&(Bc=Aa=null,Il=!1)}var dp=u.ReactCurrentOwner,jo=!1;function ws(S,D,T,q){D.child=S===null?sg(D,null,T,q):gu(D,S.child,T,q)}function Ii(S,D,T,q,Y){T=T.render;var Ae=D.ref;return ds(D,Y),q=cg(S,D,T,q,Ae,Y),S!==null&&!jo?(D.updateQueue=S.updateQueue,D.effectTag&=-517,S.expirationTime<=Y&&(S.expirationTime=0),si(S,D,Y)):(D.effectTag|=1,ws(S,D,q,Y),D.child)}function Qm(S,D,T,q,Y,Ae){if(S===null){var De=T.type;return typeof De=="function"&&!Qw(De)&&De.defaultProps===void 0&&T.compare===null&&T.defaultProps===void 0?(D.tag=15,D.type=De,Fm(S,D,De,q,Y,Ae)):(S=qm(T.type,null,q,null,D.mode,Ae),S.ref=D.ref,S.return=D,D.child=S)}return De=S.child,YD)&&HA.set(S,D)))}}function Dg(S,D){S.expirationTimeS?D:S)}function fo(S){if(S.lastExpiredTime!==0)S.callbackExpirationTime=1073741823,S.callbackPriority=99,S.callbackNode=pu(Sw.bind(null,S));else{var D=_m(S),T=S.callbackNode;if(D===0)T!==null&&(S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90);else{var q=ga();if(D===1073741823?q=99:D===1||D===2?q=95:(q=10*(1073741821-D)-10*(1073741821-q),q=0>=q?99:250>=q?98:5250>=q?97:95),T!==null){var Y=S.callbackPriority;if(S.callbackExpirationTime===D&&Y>=q)return;T!==PA&&Ce(T)}S.callbackExpirationTime=D,S.callbackPriority=q,D=D===1073741823?pu(Sw.bind(null,S)):gc(q,Wv.bind(null,S),{timeout:10*(1073741821-D)-Li()}),S.callbackNode=D}}}function Wv(S,D){if(Um=0,D)return D=ga(),jm(S,D),fo(S),null;var T=_m(S);if(T!==0){if(D=S.callbackNode,(yr&(rs|qs))!==En)throw Error(n(327));if(Bp(),S===gi&&T===ns||Su(S,T),Or!==null){var q=yr;yr|=rs;var Y=GA(S);do try{pF();break}catch(vt){jA(S,vt)}while(1);if(la(),yr=q,Cp.current=Y,Yi===Nm)throw D=Lm,Su(S,T),KA(S,T),fo(S),D;if(Or===null)switch(Y=S.finishedWork=S.current.alternate,S.finishedExpirationTime=T,q=Yi,gi=null,q){case Bu:case Nm:throw Error(n(345));case Bi:jm(S,2=T){S.lastPingedTime=T,Su(S,T);break}}if(Ae=_m(S),Ae!==0&&Ae!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}S.timeoutHandle=Te(Pu.bind(null,S),Y);break}Pu(S);break;case vl:if(KA(S,T),q=S.lastSuspendedTime,T===q&&(S.nextKnownPendingLevel=bw(Y)),UA&&(Y=S.lastPingedTime,Y===0||Y>=T)){S.lastPingedTime=T,Su(S,T);break}if(Y=_m(S),Y!==0&&Y!==T)break;if(q!==0&&q!==T){S.lastPingedTime=q;break}if(MA!==1073741823?q=10*(1073741821-MA)-Li():Ya===1073741823?q=0:(q=10*(1073741821-Ya)-5e3,Y=Li(),T=10*(1073741821-T)-Y,q=Y-q,0>q&&(q=0),q=(120>q?120:480>q?480:1080>q?1080:1920>q?1920:3e3>q?3e3:4320>q?4320:1960*ww(q/1960))-q,T=q?q=0:(Y=De.busyDelayMs|0,Ae=Li()-(10*(1073741821-Ae)-(De.timeoutMs|0||5e3)),q=Ae<=Y?0:Y+q-Ae),10 component higher in the tree to provide a loading indicator or placeholder to display.`+ml(Y))}Yi!==Sc&&(Yi=Bi),Ae=Eg(Ae,Y),wt=q;do{switch(wt.tag){case 3:De=Ae,wt.effectTag|=4096,wt.expirationTime=D;var Ve=Gv(wt,De,D);It(wt,Ve);break e;case 1:De=Ae;var ft=wt.type,Wt=wt.stateNode;if((wt.effectTag&64)===0&&(typeof ft.getDerivedStateFromError=="function"||Wt!==null&&typeof Wt.componentDidCatch=="function"&&(Du===null||!Du.has(Wt)))){wt.effectTag|=4096,wt.expirationTime=D;var vr=Yv(wt,De,D);It(wt,vr);break e}}wt=wt.return}while(wt!==null)}Or=zv(Or)}catch(Pn){D=Pn;continue}break}while(1)}function GA(){var S=Cp.current;return Cp.current=wu,S===null?wu:S}function Pw(S,D){Swp&&(wp=S)}function fF(){for(;Or!==null;)Or=Jv(Or)}function pF(){for(;Or!==null&&!Rt();)Or=Jv(Or)}function Jv(S){var D=Zv(S.alternate,S,ns);return S.memoizedProps=S.pendingProps,D===null&&(D=zv(S)),Iw.current=null,D}function zv(S){Or=S;do{var D=Or.alternate;if(S=Or.return,(Or.effectTag&2048)===0){e:{var T=D;D=Or;var q=ns,Y=D.pendingProps;switch(D.tag){case 2:break;case 16:break;case 15:case 0:break;case 1:ii(D.type)&&Ma(D);break;case 3:yc(D),hr(D),Y=D.stateNode,Y.pendingContext&&(Y.context=Y.pendingContext,Y.pendingContext=null),(T===null||T.child===null)&&qa(D)&&pa(D),Bl(D);break;case 5:ag(D);var Ae=ca(mc.current);if(q=D.type,T!==null&&D.stateNode!=null)ts(T,D,q,Y,Ae),T.ref!==D.ref&&(D.effectTag|=128);else if(Y){if(T=ca(uo.current),qa(D)){if(Y=D,!y)throw Error(n(175));T=lp(Y.stateNode,Y.type,Y.memoizedProps,Ae,T,Y),Y.updateQueue=T,T=T!==null,T&&pa(D)}else{var De=At(q,Y,Ae,T,D);vc(De,D,!1,!1),D.stateNode=De,at(De,q,Y,Ae,T)&&pa(D)}D.ref!==null&&(D.effectTag|=128)}else if(D.stateNode===null)throw Error(n(166));break;case 6:if(T&&D.stateNode!=null)Gr(T,D,T.memoizedProps,Y);else{if(typeof Y!="string"&&D.stateNode===null)throw Error(n(166));if(T=ca(mc.current),Ae=ca(uo.current),qa(D)){if(T=D,!y)throw Error(n(176));(T=cp(T.stateNode,T.memoizedProps,T))&&pa(D)}else D.stateNode=He(Y,T,Ae,D)}break;case 11:break;case 13:if(Vn($n,D),Y=D.memoizedState,(D.effectTag&64)!==0){D.expirationTime=q;break e}Y=Y!==null,Ae=!1,T===null?D.memoizedProps.fallback!==void 0&&qa(D):(q=T.memoizedState,Ae=q!==null,Y||q===null||(q=T.child.sibling,q!==null&&(De=D.firstEffect,De!==null?(D.firstEffect=q,q.nextEffect=De):(D.firstEffect=D.lastEffect=q,q.nextEffect=null),q.effectTag=8))),Y&&!Ae&&(D.mode&2)!==0&&(T===null&&D.memoizedProps.unstable_avoidThisFallback!==!0||($n.current&1)!==0?Yi===Bu&&(Yi=ha):((Yi===Bu||Yi===ha)&&(Yi=vl),wp!==0&&gi!==null&&(KA(gi,ns),eD(gi,wp)))),P&&Y&&(D.effectTag|=4),w&&(Y||Ae)&&(D.effectTag|=4);break;case 7:break;case 8:break;case 12:break;case 4:yc(D),Bl(D);break;case 10:wi(D);break;case 9:break;case 14:break;case 17:ii(D.type)&&Ma(D);break;case 19:if(Vn($n,D),Y=D.memoizedState,Y===null)break;if(Ae=(D.effectTag&64)!==0,De=Y.rendering,De===null){if(Ae)Dc(Y,!1);else if(Yi!==Bu||T!==null&&(T.effectTag&64)!==0)for(T=D.child;T!==null;){if(De=fp(T),De!==null){for(D.effectTag|=64,Dc(Y,!1),T=De.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Y.lastEffect===null&&(D.firstEffect=null),D.lastEffect=Y.lastEffect,T=q,Y=D.child;Y!==null;)Ae=Y,q=T,Ae.effectTag&=2,Ae.nextEffect=null,Ae.firstEffect=null,Ae.lastEffect=null,De=Ae.alternate,De===null?(Ae.childExpirationTime=0,Ae.expirationTime=q,Ae.child=null,Ae.memoizedProps=null,Ae.memoizedState=null,Ae.updateQueue=null,Ae.dependencies=null):(Ae.childExpirationTime=De.childExpirationTime,Ae.expirationTime=De.expirationTime,Ae.child=De.child,Ae.memoizedProps=De.memoizedProps,Ae.memoizedState=De.memoizedState,Ae.updateQueue=De.updateQueue,q=De.dependencies,Ae.dependencies=q===null?null:{expirationTime:q.expirationTime,firstContext:q.firstContext,responders:q.responders}),Y=Y.sibling;On($n,$n.current&1|2,D),D=D.child;break e}T=T.sibling}}else{if(!Ae)if(T=fp(De),T!==null){if(D.effectTag|=64,Ae=!0,T=T.updateQueue,T!==null&&(D.updateQueue=T,D.effectTag|=4),Dc(Y,!0),Y.tail===null&&Y.tailMode==="hidden"&&!De.alternate){D=D.lastEffect=Y.lastEffect,D!==null&&(D.nextEffect=null);break}}else Li()>Y.tailExpiration&&1Y&&(Y=q),De>Y&&(Y=De),Ae=Ae.sibling;T.childExpirationTime=Y}if(D!==null)return D;S!==null&&(S.effectTag&2048)===0&&(S.firstEffect===null&&(S.firstEffect=Or.firstEffect),Or.lastEffect!==null&&(S.lastEffect!==null&&(S.lastEffect.nextEffect=Or.firstEffect),S.lastEffect=Or.lastEffect),1S?D:S}function Pu(S){var D=_o();return lo(99,hF.bind(null,S,D)),null}function hF(S,D){do Bp();while(Bg!==null);if((yr&(rs|qs))!==En)throw Error(n(327));var T=S.finishedWork,q=S.finishedExpirationTime;if(T===null)return null;if(S.finishedWork=null,S.finishedExpirationTime=0,T===S.current)throw Error(n(177));S.callbackNode=null,S.callbackExpirationTime=0,S.callbackPriority=90,S.nextKnownPendingLevel=0;var Y=bw(T);if(S.firstPendingTime=Y,q<=S.lastSuspendedTime?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:q<=S.firstSuspendedTime&&(S.firstSuspendedTime=q-1),q<=S.lastPingedTime&&(S.lastPingedTime=0),q<=S.lastExpiredTime&&(S.lastExpiredTime=0),S===gi&&(Or=gi=null,ns=0),1=T?ln(S,D,T):(On($n,$n.current&1,D),D=si(S,D,T),D!==null?D.sibling:null);On($n,$n.current&1,D);break;case 19:if(q=D.childExpirationTime>=T,(S.effectTag&64)!==0){if(q)return ja(S,D,T);D.effectTag|=64}if(Y=D.memoizedState,Y!==null&&(Y.rendering=null,Y.tail=null),On($n,$n.current,D),!q)return null}return si(S,D,T)}jo=!1}}else jo=!1;switch(D.expirationTime=0,D.tag){case 2:if(q=D.type,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,Y=Oe(D,Mn.current),ds(D,T),Y=cg(null,D,q,S,Y,T),D.effectTag|=1,typeof Y=="object"&&Y!==null&&typeof Y.render=="function"&&Y.$$typeof===void 0){if(D.tag=1,yw(),ii(q)){var Ae=!0;Ac(D)}else Ae=!1;D.memoizedState=Y.state!==null&&Y.state!==void 0?Y.state:null;var De=q.getDerivedStateFromProps;typeof De=="function"&&er(D,q,De,S),Y.updater=$r,D.stateNode=Y,Y._reactInternalFiber=D,qo(D,q,S,T),D=yp(null,D,q,!0,Ae,T)}else D.tag=0,ws(null,D,Y,T),D=D.child;return D;case 16:if(Y=D.elementType,S!==null&&(S.alternate=null,D.alternate=null,D.effectTag|=2),S=D.pendingProps,me(Y),Y._status!==1)throw Y._result;switch(Y=Y._result,D.type=Y,Ae=D.tag=wF(Y),S=Ci(Y,S),Ae){case 0:D=LA(null,D,Y,S,T);break;case 1:D=mp(null,D,Y,S,T);break;case 11:D=Ii(null,D,Y,S,T);break;case 14:D=Qm(null,D,Y,Ci(Y.type,S),q,T);break;default:throw Error(n(306,Y,""))}return D;case 0:return q=D.type,Y=D.pendingProps,Y=D.elementType===q?Y:Ci(q,Y),LA(S,D,q,Y,T);case 1:return q=D.type,Y=D.pendingProps,Y=D.elementType===q?Y:Ci(q,Y),mp(S,D,q,Y,T);case 3:if(yg(D),q=D.updateQueue,q===null)throw Error(n(282));if(Y=D.memoizedState,Y=Y!==null?Y.element:null,ye(D,q,D.pendingProps,null,T),q=D.memoizedState.element,q===Y)mg(),D=si(S,D,T);else{if((Y=D.stateNode.hydrate)&&(y?(Bc=cu(D.stateNode.containerInfo),Aa=D,Y=Il=!0):Y=!1),Y)for(T=sg(D,null,q,T),D.child=T;T;)T.effectTag=T.effectTag&-3|1024,T=T.sibling;else ws(S,D,q,T),mg();D=D.child}return D;case 5:return Pm(D),S===null&&NA(D),q=D.type,Y=D.pendingProps,Ae=S!==null?S.memoizedProps:null,De=Y.children,ke(q,Y)?De=null:Ae!==null&&ke(q,Ae)&&(D.effectTag|=16),Go(S,D),D.mode&4&&T!==1&&xe(q,Y)?(D.expirationTime=D.childExpirationTime=1,D=null):(ws(S,D,De,T),D=D.child),D;case 6:return S===null&&NA(D),null;case 13:return ln(S,D,T);case 4:return og(D,D.stateNode.containerInfo),q=D.pendingProps,S===null?D.child=gu(D,null,q,T):ws(S,D,q,T),D.child;case 11:return q=D.type,Y=D.pendingProps,Y=D.elementType===q?Y:Ci(q,Y),Ii(S,D,q,Y,T);case 7:return ws(S,D,D.pendingProps,T),D.child;case 8:return ws(S,D,D.pendingProps.children,T),D.child;case 12:return ws(S,D,D.pendingProps.children,T),D.child;case 10:e:{if(q=D.type._context,Y=D.pendingProps,De=D.memoizedProps,Ae=Y.value,Ho(D,Ae),De!==null){var vt=De.value;if(Ae=hs(vt,Ae)?0:(typeof q._calculateChangedBits=="function"?q._calculateChangedBits(vt,Ae):1073741823)|0,Ae===0){if(De.children===Y.children&&!_i.current){D=si(S,D,T);break e}}else for(vt=D.child,vt!==null&&(vt.return=D);vt!==null;){var wt=vt.dependencies;if(wt!==null){De=vt.child;for(var xt=wt.firstContext;xt!==null;){if(xt.context===q&&(xt.observedBits&Ae)!==0){vt.tag===1&&(xt=ys(T,null),xt.tag=2,tt(vt,xt)),vt.expirationTime"u")return!1;var D=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(D.isDisabled||!D.supportsFiber)return!0;try{var T=D.inject(S);xw=function(q){try{D.onCommitFiberRoot(T,q,void 0,(q.current.effectTag&64)===64)}catch{}},kw=function(q){try{D.onCommitFiberUnmount(T,q)}catch{}}}catch{}return!0}function CF(S,D,T,q){this.tag=S,this.key=T,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=D,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=q,this.effectTag=0,this.lastEffect=this.firstEffect=this.nextEffect=null,this.childExpirationTime=this.expirationTime=0,this.alternate=null}function Dl(S,D,T,q){return new CF(S,D,T,q)}function Qw(S){return S=S.prototype,!(!S||!S.isReactComponent)}function wF(S){if(typeof S=="function")return Qw(S)?1:0;if(S!=null){if(S=S.$$typeof,S===L)return 11;if(S===te)return 14}return 2}function WA(S,D){var T=S.alternate;return T===null?(T=Dl(S.tag,D,S.key,S.mode),T.elementType=S.elementType,T.type=S.type,T.stateNode=S.stateNode,T.alternate=S,S.alternate=T):(T.pendingProps=D,T.effectTag=0,T.nextEffect=null,T.firstEffect=null,T.lastEffect=null),T.childExpirationTime=S.childExpirationTime,T.expirationTime=S.expirationTime,T.child=S.child,T.memoizedProps=S.memoizedProps,T.memoizedState=S.memoizedState,T.updateQueue=S.updateQueue,D=S.dependencies,T.dependencies=D===null?null:{expirationTime:D.expirationTime,firstContext:D.firstContext,responders:D.responders},T.sibling=S.sibling,T.index=S.index,T.ref=S.ref,T}function qm(S,D,T,q,Y,Ae){var De=2;if(q=S,typeof S=="function")Qw(S)&&(De=1);else if(typeof S=="string")De=5;else e:switch(S){case E:return bu(T.children,Y,Ae,D);case R:De=8,Y|=7;break;case I:De=8,Y|=1;break;case v:return S=Dl(12,T,D,Y|8),S.elementType=v,S.type=v,S.expirationTime=Ae,S;case U:return S=Dl(13,T,D,Y),S.type=U,S.elementType=U,S.expirationTime=Ae,S;case J:return S=Dl(19,T,D,Y),S.elementType=J,S.expirationTime=Ae,S;default:if(typeof S=="object"&&S!==null)switch(S.$$typeof){case x:De=10;break e;case C:De=9;break e;case L:De=11;break e;case te:De=14;break e;case ae:De=16,q=null;break e}throw Error(n(130,S==null?S:typeof S,""))}return D=Dl(De,T,D,Y),D.elementType=S,D.type=q,D.expirationTime=Ae,D}function bu(S,D,T,q){return S=Dl(7,S,q,D),S.expirationTime=T,S}function Fw(S,D,T){return S=Dl(6,S,null,D),S.expirationTime=T,S}function Rw(S,D,T){return D=Dl(4,S.children!==null?S.children:[],S.key,D),D.expirationTime=T,D.stateNode={containerInfo:S.containerInfo,pendingChildren:null,implementation:S.implementation},D}function IF(S,D,T){this.tag=D,this.current=null,this.containerInfo=S,this.pingCache=this.pendingChildren=null,this.finishedExpirationTime=0,this.finishedWork=null,this.timeoutHandle=qe,this.pendingContext=this.context=null,this.hydrate=T,this.callbackNode=null,this.callbackPriority=90,this.lastExpiredTime=this.lastPingedTime=this.nextKnownPendingLevel=this.lastSuspendedTime=this.firstSuspendedTime=this.firstPendingTime=0}function $v(S,D){var T=S.firstSuspendedTime;return S=S.lastSuspendedTime,T!==0&&T>=D&&S<=D}function KA(S,D){var T=S.firstSuspendedTime,q=S.lastSuspendedTime;TD||T===0)&&(S.lastSuspendedTime=D),D<=S.lastPingedTime&&(S.lastPingedTime=0),D<=S.lastExpiredTime&&(S.lastExpiredTime=0)}function eD(S,D){D>S.firstPendingTime&&(S.firstPendingTime=D);var T=S.firstSuspendedTime;T!==0&&(D>=T?S.firstSuspendedTime=S.lastSuspendedTime=S.nextKnownPendingLevel=0:D>=S.lastSuspendedTime&&(S.lastSuspendedTime=D+1),D>S.nextKnownPendingLevel&&(S.nextKnownPendingLevel=D))}function jm(S,D){var T=S.lastExpiredTime;(T===0||T>D)&&(S.lastExpiredTime=D)}function tD(S){var D=S._reactInternalFiber;if(D===void 0)throw typeof S.render=="function"?Error(n(188)):Error(n(268,Object.keys(S)));return S=Ee(D),S===null?null:S.stateNode}function rD(S,D){S=S.memoizedState,S!==null&&S.dehydrated!==null&&S.retryTime{"use strict";SEe.exports=DEe()});var xEe=_((yKt,bEe)=>{"use strict";var Hyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};bEe.exports=Hyt});var REe=_((EKt,FEe)=>{"use strict";var qyt=Object.assign||function(t){for(var e=1;e"}}]),t}(),kEe=function(){Wk(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){b6(this,t),this.width=e,this.height=r}return Wk(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),QEe=function(){function t(e,r){b6(this,t),this.unit=e,this.value=r}return Wk(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case tu.UNIT_POINT:return String(this.value);case tu.UNIT_PERCENT:return this.value+"%";case tu.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();FEe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,I=Array(E),v=0;v1?I-1:0),x=1;x1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:tu.DIRECTION_LTR;return u.call(this,A,p,h)}),qyt({Config:e.Config,Node:e.Node,Layout:t("Layout",jyt),Size:t("Size",kEe),Value:t("Value",QEe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},tu)}});var TEe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof ve=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,I,v;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` `+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,I=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=I:(I=I+.5,Browser.mainLoop.remainingBlockers=(8*E+I)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(x){Runtime.warnOnce("Blob constructor present but fails: "+x+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var I=Browser.URLObject.createObjectURL(h),v=new Image;v.onload=function(){assert(v.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=v.width,C.height=v.height;var R=C.getContext("2d");R.drawImage(v,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(I),A&&A(n)},v.onerror=function(C){console.log("Image "+I+" could not be decoded"),p&&p()},v.src=I},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(R){h||(h=!0,Module.preloadedAudios[u]=R,A&&A(n))}function I(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var v=new Blob([n],{type:Browser.getMimetype(u)})}catch{return I()}var x=Browser.URLObject.createObjectURL(v),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function U(J){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",ae="=",fe="",ce=0,me=0,he=0;he=6;){var Be=ce>>me-6&63;me-=6,fe+=te[Be]}return me==2?(fe+=te[(ce&3)<<4],fe+=ae+ae):me==4&&(fe+=te[(ce&15)<<2],fe+=ae),fe}C.src="data:audio/x-"+u.substr(-3)+";base64,"+U(n),E(C)},C.src=x,Browser.safeSetTimeout(function(){E(C)},1e4)}else return I()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var I=t.pageX-(a+e.left),v=t.pageY-(n+e.top);I=I*(r/e.width),v=v*(o/e.height),Browser.mouseMovementX=I-Browser.mouseX,Browser.mouseMovementY=v-Browser.mouseY,Browser.mouseX=I,Browser.mouseY=v}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,E,I,v,x){if(h==1){var C=I&896;(C==128||C==256||C==384)&&(p="X const")}var R;return x?R=E.replace("X",p).replace("Y",v):R=p.replace("X",E).replace("Y",v),R.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,I,v){throw new Error(p+" type "+E.replace("X",h+"?")+(I?" with flag "+I:"")+" in "+v)}function a(p,h,E,I,v,x,C,R){x===void 0&&(x="X"),R===void 0&&(R=1);var L=E(p);if(L)return L;var U=I(p),J=U.placeholderFlag,te=e[J];C&&te&&(x=r(C[2],C[0],x,te[0],"?",!0));var ae;J==0&&(ae="Unbound"),J>=10&&(ae="Corrupt"),R>20&&(ae="Deeply nested"),ae&&o(ae,p,x,J,v||"?");var fe=U.paramList[0],ce=a(fe,h,E,I,v,x,te,R+1),me,he={flags:te[0],id:p,name:"",paramList:[ce]},Be=[],we="?";switch(U.placeholderFlag){case 1:me=ce.spec;break;case 2:if((ce.flags&15360)==1024&&ce.spec.ptrSize==1){he.flags=7168;break}case 3:case 6:case 5:me=ce.spec,ce.flags&15360;break;case 8:we=""+U.paramList[1],he.paramList.push(U.paramList[1]);break;case 9:for(var g=0,Ee=U.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,I){var v=___syscall146.buffers[E];assert(v),I===0||I===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(v,0)),v.length=0):v.push(I)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,I=A,v=p;if(n!==_nbind.ptrMarker){var x=h.__nbindConstructor.apply(h,arguments);E=4608,v=HEAPU32[x/4],I=HEAPU32[x/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},R={__nbindFlags:E,__nbindPtr:I};v&&(R.__nbindShared=v,_nbind.mark(h));for(var L=0,U=Object.keys(R);L>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),I=e.DYNAMICTOP_PTR|0,v=e.tempDoublePtr|0,x=e.ABORT|0,C=e.STACKTOP|0,R=e.STACK_MAX|0,L=e.cttz_i8|0,U=e.___dso_handle|0,J=0,te=0,ae=0,fe=0,ce=t.NaN,me=t.Infinity,he=0,Be=0,we=0,g=0,Ee=0,Se=0,le=t.Math.floor,ne=t.Math.abs,ee=t.Math.sqrt,Ie=t.Math.pow,Fe=t.Math.cos,At=t.Math.sin,H=t.Math.tan,at=t.Math.acos,Re=t.Math.asin,ke=t.Math.atan,xe=t.Math.atan2,He=t.Math.exp,Te=t.Math.log,Je=t.Math.ceil,qe=t.Math.imul,b=t.Math.min,w=t.Math.max,P=t.Math.clz32,y=t.Math.fround,F=e.abort,z=e.assert,X=e.enlargeMemory,Z=e.getTotalMemory,ie=e.abortOnCannotGrowMemory,Pe=e.invoke_viiiii,Ne=e.invoke_vif,ot=e.invoke_vid,dt=e.invoke_fiff,jt=e.invoke_vi,$t=e.invoke_vii,bt=e.invoke_ii,an=e.invoke_viddi,Qr=e.invoke_vidd,mr=e.invoke_iiii,br=e.invoke_diii,Wr=e.invoke_di,Kn=e.invoke_iid,Ns=e.invoke_iii,Ti=e.invoke_viiddi,ps=e.invoke_viiiiii,io=e.invoke_dii,Pi=e.invoke_i,Ls=e.invoke_iiiiii,so=e.invoke_viiid,cc=e.invoke_viififi,cu=e.invoke_viii,lp=e.invoke_v,cp=e.invoke_viid,Os=e.invoke_idd,Dn=e.invoke_viiii,oo=e._emscripten_asm_const_iiiii,Ms=e._emscripten_asm_const_iiidddddd,ml=e._emscripten_asm_const_iiiid,yl=e.__nbind_reference_external,ao=e._emscripten_asm_const_iiiiiiii,Vn=e._removeAccessorPrefix,On=e._typeModule,Ni=e.__nbind_register_pool,Mn=e.__decorate,_i=e._llvm_stackrestore,tr=e.___cxa_atexit,Oe=e.__extends,ii=e.__nbind_get_value_object,Ma=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,hr=e._emscripten_set_main_loop_timing,uc=e.__nbind_register_primitive,uu=e.__nbind_register_type,Ac=e._emscripten_memcpy_big,El=e.__nbind_register_function,DA=e.___setErrNo,Au=e.__nbind_register_class,Ce=e.__nbind_finish,Rt=e._abort,fc=e._nbind_value,Hi=e._llvm_stacksave,fu=e.___syscall54,Yt=e._defineHidden,Cl=e._emscripten_set_main_loop,SA=e._emscripten_get_now,up=e.__nbind_register_callback_signature,pc=e._emscripten_asm_const_iiiiii,PA=e.__nbind_free_external,Qn=e._emscripten_asm_const_iiii,hi=e._emscripten_asm_const_iiididi,hc=e.___syscall6,bA=e._atexit,sa=e.___syscall140,Li=e.___syscall146,_o=y(0);let Ze=y(0);function lo(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function gc(){return C|0}function pu(s){s=s|0,C=s}function qi(s,l){s=s|0,l=l|0,C=s,R=l}function hu(s,l){s=s|0,l=l|0,J||(J=s,te=l)}function xA(s){s=s|0,Se=s}function Ua(){return Se|0}function dc(){var s=0,l=0;Dr(8104,8,400)|0,Dr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,tr(17,8104,U|0)|0}function hs(s){s=s|0,pt(s+948|0)}function _t(s){return s=y(s),((Du(s)|0)&2147483647)>>>0>2139095040|0}function Fn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(0);return s|0}function Ci(s){s=s|0;var l=0;return l=pD(1e3)|0,oa(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,Dr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function oa(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,Eg(s,5,3197,f)),C=d}function co(){return Ci(956)|0}function Us(s){s=s|0;var l=0;return l=Kt(1e3)|0,aa(l,s),oa(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function aa(s,l){s=s|0,l=l|0;var c=0;Dr(s|0,l|0,948)|0,Rm(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function la(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Ho(c+948|0,s)|0,n[l>>2]=0),c=wi(s)|0,c|0){l=0;do n[(gs(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),ds(c),hD(s),n[2276]=(n[2276]|0)+-1}function Ho(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0;f=n[s>>2]|0,k=s+4|0,c=n[k>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(0);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(Mw(d|0,f|0,s|0)|0,c=n[k>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[k>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function wi(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function gs(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function ds(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Ip(l,d,d,s+8|0),Bg(s,l),_A(l)),C=f}function ms(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;M=wi(s)|0;do if(M|0){if((n[(gs(s,0)|0)+944>>2]|0)==(s|0)){if(!(Ho(s+948|0,l)|0))break;Dr(l+400|0,8504,540)|0,n[l+944>>2]=0,Le(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,k=s+948|0,Q=(B|0)==0,c=0,m=0;do f=n[(n[k>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?Le(s):(d=Us(f)|0,n[(n[k>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,Q||TR[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0>>0){Q=s+948|0,k=s+952|0,B=c,c=n[k>>2]|0;do m=(n[Q>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(Mw(m|0,f|0,d|0)|0,c=n[k>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[k>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(0)}function _s(s){s=s|0;var l=0,c=0,f=0,d=0;Un(s,(wi(s)|0)==0,2491),Un(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),ds(l),l=s+976|0,c=n[l>>2]|0,Dr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function Un(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,Ao(s,5,3197,f)),C=d}function Sn(){return n[2276]|0}function ys(){var s=0;return s=pD(20)|0,We((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function We(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,Ao(0,5,3197,c)),C=f}function tt(s){s=s|0,hD(s),n[2277]=(n[2277]|0)+-1}function It(s,l){s=s|0,l=l|0;var c=0;l?(Un(s,(wi(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function nr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,Un(s,(n[l+944>>2]|0)==0,2709),Un(s,(n[s+964>>2]|0)==0,2763),$(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],ye(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,Le(s),C=f}function $(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;if(c=wi(s)|0,c|0&&(n[(gs(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=Us(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=s,m||TR[f&15](B,k,s,l),l=l+1|0;while((l|0)!=(c|0))}}function ye(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0;et=C,C=C+64|0,j=et+52|0,k=et+48|0,se=et+28|0,Ge=et+24|0,Me=et+20|0,Qe=et,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}HA(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0>>0&&zr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Ip(Qe,M>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-O>>2,s+8|0),O=Qe+8|0,f=n[O>>2]|0,m=Qe+12|0,M=n[m>>2]|0,B=M,Q=f;do if((f|0)==(M|0)){if(M=Qe+4|0,f=n[M>>2]|0,Xe=n[Qe>>2]|0,d=Xe,f>>>0<=Xe>>>0){f=B-d>>1,f=(f|0)==0?1:f,Ip(se,f,f>>>2,n[Qe+16>>2]|0),n[Ge>>2]=n[M>>2],n[Me>>2]=n[O>>2],n[k>>2]=n[Ge>>2],n[j>>2]=n[Me>>2],Dw(se,k,j),f=n[Qe>>2]|0,n[Qe>>2]=n[se>>2],n[se>>2]=f,f=se+4|0,Xe=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Xe,f=se+8|0,Xe=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Xe,f=se+12|0,Xe=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Xe,_A(se),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,k=f+(B<<2)|0,d=Q-m|0,m=d>>2,m&&(Mw(k|0,f|0,d|0)|0,f=n[M>>2]|0),Xe=k+(m<<2)|0,n[O>>2]=Xe,n[M>>2]=f+(B<<2),f=Xe}while(0);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=vg(s,Qe,l)|0,_A(Qe)}while(0);return C=et,l|0}function Le(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(ce),s=n[s+944>>2]|0}while((s|0)!=0)}function pt(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ht(s){return s=s|0,n[s+944>>2]|0}function Tt(s){s=s|0,Un(s,(n[s+964>>2]|0)!=0,2832),Le(s)}function er(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function $r(s,l){s=s|0,l=l|0,QUe(s,l,400)|0&&(Dr(s|0,l|0,400)|0,Le(s))}function ji(s){s=s|0;var l=Ze;return l=y(h[s+44>>2]),s=_t(l)|0,y(s?y(0):l)}function es(s){s=s|0;var l=Ze;return l=y(h[s+48>>2]),_t(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function bi(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function qo(s){return s=s|0,n[s+980>>2]|0}function kA(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function QA(s){return s=s|0,n[s+4>>2]|0}function Ap(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function ig(s){return s=s|0,n[s+8>>2]|0}function gu(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function sg(s){return s=s|0,n[s+12>>2]|0}function du(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function uo(s){return s=s|0,n[s+16>>2]|0}function FA(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function mc(s){return s=s|0,n[s+20>>2]|0}function ca(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function og(s){return s=s|0,n[s+24>>2]|0}function yc(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Pm(s){return s=s|0,n[s+28>>2]|0}function ag(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function $n(s){return s=s|0,n[s+32>>2]|0}function fp(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function lg(s){return s=s|0,n[s+36>>2]|0}function RA(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Hs(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function mu(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Ha(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Gi(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=_t(l)|0,n[c>>2]=f?3:2,Le(s))}function ua(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function yu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Es(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Ec(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Cc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function G(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wl(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(ce),n[c>>2]=3,Le(s))}function xi(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function ct(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function Eu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=_t(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function cg(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function yw(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function TA(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=_t(l)|0,n[c>>2]=f?3:2,Le(s))}function pp(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(ce),n[l>>2]=3,Le(s))}function Br(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Cs(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function ug(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=_t(l)|0,n[c>>2]=f?3:2,Le(s))}function Ag(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(ce),n[l>>2]=3,Le(s))}function fg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function hp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ic(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ct(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function bm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function pg(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function hg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Cu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function xm(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function gg(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function wu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Ew(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=_t(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function km(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Aa(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Bc(s){return s=s|0,y(h[s+396>>2])}function Il(s){return s=s|0,y(h[s+400>>2])}function Iu(s){return s=s|0,y(h[s+404>>2])}function dg(s){return s=s|0,y(h[s+408>>2])}function NA(s){return s=s|0,y(h[s+412>>2])}function gp(s){return s=s|0,y(h[s+416>>2])}function qa(s){return s=s|0,y(h[s+420>>2])}function mg(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function dp(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function jo(s,l){switch(s=s|0,l=l|0,Un(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function ws(s,l){s=s|0,l=l|0;var c=0,f=Ze;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ne(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,Ma(f|0,s|0,l|0,0),Ao(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),e3e(f),C=c}function Go(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=Ze;s=y(s*l),d=y(bR(s,y(1)));do if(Ii(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),Ii(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=Ii(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(0);return y(s/l)}function LA(s,l,c,f,d,m,B,k,Q,M,O,j,se){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,k=y(k),Q=y(Q),M=y(M),O=y(O),j=y(j),se=se|0;var Ge=0,Me=Ze,Qe=Ze,et=Ze,Xe=Ze,lt=Ze,Ue=Ze;return Q>2]),Me!=y(0))?(et=y(Go(l,Me,0,0)),Xe=y(Go(f,Me,0,0)),Qe=y(Go(m,Me,0,0)),Me=y(Go(k,Me,0,0))):(Qe=m,et=l,Me=k,Xe=f),(d|0)==(s|0)?Ge=Ii(Qe,et)|0:Ge=0,(B|0)==(c|0)?se=Ii(Me,Xe)|0:se=0,!Ge&&(lt=y(l-O),!(mp(s,lt,Q)|0))&&!(yp(s,lt,d,Q)|0)?Ge=yg(s,lt,d,m,Q)|0:Ge=1,!se&&(Ue=y(f-j),!(mp(c,Ue,M)|0))&&!(yp(c,Ue,B,M)|0)?se=yg(c,Ue,B,k,M)|0:se=1,se=Ge&se),se|0}function mp(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=Ii(l,c)|0:s=0,s|0}function yp(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=Ii(l,f)|0:s=0,s|0}function yg(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=Ii(l,d)|0:s=0,s|0}function fa(s,l,c,f,d,m,B,k,Q,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,M=M|0,O=O|0;var j=0,se=0,Ge=0,Me=0,Qe=Ze,et=Ze,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=Ze,go=Ze,mo=Ze,yo=0,ya=0;ir=C,C=C+160|0,Xt=ir+152|0,or=ir+120|0,Mr=ir+104|0,Ue=ir+72|0,Me=ir+56|0,Lt=ir+8|0,lt=ir,je=(n[2279]|0)+1|0,n[2279]=je,Sr=s+984|0,(o[Sr>>0]|0)!=0&&(n[s+512>>2]|0)!=(n[2278]|0)?Xe=4:(n[s+516>>2]|0)==(f|0)?Nr=0:Xe=4,(Xe|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Nr=1);e:do if(n[s+964>>2]|0)if(Qe=y(ln(s,2,B)),et=y(ln(s,0,B)),j=s+916|0,mo=y(h[j>>2]),go=y(h[s+920>>2]),xn=y(h[s+932>>2]),LA(d,l,m,c,n[s+924>>2]|0,mo,n[s+928>>2]|0,go,xn,y(h[s+936>>2]),Qe,et,O)|0)Xe=22;else if(Ge=n[s+520>>2]|0,!Ge)Xe=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,xn=y(h[j>>2]),go=y(h[s+524+(se*24|0)+4>>2]),mo=y(h[s+524+(se*24|0)+16>>2]),LA(d,l,m,c,n[s+524+(se*24|0)+8>>2]|0,xn,n[s+524+(se*24|0)+12>>2]|0,go,mo,y(h[s+524+(se*24|0)+20>>2]),Qe,et,O)|0){Xe=22;break e}if(se=se+1|0,se>>>0>=Ge>>>0){Xe=21;break}}else{if(Q){if(j=s+916|0,!(Ii(y(h[j>>2]),l)|0)){Xe=21;break}if(!(Ii(y(h[s+920>>2]),c)|0)){Xe=21;break}if((n[s+924>>2]|0)!=(d|0)){Xe=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Xe=22;break}if(Ge=n[s+520>>2]|0,!Ge)Xe=21;else for(se=0;;){if(j=s+524+(se*24|0)|0,Ii(y(h[j>>2]),l)|0&&Ii(y(h[s+524+(se*24|0)+4>>2]),c)|0&&(n[s+524+(se*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(se*24|0)+12>>2]|0)==(m|0)){Xe=22;break e}if(se=se+1|0,se>>>0>=Ge>>>0){Xe=21;break}}}while(0);do if((Xe|0)==21)o[11697]|0?(j=0,Xe=28):(j=0,Xe=31);else if((Xe|0)==22){if(se=(o[11697]|0)!=0,!((j|0)!=0&(Nr^1)))if(se){Xe=28;break}else{Xe=31;break}Me=j+16|0,n[s+908>>2]=n[Me>>2],Ge=j+20|0,n[s+912>>2]=n[Ge>>2],(o[11698]|0)==0|se^1||(n[lt>>2]=OA(je)|0,n[lt+4>>2]=je,Ao(s,4,2972,lt),se=n[s+972>>2]|0,se|0&&tf[se&127](s),d=ja(d,Q)|0,m=ja(m,Q)|0,ya=+y(h[Me>>2]),yo=+y(h[Ge>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+c,E[Lt+24>>3]=ya,E[Lt+32>>3]=yo,n[Lt+40>>2]=M,Ao(s,4,2989,Lt))}while(0);return(Xe|0)==28&&(se=OA(je)|0,n[Me>>2]=se,n[Me+4>>2]=je,n[Me+8>>2]=Nr?3047:11699,Ao(s,4,3038,Me),se=n[s+972>>2]|0,se|0&&tf[se&127](s),Lt=ja(d,Q)|0,Xe=ja(m,Q)|0,n[Ue>>2]=Lt,n[Ue+4>>2]=Xe,E[Ue+8>>3]=+l,E[Ue+16>>3]=+c,n[Ue+24>>2]=M,Ao(s,4,3049,Ue),Xe=31),(Xe|0)==31&&(si(s,l,c,f,d,m,B,k,Q,O),o[11697]|0&&(se=n[2279]|0,Lt=OA(se)|0,n[Mr>>2]=Lt,n[Mr+4>>2]=se,n[Mr+8>>2]=Nr?3047:11699,Ao(s,4,3083,Mr),se=n[s+972>>2]|0,se|0&&tf[se&127](s),Lt=ja(d,Q)|0,Mr=ja(m,Q)|0,yo=+y(h[s+908>>2]),ya=+y(h[s+912>>2]),n[or>>2]=Lt,n[or+4>>2]=Mr,E[or+8>>3]=yo,E[or+16>>3]=ya,n[or+24>>2]=M,Ao(s,4,3092,or)),n[s+516>>2]=f,j||(se=s+520|0,j=n[se>>2]|0,(j|0)==16&&(o[11697]|0&&Ao(s,4,3124,Xt),n[se>>2]=0,j=0),Q?j=s+916|0:(n[se>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),Q&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[Sr>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=ir,Nr|(j|0)==0|0}function ln(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(K(s,l,c)),y(f+y(re(s,l,c)))}function Ao(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,Cg(f,s,l,c,d),C=m}function OA(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function ja(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function si(s,l,c,f,d,m,B,k,Q,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),Q=Q|0,M=M|0;var O=0,j=0,se=0,Ge=0,Me=Ze,Qe=Ze,et=Ze,Xe=Ze,lt=Ze,Ue=Ze,je=Ze,Lt=0,Mr=0,or=0,Xt=Ze,Sr=Ze,Nr=0,ir=Ze,xn=0,go=0,mo=0,yo=0,ya=0,Fp=0,Rp=0,bl=0,Tp=0,Fu=0,Ru=0,Np=0,Lp=0,Op=0,Xr=0,xl=0,Mp=0,xc=0,Up=Ze,_p=Ze,Tu=Ze,Nu=Ze,kc=Ze,js=0,za=0,Wo=0,kl=0,nf=0,sf=Ze,Lu=Ze,of=Ze,af=Ze,Gs=Ze,vs=Ze,Ql=0,Rn=Ze,lf=Ze,Eo=Ze,Qc=Ze,Co=Ze,Fc=Ze,cf=0,uf=0,Rc=Ze,Ys=Ze,Fl=0,Af=0,ff=0,pf=0,xr=Ze,Jn=0,Ds=0,wo=0,Ws=0,Rr=0,ur=0,Rl=0,Jt=Ze,hf=0,li=0;Rl=C,C=C+16|0,js=Rl+12|0,za=Rl+8|0,Wo=Rl+4|0,kl=Rl,Un(s,(d|0)==0|(_t(l)|0)^1,3326),Un(s,(m|0)==0|(_t(c)|0)^1,3406),Ds=mt(s,f)|0,n[s+496>>2]=Ds,Rr=fr(2,Ds)|0,ur=fr(0,Ds)|0,h[s+440>>2]=y(K(s,Rr,B)),h[s+444>>2]=y(re(s,Rr,B)),h[s+428>>2]=y(K(s,ur,B)),h[s+436>>2]=y(re(s,ur,B)),h[s+464>>2]=y(Cr(s,Rr)),h[s+468>>2]=y(yn(s,Rr)),h[s+452>>2]=y(Cr(s,ur)),h[s+460>>2]=y(yn(s,ur)),h[s+488>>2]=y(oi(s,Rr,B)),h[s+492>>2]=y(Oi(s,Rr,B)),h[s+476>>2]=y(oi(s,ur,B)),h[s+484>>2]=y(Oi(s,ur,B));do if(n[s+964>>2]|0)Ig(s,l,c,d,m,B,k);else{if(wo=s+948|0,Ws=(n[s+952>>2]|0)-(n[wo>>2]|0)>>2,!Ws){Gv(s,l,c,d,m,B,k);break}if(!Q&&Yv(s,l,c,d,m,B,k)|0)break;$(s),xl=s+508|0,o[xl>>0]=0,Rr=fr(n[s+4>>2]|0,Ds)|0,ur=ww(Rr,Ds)|0,Jn=pe(Rr)|0,Mp=n[s+8>>2]|0,Af=s+28|0,xc=(n[Af>>2]|0)!=0,Co=Jn?B:k,Rc=Jn?k:B,Up=y(Cp(s,Rr,B)),_p=y(Iw(s,Rr,B)),Me=y(Cp(s,ur,B)),Fc=y(En(s,Rr,B)),Ys=y(En(s,ur,B)),or=Jn?d:m,Fl=Jn?m:d,xr=Jn?Fc:Ys,lt=Jn?Ys:Fc,Qc=y(ln(s,2,B)),Xe=y(ln(s,0,B)),Qe=y(y(Gr(s+364|0,B))-xr),et=y(y(Gr(s+380|0,B))-xr),Ue=y(y(Gr(s+372|0,k))-lt),je=y(y(Gr(s+388|0,k))-lt),Tu=Jn?Qe:Ue,Nu=Jn?et:je,Qc=y(l-Qc),l=y(Qc-xr),_t(l)|0?xr=l:xr=y(_n(y(Tg(l,et)),Qe)),lf=y(c-Xe),l=y(lf-lt),_t(l)|0?Eo=l:Eo=y(_n(y(Tg(l,je)),Ue)),Qe=Jn?xr:Eo,Rn=Jn?Eo:xr;e:do if((or|0)==1)for(f=0,j=0;;){if(O=gs(s,j)|0,!f)y(rs(O))>y(0)&&y(qs(O))>y(0)?f=O:f=0;else if(Tm(O)|0){Ge=0;break e}if(j=j+1|0,j>>>0>=Ws>>>0){Ge=f;break}}else Ge=0;while(0);Lt=Ge+500|0,Mr=Ge+504|0,f=0,O=0,l=y(0),se=0;do{if(j=n[(n[wo>>2]|0)+(se<<2)>>2]|0,(n[j+36>>2]|0)==1)Bu(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Bl(j),Q&&Ep(j,mt(j,Ds)|0,Qe,Rn,xr);do if((n[j+24>>2]|0)!=1)if((j|0)==(Ge|0)){n[Lt>>2]=n[2278],h[Mr>>2]=y(0);break}else{Nm(s,j,xr,d,Eo,xr,Eo,m,Ds,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=(f|0)==0?j:f;while(0);vs=y(h[j+504>>2]),l=y(l+y(vs+y(ln(j,Rr,xr))))}se=se+1|0}while((se|0)!=(Ws|0));for(mo=l>Qe,Ql=xc&((or|0)==2&mo)?1:or,xn=(Fl|0)==1,ya=xn&(Q^1),Fp=(Ql|0)==1,Rp=(Ql|0)==2,bl=976+(Rr<<2)|0,Tp=(Fl|2|0)==2,Op=xn&(xc^1),Fu=1040+(ur<<2)|0,Ru=1040+(Rr<<2)|0,Np=976+(ur<<2)|0,Lp=(Fl|0)!=1,mo=xc&((or|0)!=0&mo),go=s+976|0,xn=xn^1,l=Qe,Nr=0,yo=0,vs=y(0),kc=y(0);;){e:do if(Nr>>>0>>0)for(Mr=n[wo>>2]|0,se=0,je=y(0),Ue=y(0),et=y(0),Qe=y(0),j=0,O=0,Ge=Nr;;){if(Lt=n[Mr+(Ge<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=yo,(n[Lt+24>>2]|0)!=1)){if(Xe=y(ln(Lt,Rr,xr)),Xr=n[bl>>2]|0,c=y(Gr(Lt+380+(Xr<<3)|0,Co)),lt=y(h[Lt+504>>2]),c=y(Tg(c,lt)),c=y(_n(y(Gr(Lt+364+(Xr<<3)|0,Co)),c)),xc&(se|0)!=0&y(Xe+y(Ue+c))>l){m=se,Xe=je,or=Ge;break e}Xe=y(Xe+c),c=y(Ue+Xe),Xe=y(je+Xe),Tm(Lt)|0&&(et=y(et+y(rs(Lt))),Qe=y(Qe-y(lt*y(qs(Lt))))),O|0&&(n[O+960>>2]=Lt),n[Lt+960>>2]=0,se=se+1|0,O=Lt,j=(j|0)==0?Lt:j}else Xe=je,c=Ue;if(Ge=Ge+1|0,Ge>>>0>>0)je=Xe,Ue=c;else{m=se,or=Ge;break}}else m=0,Xe=y(0),et=y(0),Qe=y(0),j=0,or=Nr;while(0);Xr=et>y(0)&ety(0)&QeNu&((_t(Nu)|0)^1))l=Nu,Xr=51;else if(o[(n[go>>2]|0)+3>>0]|0)Xr=51;else{if(Xt!=y(0)&&y(rs(s))!=y(0)){Xr=53;break}l=Xe,Xr=53}while(0);if((Xr|0)==51&&(Xr=0,_t(l)|0?Xr=53:(Sr=y(l-Xe),ir=l)),(Xr|0)==53&&(Xr=0,Xe>2]|0,Ge=Sry(0),Ue=y(Sr/Xt),et=y(0),Xe=y(0),l=y(0),O=j;do c=y(Gr(O+380+(se<<3)|0,Co)),Qe=y(Gr(O+364+(se<<3)|0,Co)),Qe=y(Tg(c,y(_n(Qe,y(h[O+504>>2]))))),Ge?(c=y(Qe*y(qs(O))),c!=y(-0)&&(Jt=y(Qe-y(lt*c)),sf=y(Bi(O,Rr,Jt,ir,xr)),Jt!=sf)&&(et=y(et-y(sf-Qe)),l=y(l+c))):Lt&&(Lu=y(rs(O)),Lu!=y(0))&&(Jt=y(Qe+y(Ue*Lu)),of=y(Bi(O,Rr,Jt,ir,xr)),Jt!=of)&&(et=y(et-y(of-Qe)),Xe=y(Xe-Lu)),O=n[O+960>>2]|0;while((O|0)!=0);if(l=y(je+l),Qe=y(Sr+et),nf)l=y(0);else{lt=y(Xt+Xe),Ge=n[bl>>2]|0,Lt=Qey(0),lt=y(Qe/lt),l=y(0);do{Jt=y(Gr(j+380+(Ge<<3)|0,Co)),et=y(Gr(j+364+(Ge<<3)|0,Co)),et=y(Tg(Jt,y(_n(et,y(h[j+504>>2]))))),Lt?(Jt=y(et*y(qs(j))),Qe=y(-Jt),Jt!=y(-0)?(Jt=y(Ue*Qe),Qe=y(Bi(j,Rr,y(et+(Mr?Qe:Jt)),ir,xr))):Qe=et):se&&(af=y(rs(j)),af!=y(0))?Qe=y(Bi(j,Rr,y(et+y(lt*af)),ir,xr)):Qe=et,l=y(l-y(Qe-et)),Xe=y(ln(j,Rr,xr)),c=y(ln(j,ur,xr)),Qe=y(Qe+Xe),h[za>>2]=Qe,n[kl>>2]=1,et=y(h[j+396>>2]);e:do if(_t(et)|0){O=_t(Rn)|0;do if(!O){if(mo|(ts(j,ur,Rn)|0|xn)||(ha(s,j)|0)!=4||(n[(vl(j,ur)|0)+4>>2]|0)==3||(n[(Sc(j,ur)|0)+4>>2]|0)==3)break;h[js>>2]=Rn,n[Wo>>2]=1;break e}while(0);if(ts(j,ur,Rn)|0){O=n[j+992+(n[Np>>2]<<2)>>2]|0,Jt=y(c+y(Gr(O,Rn))),h[js>>2]=Jt,O=Lp&(n[O+4>>2]|0)==2,n[Wo>>2]=((_t(Jt)|0|O)^1)&1;break}else{h[js>>2]=Rn,n[Wo>>2]=O?0:2;break}}else Jt=y(Qe-Xe),Xt=y(Jt/et),Jt=y(et*Jt),n[Wo>>2]=1,h[js>>2]=y(c+(Jn?Xt:Jt));while(0);yr(j,Rr,ir,xr,kl,za),yr(j,ur,Rn,xr,Wo,js);do if(!(ts(j,ur,Rn)|0)&&(ha(s,j)|0)==4){if((n[(vl(j,ur)|0)+4>>2]|0)==3){O=0;break}O=(n[(Sc(j,ur)|0)+4>>2]|0)!=3}else O=0;while(0);Jt=y(h[za>>2]),Xt=y(h[js>>2]),hf=n[kl>>2]|0,li=n[Wo>>2]|0,fa(j,Jn?Jt:Xt,Jn?Xt:Jt,Ds,Jn?hf:li,Jn?li:hf,xr,Eo,Q&(O^1),3488,M)|0,o[xl>>0]=o[xl>>0]|o[j+508>>0],j=n[j+960>>2]|0}while((j|0)!=0)}}else l=y(0);if(l=y(Sr+l),li=l>0]=li|u[xl>>0],Rp&l>y(0)?(O=n[bl>>2]|0,(n[s+364+(O<<3)+4>>2]|0)!=0&&(Gs=y(Gr(s+364+(O<<3)|0,Co)),Gs>=y(0))?Qe=y(_n(y(0),y(Gs-y(ir-l)))):Qe=y(0)):Qe=l,Lt=Nr>>>0>>0,Lt){Ge=n[wo>>2]|0,se=Nr,O=0;do j=n[Ge+(se<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(vl(j,Rr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(Sc(j,Rr)|0)+4>>2]|0)==3&1)|0),se=se+1|0;while((se|0)!=(or|0));O?(Xe=y(0),c=y(0)):Xr=101}else Xr=101;e:do if((Xr|0)==101)switch(Xr=0,Mp|0){case 1:{O=0,Xe=y(Qe*y(.5)),c=y(0);break e}case 2:{O=0,Xe=Qe,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Xe=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Xe=y(0),c=y(y(_n(Qe,y(0)))/c);break e}case 5:{c=y(Qe/y((m+1|0)>>>0)),O=0,Xe=c;break e}case 4:{c=y(Qe/y(m>>>0)),O=0,Xe=y(c*y(.5));break e}default:{O=0,Xe=y(0),c=y(0);break e}}while(0);if(l=y(Up+Xe),Lt){et=y(Qe/y(O|0)),se=n[wo>>2]|0,j=Nr,Qe=y(0);do{O=n[se+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(gi(O,Rr)|0){if(!Q)break e;Jt=y(Or(O,Rr,ir)),Jt=y(Jt+y(Cr(s,Rr))),Jt=y(Jt+y(K(O,Rr,xr))),h[O+400+(n[Ru>>2]<<2)>>2]=Jt;break e}break}case 0:if(li=(n[(vl(O,Rr)|0)+4>>2]|0)==3,Jt=y(et+l),l=li?Jt:l,Q&&(li=O+400+(n[Ru>>2]<<2)|0,h[li>>2]=y(l+y(h[li>>2]))),li=(n[(Sc(O,Rr)|0)+4>>2]|0)==3,Jt=y(et+l),l=li?Jt:l,ya){Jt=y(c+y(ln(O,Rr,xr))),Qe=Rn,l=y(l+y(Jt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(ns(O,Rr,xr)))),Qe=y(_n(Qe,y(ns(O,ur,xr))));break e}default:}Q&&(Jt=y(Xe+y(Cr(s,Rr))),li=O+400+(n[Ru>>2]<<2)|0,h[li>>2]=y(Jt+y(h[li>>2])))}while(0);j=j+1|0}while((j|0)!=(or|0))}else Qe=y(0);if(c=y(_p+l),Tp?Xe=y(y(Bi(s,ur,y(Ys+Qe),Rc,B))-Ys):Xe=Rn,et=y(y(Bi(s,ur,y(Ys+(Op?Rn:Qe)),Rc,B))-Ys),Lt&Q){j=Nr;do{se=n[(n[wo>>2]|0)+(j<<2)>>2]|0;do if((n[se+36>>2]|0)!=1){if((n[se+24>>2]|0)==1){if(gi(se,ur)|0){if(Jt=y(Or(se,ur,Rn)),Jt=y(Jt+y(Cr(s,ur))),Jt=y(Jt+y(K(se,ur,xr))),O=n[Fu>>2]|0,h[se+400+(O<<2)>>2]=Jt,!(_t(Jt)|0))break}else O=n[Fu>>2]|0;Jt=y(Cr(s,ur)),h[se+400+(O<<2)>>2]=y(Jt+y(K(se,ur,xr)));break}O=ha(s,se)|0;do if((O|0)==4){if((n[(vl(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if((n[(Sc(se,ur)|0)+4>>2]|0)==3){Xr=139;break}if(ts(se,ur,Rn)|0){l=Me;break}hf=n[se+908+(n[bl>>2]<<2)>>2]|0,n[js>>2]=hf,l=y(h[se+396>>2]),li=_t(l)|0,Qe=(n[v>>2]=hf,y(h[v>>2])),li?l=et:(Sr=y(ln(se,ur,xr)),Jt=y(Qe/l),l=y(l*Qe),l=y(Sr+(Jn?Jt:l))),h[za>>2]=l,h[js>>2]=y(y(ln(se,Rr,xr))+Qe),n[Wo>>2]=1,n[kl>>2]=1,yr(se,Rr,ir,xr,Wo,js),yr(se,ur,Rn,xr,kl,za),l=y(h[js>>2]),Sr=y(h[za>>2]),Jt=Jn?l:Sr,l=Jn?Sr:l,li=((_t(Jt)|0)^1)&1,fa(se,Jt,l,Ds,li,((_t(l)|0)^1)&1,xr,Eo,1,3493,M)|0,l=Me}else Xr=139;while(0);e:do if((Xr|0)==139){Xr=0,l=y(Xe-y(ns(se,ur,xr)));do if((n[(vl(se,ur)|0)+4>>2]|0)==3){if((n[(Sc(se,ur)|0)+4>>2]|0)!=3)break;l=y(Me+y(_n(y(0),y(l*y(.5)))));break e}while(0);if((n[(Sc(se,ur)|0)+4>>2]|0)==3){l=Me;break}if((n[(vl(se,ur)|0)+4>>2]|0)==3){l=y(Me+y(_n(y(0),l)));break}switch(O|0){case 1:{l=Me;break e}case 2:{l=y(Me+y(l*y(.5)));break e}default:{l=y(Me+l);break e}}}while(0);Jt=y(vs+l),li=se+400+(n[Fu>>2]<<2)|0,h[li>>2]=y(Jt+y(h[li>>2]))}while(0);j=j+1|0}while((j|0)!=(or|0))}if(vs=y(vs+et),kc=y(_n(kc,c)),m=yo+1|0,or>>>0>=Ws>>>0)break;l=ir,Nr=or,yo=m}do if(Q){if(O=m>>>0>1,!O&&!(Yi(s)|0))break;if(!(_t(Rn)|0)){l=y(Rn-vs);e:do switch(n[s+12>>2]|0){case 3:{Me=y(Me+l),Ue=y(0);break}case 2:{Me=y(Me+y(l*y(.5))),Ue=y(0);break}case 4:{Rn>vs?Ue=y(l/y(m>>>0)):Ue=y(0);break}case 7:if(Rn>vs){Me=y(Me+y(l/y(m<<1>>>0))),Ue=y(l/y(m>>>0)),Ue=O?Ue:y(0);break e}else{Me=y(Me+y(l*y(.5))),Ue=y(0);break e}case 6:{Ue=y(l/y(yo>>>0)),Ue=Rn>vs&O?Ue:y(0);break}default:Ue=y(0)}while(0);if(m|0)for(Lt=1040+(ur<<2)|0,Mr=976+(ur<<2)|0,Ge=0,j=0;;){e:do if(j>>>0>>0)for(Qe=y(0),et=y(0),l=y(0),se=j;;){O=n[(n[wo>>2]|0)+(se<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&(n[O+24>>2]|0)==0){if((n[O+940>>2]|0)!=(Ge|0))break e;if(Lm(O,ur)|0&&(Jt=y(h[O+908+(n[Mr>>2]<<2)>>2]),l=y(_n(l,y(Jt+y(ln(O,ur,xr)))))),(ha(s,O)|0)!=5)break;Gs=y(Ya(O)),Gs=y(Gs+y(K(O,0,xr))),Jt=y(h[O+912>>2]),Jt=y(y(Jt+y(ln(O,0,xr)))-Gs),Gs=y(_n(et,Gs)),Jt=y(_n(Qe,Jt)),Qe=Jt,et=Gs,l=y(_n(l,y(Gs+Jt)))}while(0);if(O=se+1|0,O>>>0>>0)se=O;else{se=O;break}}else et=y(0),l=y(0),se=j;while(0);if(lt=y(Ue+l),c=Me,Me=y(Me+lt),j>>>0>>0){Xe=y(c+et),O=j;do{j=n[(n[wo>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&(n[j+24>>2]|0)==0)switch(ha(s,j)|0){case 1:{Jt=y(c+y(K(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=Jt;break e}case 3:{Jt=y(y(Me-y(re(j,ur,xr)))-y(h[j+908+(n[Mr>>2]<<2)>>2])),h[j+400+(n[Lt>>2]<<2)>>2]=Jt;break e}case 2:{Jt=y(c+y(y(lt-y(h[j+908+(n[Mr>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Lt>>2]<<2)>>2]=Jt;break e}case 4:{if(Jt=y(c+y(K(j,ur,xr))),h[j+400+(n[Lt>>2]<<2)>>2]=Jt,ts(j,ur,Rn)|0||(Jn?(Qe=y(h[j+908>>2]),l=y(Qe+y(ln(j,Rr,xr))),et=lt):(et=y(h[j+912>>2]),et=y(et+y(ln(j,ur,xr))),l=lt,Qe=y(h[j+908>>2])),Ii(l,Qe)|0&&Ii(et,y(h[j+912>>2]))|0))break e;fa(j,l,et,Ds,1,1,xr,Eo,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Xe-y(Ya(j)))+y(Or(j,0,Rn)));break e}default:break e}while(0);O=O+1|0}while((O|0)!=(se|0))}if(Ge=Ge+1|0,(Ge|0)==(m|0))break;j=se}}}while(0);if(h[s+908>>2]=y(Bi(s,2,Qc,B,B)),h[s+912>>2]=y(Bi(s,0,lf,k,B)),(Ql|0)!=0&&(cf=n[s+32>>2]|0,uf=(Ql|0)==2,!(uf&(cf|0)!=2))?uf&(cf|0)==2&&(l=y(Fc+ir),l=y(_n(y(Tg(l,y(MA(s,Rr,kc,Co)))),Fc)),Xr=198):(l=y(Bi(s,Rr,kc,Co,B)),Xr=198),(Xr|0)==198&&(h[s+908+(n[976+(Rr<<2)>>2]<<2)>>2]=l),(Fl|0)!=0&&(ff=n[s+32>>2]|0,pf=(Fl|0)==2,!(pf&(ff|0)!=2))?pf&(ff|0)==2&&(l=y(Ys+Rn),l=y(_n(y(Tg(l,y(MA(s,ur,y(Ys+vs),Rc)))),Ys)),Xr=204):(l=y(Bi(s,ur,y(Ys+vs),Rc,B)),Xr=204),(Xr|0)==204&&(h[s+908+(n[976+(ur<<2)>>2]<<2)>>2]=l),Q){if((n[Af>>2]|0)==2){j=976+(ur<<2)|0,se=1040+(ur<<2)|0,O=0;do Ge=gs(s,O)|0,n[Ge+24>>2]|0||(hf=n[j>>2]|0,Jt=y(h[s+908+(hf<<2)>>2]),li=Ge+400+(n[se>>2]<<2)|0,Jt=y(Jt-y(h[li>>2])),h[li>>2]=y(Jt-y(h[Ge+908+(hf<<2)>>2]))),O=O+1|0;while((O|0)!=(Ws|0))}if(f|0){O=Jn?Ql:d;do Om(s,f,xr,O,Eo,Ds,M),f=n[f+960>>2]|0;while((f|0)!=0)}if(O=(Rr|2|0)==3,j=(ur|2|0)==3,O|j){f=0;do se=n[(n[wo>>2]|0)+(f<<2)>>2]|0,(n[se+36>>2]|0)!=1&&(O&&wp(s,se,Rr),j&&wp(s,se,ur)),f=f+1|0;while((f|0)!=(Ws|0))}}}while(0);C=Rl}function pa(s,l){s=s|0,l=y(l);var c=0;oa(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function vc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=Ze,m=Ze,B=0,k=0,Q=0;n[2278]=(n[2278]|0)+1,Bl(s),ts(s,2,l)|0?(d=y(Gr(n[s+992>>2]|0,l)),Q=1,d=y(d+y(ln(s,2,l)))):(d=y(Gr(s+380|0,l)),d>=y(0)?Q=2:(Q=((_t(l)|0)^1)&1,d=l)),ts(s,0,c)|0?(m=y(Gr(n[s+996>>2]|0,c)),k=1,m=y(m+y(ln(s,0,l)))):(m=y(Gr(s+388|0,c)),m>=y(0)?k=2:(k=((_t(c)|0)^1)&1,m=c)),B=s+976|0,fa(s,d,m,f,Q,k,l,c,1,3189,n[B>>2]|0)|0&&(Ep(s,n[s+496>>2]|0,l,c,l),Dc(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&Qm(s,7)}function Bl(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;k=C,C=C+32|0,B=k+24|0,m=k+16|0,f=k+8|0,d=k,c=0;do l=s+380+(c<<3)|0,(n[s+380+(c<<3)+4>>2]|0)!=0&&(Q=l,M=n[Q+4>>2]|0,O=f,n[O>>2]=n[Q>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,Q=d,n[Q>>2]=n[O>>2],n[Q+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],ws(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=k}function ts(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(ce)}return y(l)}function Ep(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=Ze;l=n[s+944>>2]|0?l:1,m=fr(n[s+4>>2]|0,l)|0,l=ww(m,l)|0,c=y(Mm(s,m,c)),f=y(Mm(s,l,f)),B=y(c+y(K(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(re(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(K(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(re(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function Dc(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=Ze,k=Ze,Q=0,M=0,O=Ze,j=0,se=Ze,Ge=Ze,Me=Ze,Qe=Ze;if(l!=y(0)&&(d=s+400|0,Qe=y(h[d>>2]),m=s+404|0,Me=y(h[m>>2]),j=s+416|0,Ge=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),se=y(Qe+c),O=y(Me+f),f=y(se+Ge),k=y(O+B),Q=(n[s+988>>2]|0)==1,h[d>>2]=y(Go(Qe,l,0,Q)),h[m>>2]=y(Go(Me,l,0,Q)),c=y(bR(y(Ge*l),y(1))),Ii(c,y(0))|0?m=0:m=(Ii(c,y(1))|0)^1,c=y(bR(y(B*l),y(1))),Ii(c,y(0))|0?d=0:d=(Ii(c,y(1))|0)^1,Qe=y(Go(f,l,Q&m,Q&(m^1))),h[j>>2]=y(Qe-y(Go(se,l,0,Q))),Qe=y(Go(k,l,Q&d,Q&(d^1))),h[M>>2]=y(Qe-y(Go(O,l,0,Q))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do Dc(gs(s,d)|0,l,se,O),d=d+1|0;while((d|0)!=(m|0))}}function Cw(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=i7(n[489]|0,f,d)|0;break}default:s=zUe(f,d)|0}return s|0}function Eg(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,Cg(s,0,l,c,m),C=d}function Cg(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,D7[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Rt();else return}function Ga(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Rm(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(wg(s,f),Qt(s,n[l>>2]|0,n[c>>2]|0,f))}function wg(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0>>0&&zr(s),l>>>0>1073741823)Rt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function Qt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function K(s,l,c){return s=s|0,l=l|0,c=y(c),pe(l)|0&&(n[s+96>>2]|0)!=0?s=s+92|0:s=Fn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function re(s,l,c){return s=s|0,l=l|0,c=y(c),pe(l)|0&&(n[s+104>>2]|0)!=0?s=s+100|0:s=Fn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(ze(s,c))}function pe(s){return s=s|0,(s|1|0)==3|0}function ze(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Gr(s,l)),y(l)}function mt(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,((s|0)==0?(l|0)>1?l:1:s)|0}function fr(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(0);return s|0}function Cr(s,l){s=s|0,l=l|0;var c=Ze;return pe(l)|0&&(n[s+312>>2]|0)!=0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function yn(s,l){s=s|0,l=l|0;var c=Ze;return pe(l)|0&&(n[s+320>>2]|0)!=0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(_n(y(h[(Fn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function oi(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return pe(l)|0&&(n[s+240>>2]|0)!=0&&(f=y(Gr(s+236|0,c)),f>=y(0))||(f=y(_n(y(Gr(Fn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Oi(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return pe(l)|0&&(n[s+248>>2]|0)!=0&&(f=y(Gr(s+244|0,c)),f>=y(0))||(f=y(_n(y(Gr(Fn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function Ig(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,Q=Ze,M=Ze,O=Ze,j=Ze,se=Ze,Ge=0,Me=0,Qe=0;Qe=C,C=C+16|0,Ge=Qe,Me=s+964|0,Un(s,(n[Me>>2]|0)!=0,3519),k=y(En(s,2,l)),Q=y(En(s,0,l)),M=y(ln(s,2,l)),O=y(ln(s,0,l)),_t(l)|0?j=l:j=y(_n(y(0),y(y(l-M)-k))),_t(c)|0?se=c:se=y(_n(y(0),y(y(c-O)-Q))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Bi(s,2,y(l-M),m,m)),l=y(Bi(s,0,y(c-O),B,m))):(S7[n[Me>>2]&1](Ge,s,j,f,se,d),j=y(k+y(h[Ge>>2])),se=y(l-M),h[s+908>>2]=y(Bi(s,2,(f|2|0)==2?j:se,m,m)),se=y(Q+y(h[Ge+4>>2])),l=y(c-O),l=y(Bi(s,0,(d|2|0)==2?se:l,B,m))),h[s+912>>2]=l,C=Qe}function Gv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,Q=Ze,M=Ze,O=Ze;M=y(En(s,2,m)),k=y(En(s,0,m)),O=y(ln(s,2,m)),Q=y(ln(s,0,m)),l=y(l-O),h[s+908>>2]=y(Bi(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-Q),h[s+912>>2]=y(Bi(s,0,(d|2|0)==2?k:c,B,m))}function Yv(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=0,Q=Ze,M=Ze;return k=(f|0)==2,!(l<=y(0)&k)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(Q=y(ln(s,0,m)),M=y(ln(s,2,m)),k=l>2]=y(Bi(s,2,k?y(0):l,m,m)),l=y(c-Q),k=c>2]=y(Bi(s,0,k?y(0):l,B,m)),s=1),s|0}function ww(s,l){return s=s|0,l=l|0,UA(s)|0?s=fr(2,l)|0:s=0,s|0}function Cp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(oi(s,l,c)),y(c+y(Cr(s,l)))}function Iw(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(Oi(s,l,c)),y(c+y(yn(s,l)))}function En(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(Cp(s,l,c)),y(f+y(Iw(s,l,c)))}function Tm(s){return s=s|0,n[s+24>>2]|0?s=0:y(rs(s))!=y(0)?s=1:s=y(qs(s))!=y(0),s|0}function rs(s){s=s|0;var l=Ze;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),_t(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((_t(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function qs(s){s=s|0;var l=Ze,c=0,f=Ze;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),_t(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,c<<24>>24==0&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(0);return y(l)}function Bu(s){s=s|0;var l=0,c=0;if(Xm(s+400|0,0,540)|0,o[s+985>>0]=1,$(s),c=wi(s)|0,c|0){l=s+948|0,s=0;do Bu(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function Nm(s,l,c,f,d,m,B,k,Q,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),k=k|0,Q=Q|0,M=M|0;var O=0,j=Ze,se=0,Ge=0,Me=Ze,Qe=Ze,et=0,Xe=Ze,lt=0,Ue=Ze,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=0,go=0;xn=C,C=C+16|0,Mr=xn+12|0,or=xn+8|0,Xt=xn+4|0,Sr=xn,ir=fr(n[s+4>>2]|0,Q)|0,je=pe(ir)|0,j=y(Gr(Bw(l)|0,je?m:B)),Lt=ts(l,2,m)|0,Nr=ts(l,0,B)|0;do if(!(_t(j)|0)&&!(_t(je?c:d)|0)){if(O=l+504|0,!(_t(y(h[O>>2]))|0)&&(!(vw(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(_n(j,y(En(l,ir,m))))}else se=7;while(0);do if((se|0)==7){if(lt=je^1,!(lt|Lt^1)){B=y(Gr(n[l+992>>2]|0,m)),h[l+504>>2]=y(_n(B,y(En(l,2,m))));break}if(!(je|Nr^1)){B=y(Gr(n[l+996>>2]|0,B)),h[l+504>>2]=y(_n(B,y(En(l,0,m))));break}h[Mr>>2]=y(ce),h[or>>2]=y(ce),n[Xt>>2]=0,n[Sr>>2]=0,Xe=y(ln(l,2,m)),Ue=y(ln(l,0,m)),Lt?(Me=y(Xe+y(Gr(n[l+992>>2]|0,m))),h[Mr>>2]=Me,n[Xt>>2]=1,Ge=1):(Ge=0,Me=y(ce)),Nr?(j=y(Ue+y(Gr(n[l+996>>2]|0,B))),h[or>>2]=j,n[Sr>>2]=1,O=1):(O=0,j=y(ce)),se=n[s+32>>2]|0,je&(se|0)==2?se=2:_t(Me)|0&&!(_t(c)|0)&&(h[Mr>>2]=c,n[Xt>>2]=2,Ge=2,Me=c),!((se|0)==2<)&&_t(j)|0&&!(_t(d)|0)&&(h[or>>2]=d,n[Sr>>2]=2,O=2,j=d),Qe=y(h[l+396>>2]),et=_t(Qe)|0;do if(et)se=Ge;else{if((Ge|0)==1<){h[or>>2]=y(y(Me-Xe)/Qe),n[Sr>>2]=1,O=1,se=1;break}je&(O|0)==1?(h[Mr>>2]=y(Qe*y(j-Ue)),n[Xt>>2]=1,O=1,se=1):se=Ge}while(0);go=_t(c)|0,Ge=(ha(s,l)|0)!=4,!(je|Lt|((f|0)!=1|go)|(Ge|(se|0)==1))&&(h[Mr>>2]=c,n[Xt>>2]=1,!et)&&(h[or>>2]=y(y(c-Xe)/Qe),n[Sr>>2]=1,O=1),!(Nr|lt|((k|0)!=1|(_t(d)|0))|(Ge|(O|0)==1))&&(h[or>>2]=d,n[Sr>>2]=1,!et)&&(h[Mr>>2]=y(Qe*y(d-Ue)),n[Xt>>2]=1),yr(l,2,m,m,Xt,Mr),yr(l,0,B,m,Sr,or),c=y(h[Mr>>2]),d=y(h[or>>2]),fa(l,c,d,Q,n[Xt>>2]|0,n[Sr>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(ir<<2)>>2]<<2)>>2]),h[l+504>>2]=y(_n(B,y(En(l,ir,m))))}while(0);n[l+500>>2]=n[2278],C=xn}function Bi(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(MA(s,l,c,f)),y(_n(f,y(En(s,l,d))))}function ha(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[((n[l>>2]|0)==0?s+16|0:l)>>2]|0,(l|0)==5&&UA(n[s+4>>2]|0)|0&&(l=1),l|0}function vl(s,l){return s=s|0,l=l|0,pe(l)|0&&(n[s+96>>2]|0)!=0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function Sc(s,l){return s=s|0,l=l|0,pe(l)|0&&(n[s+104>>2]|0)!=0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function yr(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Gr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(ln(s,l,f))),n[d>>2]|0){case 2:case 1:{d=_t(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function gi(s,l){return s=s|0,l=l|0,s=s+132|0,pe(l)|0&&(n[(Fn(s,4,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Fn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function Or(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,pe(l)|0&&(f=Fn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Gr(f,c))),y(c)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(K(s,l,c))),y(f+y(re(s,l,c)))}function Yi(s){s=s|0;var l=0,c=0,f=0;e:do if(UA(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=wi(s)|0,!c)l=0;else for(l=0;;){if(f=gs(s,l)|0,(n[f+24>>2]|0)==0&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(0);return l|0}function Lm(s,l){s=s|0,l=l|0;var c=Ze;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((_t(c)|0)^1)|0}function Ya(s){s=s|0;var l=Ze,c=0,f=0,d=0,m=0,B=0,k=0,Q=Ze;if(c=n[s+968>>2]|0,c)Q=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(w7[c&0](s,Q,l)),Un(s,(_t(l)|0)^1,3573);else{m=wi(s)|0;do if(m|0){for(c=0,d=0;;){if(f=gs(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(k=(ha(s,f)|0)==5,k){c=f;break}else c=(c|0)==0?f:c;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(Ya(c)),y(l+y(h[c+404>>2]))}while(0);l=y(h[s+912>>2])}return y(l)}function MA(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=Ze,m=0;return UA(l)|0?(l=1,m=3):pe(l)|0?(l=0,m=3):(f=y(ce),d=y(ce)),(m|0)==3&&(d=y(Gr(s+364+(l<<3)|0,f)),f=y(Gr(s+380+(l<<3)|0,f))),m=f=y(0)&((_t(f)|0)^1)),c=m?f:c,m=d>=y(0)&((_t(d)|0)^1)&c>2]|0,m)|0,Me=ww(et,m)|0,Qe=pe(et)|0,j=y(ln(l,2,c)),se=y(ln(l,0,c)),ts(l,2,c)|0?k=y(j+y(Gr(n[l+992>>2]|0,c))):gi(l,2)|0&&sr(l,2)|0?(k=y(h[s+908>>2]),Q=y(Cr(s,2)),Q=y(k-y(Q+y(yn(s,2)))),k=y(Or(l,2,c)),k=y(Bi(l,2,y(Q-y(k+y(vu(l,2,c)))),c,c))):k=y(ce),ts(l,0,d)|0?Q=y(se+y(Gr(n[l+996>>2]|0,d))):gi(l,0)|0&&sr(l,0)|0?(Q=y(h[s+912>>2]),lt=y(Cr(s,0)),lt=y(Q-y(lt+y(yn(s,0)))),Q=y(Or(l,0,d)),Q=y(Bi(l,0,y(lt-y(Q+y(vu(l,0,d)))),d,c))):Q=y(ce),M=_t(k)|0,O=_t(Q)|0;do if(M^O&&(Ge=y(h[l+396>>2]),!(_t(Ge)|0)))if(M){k=y(j+y(y(Q-se)*Ge));break}else{lt=y(se+y(y(k-j)/Ge)),Q=O?lt:Q;break}while(0);O=_t(k)|0,M=_t(Q)|0,O|M&&(Ue=(O^1)&1,f=c>y(0)&((f|0)!=0&O),k=Qe?k:f?c:k,fa(l,k,Q,m,Qe?Ue:f?2:Ue,O&(M^1)&1,k,Q,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(ln(l,2,c))),Q=y(h[l+912>>2]),Q=y(Q+y(ln(l,0,c)))),fa(l,k,Q,m,1,1,k,Q,1,3635,B)|0,sr(l,et)|0&&!(gi(l,et)|0)?(Ue=n[976+(et<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),lt=y(lt-y(yn(s,et))),lt=y(lt-y(re(l,et,c))),lt=y(lt-y(vu(l,et,Qe?c:d))),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=lt):Xe=21;do if((Xe|0)==21){if(!(gi(l,et)|0)&&(n[s+8>>2]|0)==1){Ue=n[976+(et<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(y(lt-y(h[l+908+(Ue<<2)>>2]))*y(.5)),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=lt;break}!(gi(l,et)|0)&&(n[s+8>>2]|0)==2&&(Ue=n[976+(et<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),h[l+400+(n[1040+(et<<2)>>2]<<2)>>2]=lt)}while(0);sr(l,Me)|0&&!(gi(l,Me)|0)?(Ue=n[976+(Me<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),lt=y(lt-y(yn(s,Me))),lt=y(lt-y(re(l,Me,c))),lt=y(lt-y(vu(l,Me,Qe?d:c))),h[l+400+(n[1040+(Me<<2)>>2]<<2)>>2]=lt):Xe=30;do if((Xe|0)==30&&!(gi(l,Me)|0)){if((ha(s,l)|0)==2){Ue=n[976+(Me<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(y(lt-y(h[l+908+(Ue<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Me<<2)>>2]<<2)>>2]=lt;break}Ue=(ha(s,l)|0)==3,Ue^(n[s+28>>2]|0)==2&&(Ue=n[976+(Me<<2)>>2]|0,lt=y(h[s+908+(Ue<<2)>>2]),lt=y(lt-y(h[l+908+(Ue<<2)>>2])),h[l+400+(n[1040+(Me<<2)>>2]<<2)>>2]=lt)}while(0)}function wp(s,l,c){s=s|0,l=l|0,c=c|0;var f=Ze,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function UA(s){return s=s|0,(s|1|0)==1|0}function Bw(s){s=s|0;var l=Ze;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((_t(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function vw(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function sr(s,l){return s=s|0,l=l|0,s=s+132|0,pe(l)|0&&(n[(Fn(s,5,948)|0)+4>>2]|0)!=0?s=1:s=(n[(Fn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function vu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,pe(l)|0&&(f=Fn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=Fn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Gr(f,c))),y(c)}function Mm(s,l,c){return s=s|0,l=l|0,c=y(c),gi(s,l)|0?c=y(Or(s,l,c)):c=y(-y(vu(s,l,c))),y(c)}function Du(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function Ip(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Kt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function Bg(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _A(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function HA(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;if(B=s+4|0,k=n[B>>2]|0,d=k-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=k;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&Mw(k+(0-m<<2)|0,l|0,d|0)|0}function vg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return k=l+4|0,Q=n[k>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=Q+(0-(m>>2)<<2)|0,n[k>>2]=f,(m|0)>0&&Dr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(Dr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[k>>2],Q|0}function Dw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function Um(){dc()}function ga(){var s=0;return s=Kt(4)|0,qA(s),s|0}function qA(s){s=s|0,n[s>>2]=ys()|0}function Pc(s){s=s|0,s|0&&(Dg(s),gt(s))}function Dg(s){s=s|0,tt(n[s>>2]|0)}function _m(s,l,c){s=s|0,l=l|0,c=c|0,Ga(n[s>>2]|0,l,c)}function fo(s,l){s=s|0,l=y(l),pa(n[s>>2]|0,l)}function Wv(s,l){return s=s|0,l=l|0,vw(n[s>>2]|0,l)|0}function Sw(){var s=0;return s=Kt(8)|0,Kv(s,0),s|0}function Kv(s,l){s=s|0,l=l|0,l?l=Ci(n[l>>2]|0)|0:l=co()|0,n[s>>2]=l,n[s+4>>2]=0,bi(l,s)}function AF(s){s=s|0;var l=0;return l=Kt(8)|0,Kv(l,s),l|0}function Vv(s){s=s|0,s|0&&(Su(s),gt(s))}function Su(s){s=s|0;var l=0;la(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(jA(s),gt(s))}function jA(s){s=s|0,GA(s)}function GA(s){s=s|0,s=n[s>>2]|0,s|0&&PA(s|0)}function Pw(s){return s=s|0,qo(s)|0}function Hm(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(jA(l),gt(l)),_s(n[s>>2]|0)}function fF(s,l){s=s|0,l=l|0,$r(n[s>>2]|0,n[l>>2]|0)}function pF(s,l){s=s|0,l=l|0,ca(n[s>>2]|0,l)}function Jv(s,l,c){s=s|0,l=l|0,c=+c,yu(n[s>>2]|0,l,y(c))}function zv(s,l,c){s=s|0,l=l|0,c=+c,Es(n[s>>2]|0,l,y(c))}function bw(s,l){s=s|0,l=l|0,gu(n[s>>2]|0,l)}function Pu(s,l){s=s|0,l=l|0,du(n[s>>2]|0,l)}function hF(s,l){s=s|0,l=l|0,FA(n[s>>2]|0,l)}function gF(s,l){s=s|0,l=l|0,kA(n[s>>2]|0,l)}function Bp(s,l){s=s|0,l=l|0,yc(n[s>>2]|0,l)}function dF(s,l){s=s|0,l=l|0,Ap(n[s>>2]|0,l)}function Xv(s,l,c){s=s|0,l=l|0,c=+c,Cc(n[s>>2]|0,l,y(c))}function YA(s,l,c){s=s|0,l=l|0,c=+c,G(n[s>>2]|0,l,y(c))}function mF(s,l){s=s|0,l=l|0,wl(n[s>>2]|0,l)}function yF(s,l){s=s|0,l=l|0,ag(n[s>>2]|0,l)}function Zv(s,l){s=s|0,l=l|0,fp(n[s>>2]|0,l)}function xw(s,l){s=s|0,l=+l,RA(n[s>>2]|0,y(l))}function kw(s,l){s=s|0,l=+l,Ha(n[s>>2]|0,y(l))}function EF(s,l){s=s|0,l=+l,Gi(n[s>>2]|0,y(l))}function CF(s,l){s=s|0,l=+l,Hs(n[s>>2]|0,y(l))}function Dl(s,l){s=s|0,l=+l,mu(n[s>>2]|0,y(l))}function Qw(s,l){s=s|0,l=+l,yw(n[s>>2]|0,y(l))}function wF(s,l){s=s|0,l=+l,TA(n[s>>2]|0,y(l))}function WA(s){s=s|0,pp(n[s>>2]|0)}function qm(s,l){s=s|0,l=+l,Cs(n[s>>2]|0,y(l))}function bu(s,l){s=s|0,l=+l,ug(n[s>>2]|0,y(l))}function Fw(s){s=s|0,Ag(n[s>>2]|0)}function Rw(s,l){s=s|0,l=+l,hp(n[s>>2]|0,y(l))}function IF(s,l){s=s|0,l=+l,Ic(n[s>>2]|0,y(l))}function $v(s,l){s=s|0,l=+l,bm(n[s>>2]|0,y(l))}function KA(s,l){s=s|0,l=+l,pg(n[s>>2]|0,y(l))}function eD(s,l){s=s|0,l=+l,Cu(n[s>>2]|0,y(l))}function jm(s,l){s=s|0,l=+l,xm(n[s>>2]|0,y(l))}function tD(s,l){s=s|0,l=+l,wu(n[s>>2]|0,y(l))}function rD(s,l){s=s|0,l=+l,Ew(n[s>>2]|0,y(l))}function Gm(s,l){s=s|0,l=+l,Aa(n[s>>2]|0,y(l))}function nD(s,l,c){s=s|0,l=l|0,c=+c,Eu(n[s>>2]|0,l,y(c))}function BF(s,l,c){s=s|0,l=l|0,c=+c,xi(n[s>>2]|0,l,y(c))}function S(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function D(s){return s=s|0,og(n[s>>2]|0)|0}function T(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Ec(d,n[l>>2]|0,c),q(s,d),C=f}function q(s,l){s=s|0,l=l|0,Y(s,n[l+4>>2]|0,+y(h[l>>2]))}function Y(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function Ae(s){return s=s|0,sg(n[s>>2]|0)|0}function De(s){return s=s|0,uo(n[s>>2]|0)|0}function vt(s){return s=s|0,mc(n[s>>2]|0)|0}function wt(s){return s=s|0,QA(n[s>>2]|0)|0}function xt(s){return s=s|0,Pm(n[s>>2]|0)|0}function _r(s){return s=s|0,ig(n[s>>2]|0)|0}function is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Dt(d,n[l>>2]|0,c),q(s,d),C=f}function di(s){return s=s|0,$n(n[s>>2]|0)|0}function po(s){return s=s|0,lg(n[s>>2]|0)|0}function VA(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,ua(f,n[l>>2]|0),q(s,f),C=c}function Yo(s){return s=s|0,+ +y(ji(n[s>>2]|0))}function rt(s){return s=s|0,+ +y(es(n[s>>2]|0))}function Ve(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Br(f,n[l>>2]|0),q(s,f),C=c}function ft(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,fg(f,n[l>>2]|0),q(s,f),C=c}function Wt(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Ct(f,n[l>>2]|0),q(s,f),C=c}function vr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,hg(f,n[l>>2]|0),q(s,f),C=c}function Pn(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,gg(f,n[l>>2]|0),q(s,f),C=c}function Fr(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,km(f,n[l>>2]|0),q(s,f),C=c}function bn(s){return s=s|0,+ +y(Bc(n[s>>2]|0))}function ai(s,l){return s=s|0,l=l|0,+ +y(cg(n[s>>2]|0,l))}function tn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,ct(d,n[l>>2]|0,c),q(s,d),C=f}function ho(s,l,c){s=s|0,l=l|0,c=c|0,nr(n[s>>2]|0,n[l>>2]|0,c)}function vF(s,l){s=s|0,l=l|0,ms(n[s>>2]|0,n[l>>2]|0)}function eve(s){return s=s|0,wi(n[s>>2]|0)|0}function tve(s){return s=s|0,s=ht(n[s>>2]|0)|0,s?s=Pw(s)|0:s=0,s|0}function rve(s,l){return s=s|0,l=l|0,s=gs(n[s>>2]|0,l)|0,s?s=Pw(s)|0:s=0,s|0}function nve(s,l){s=s|0,l=l|0;var c=0,f=0;f=Kt(4)|0,zG(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(jA(l),gt(l)),It(n[s>>2]|0,1)}function zG(s,l){s=s|0,l=l|0,gve(s,l)}function ive(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,sve(k,qo(l)|0,+c,f,+d,m),h[s>>2]=y(+E[k>>3]),h[s+4>>2]=y(+E[k+8>>3]),C=B}function sve(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,k=0,Q=0,M=0,O=0;B=C,C=C+32|0,O=B+8|0,M=B+20|0,Q=B,k=B+16|0,E[O>>3]=c,n[M>>2]=f,E[Q>>3]=d,n[k>>2]=m,ove(s,n[l+4>>2]|0,O,M,Q,k),C=B}function ove(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,Ka(k),l=da(l)|0,ave(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),Va(k),C=B}function da(s){return s=s|0,n[s>>2]|0}function ave(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=Sl(lve()|0)|0,c=+JA(c),f=DF(f)|0,d=+JA(d),cve(s,hi(0,B|0,l|0,+c,f|0,+d,DF(m)|0)|0)}function lve(){var s=0;return o[7608]|0||(pve(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function Sl(s){return s=s|0,n[s+8>>2]|0}function JA(s){return s=+s,+ +SF(s)}function DF(s){return s=s|0,ZG(s)|0}function cve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(uve(c,0),ii(f|0,c|0)|0,Ave(s,c),fve(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function uve(s,l){s=s|0,l=l|0,XG(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function Ave(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function fve(s){s=s|0,o[s+24>>0]=0}function XG(s,l){s=s|0,l=l|0,n[s>>2]=l}function ZG(s){return s=s|0,s|0}function SF(s){return s=+s,+s}function pve(s){s=s|0,Pl(s,hve()|0,4)}function hve(){return 1064}function Pl(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=up(l|0,c+1|0)|0}function gve(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,yl(l|0)}function dve(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(jA(l),gt(l)),It(n[s>>2]|0,0)}function mve(s){s=s|0,Tt(n[s>>2]|0)}function yve(s){return s=s|0,er(n[s>>2]|0)|0}function Eve(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,vc(n[s>>2]|0,y(l),y(c),f)}function Cve(s){return s=s|0,+ +y(Il(n[s>>2]|0))}function wve(s){return s=s|0,+ +y(dg(n[s>>2]|0))}function Ive(s){return s=s|0,+ +y(Iu(n[s>>2]|0))}function Bve(s){return s=s|0,+ +y(NA(n[s>>2]|0))}function vve(s){return s=s|0,+ +y(gp(n[s>>2]|0))}function Dve(s){return s=s|0,+ +y(qa(n[s>>2]|0))}function Sve(s,l){s=s|0,l=l|0,E[s>>3]=+y(Il(n[l>>2]|0)),E[s+8>>3]=+y(dg(n[l>>2]|0)),E[s+16>>3]=+y(Iu(n[l>>2]|0)),E[s+24>>3]=+y(NA(n[l>>2]|0)),E[s+32>>3]=+y(gp(n[l>>2]|0)),E[s+40>>3]=+y(qa(n[l>>2]|0))}function Pve(s,l){return s=s|0,l=l|0,+ +y(mg(n[s>>2]|0,l))}function bve(s,l){return s=s|0,l=l|0,+ +y(dp(n[s>>2]|0,l))}function xve(s,l){return s=s|0,l=l|0,+ +y(jo(n[s>>2]|0,l))}function kve(){return Sn()|0}function Qve(){Fve(),Rve(),Tve(),Nve(),Lve(),Ove()}function Fve(){LNe(11713,4938,1)}function Rve(){tNe(10448)}function Tve(){LTe(10408)}function Nve(){sTe(10324)}function Lve(){pFe(10096)}function Ove(){Mve(9132)}function Mve(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=0,go=0,mo=0,yo=0,ya=0,Fp=0,Rp=0,bl=0,Tp=0,Fu=0,Ru=0,Np=0,Lp=0,Op=0,Xr=0,xl=0,Mp=0,xc=0,Up=0,_p=0,Tu=0,Nu=0,kc=0,js=0,za=0,Wo=0,kl=0,nf=0,sf=0,Lu=0,of=0,af=0,Gs=0,vs=0,Ql=0,Rn=0,lf=0,Eo=0,Qc=0,Co=0,Fc=0,cf=0,uf=0,Rc=0,Ys=0,Fl=0,Af=0,ff=0,pf=0,xr=0,Jn=0,Ds=0,wo=0,Ws=0,Rr=0,ur=0,Rl=0;l=C,C=C+672|0,c=l+656|0,Rl=l+648|0,ur=l+640|0,Rr=l+632|0,Ws=l+624|0,wo=l+616|0,Ds=l+608|0,Jn=l+600|0,xr=l+592|0,pf=l+584|0,ff=l+576|0,Af=l+568|0,Fl=l+560|0,Ys=l+552|0,Rc=l+544|0,uf=l+536|0,cf=l+528|0,Fc=l+520|0,Co=l+512|0,Qc=l+504|0,Eo=l+496|0,lf=l+488|0,Rn=l+480|0,Ql=l+472|0,vs=l+464|0,Gs=l+456|0,af=l+448|0,of=l+440|0,Lu=l+432|0,sf=l+424|0,nf=l+416|0,kl=l+408|0,Wo=l+400|0,za=l+392|0,js=l+384|0,kc=l+376|0,Nu=l+368|0,Tu=l+360|0,_p=l+352|0,Up=l+344|0,xc=l+336|0,Mp=l+328|0,xl=l+320|0,Xr=l+312|0,Op=l+304|0,Lp=l+296|0,Np=l+288|0,Ru=l+280|0,Fu=l+272|0,Tp=l+264|0,bl=l+256|0,Rp=l+248|0,Fp=l+240|0,ya=l+232|0,yo=l+224|0,mo=l+216|0,go=l+208|0,xn=l+200|0,ir=l+192|0,Nr=l+184|0,Sr=l+176|0,Xt=l+168|0,or=l+160|0,Mr=l+152|0,Lt=l+144|0,je=l+136|0,Ue=l+128|0,lt=l+120|0,Xe=l+112|0,et=l+104|0,Qe=l+96|0,Me=l+88|0,Ge=l+80|0,se=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,Q=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,Uve(s,3646),_ve(s,3651,2)|0,Hve(s,3665,2)|0,qve(s,3682,18)|0,n[Rl>>2]=19,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],Tw(s,3690,c)|0,n[ur>>2]=1,n[ur+4>>2]=0,n[c>>2]=n[ur>>2],n[c+4>>2]=n[ur+4>>2],jve(s,3696,c)|0,n[Rr>>2]=2,n[Rr+4>>2]=0,n[c>>2]=n[Rr>>2],n[c+4>>2]=n[Rr+4>>2],xu(s,3706,c)|0,n[Ws>>2]=1,n[Ws+4>>2]=0,n[c>>2]=n[Ws>>2],n[c+4>>2]=n[Ws+4>>2],Sg(s,3722,c)|0,n[wo>>2]=2,n[wo+4>>2]=0,n[c>>2]=n[wo>>2],n[c+4>>2]=n[wo+4>>2],Sg(s,3734,c)|0,n[Ds>>2]=3,n[Ds+4>>2]=0,n[c>>2]=n[Ds>>2],n[c+4>>2]=n[Ds+4>>2],xu(s,3753,c)|0,n[Jn>>2]=4,n[Jn+4>>2]=0,n[c>>2]=n[Jn>>2],n[c+4>>2]=n[Jn+4>>2],xu(s,3769,c)|0,n[xr>>2]=5,n[xr+4>>2]=0,n[c>>2]=n[xr>>2],n[c+4>>2]=n[xr+4>>2],xu(s,3783,c)|0,n[pf>>2]=6,n[pf+4>>2]=0,n[c>>2]=n[pf>>2],n[c+4>>2]=n[pf+4>>2],xu(s,3796,c)|0,n[ff>>2]=7,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],xu(s,3813,c)|0,n[Af>>2]=8,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],xu(s,3825,c)|0,n[Fl>>2]=3,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],Sg(s,3843,c)|0,n[Ys>>2]=4,n[Ys+4>>2]=0,n[c>>2]=n[Ys>>2],n[c+4>>2]=n[Ys+4>>2],Sg(s,3853,c)|0,n[Rc>>2]=9,n[Rc+4>>2]=0,n[c>>2]=n[Rc>>2],n[c+4>>2]=n[Rc+4>>2],xu(s,3870,c)|0,n[uf>>2]=10,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],xu(s,3884,c)|0,n[cf>>2]=11,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],xu(s,3896,c)|0,n[Fc>>2]=1,n[Fc+4>>2]=0,n[c>>2]=n[Fc>>2],n[c+4>>2]=n[Fc+4>>2],Is(s,3907,c)|0,n[Co>>2]=2,n[Co+4>>2]=0,n[c>>2]=n[Co>>2],n[c+4>>2]=n[Co+4>>2],Is(s,3915,c)|0,n[Qc>>2]=3,n[Qc+4>>2]=0,n[c>>2]=n[Qc>>2],n[c+4>>2]=n[Qc+4>>2],Is(s,3928,c)|0,n[Eo>>2]=4,n[Eo+4>>2]=0,n[c>>2]=n[Eo>>2],n[c+4>>2]=n[Eo+4>>2],Is(s,3948,c)|0,n[lf>>2]=5,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Is(s,3960,c)|0,n[Rn>>2]=6,n[Rn+4>>2]=0,n[c>>2]=n[Rn>>2],n[c+4>>2]=n[Rn+4>>2],Is(s,3974,c)|0,n[Ql>>2]=7,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],Is(s,3983,c)|0,n[vs>>2]=20,n[vs+4>>2]=0,n[c>>2]=n[vs>>2],n[c+4>>2]=n[vs+4>>2],Tw(s,3999,c)|0,n[Gs>>2]=8,n[Gs+4>>2]=0,n[c>>2]=n[Gs>>2],n[c+4>>2]=n[Gs+4>>2],Is(s,4012,c)|0,n[af>>2]=9,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],Is(s,4022,c)|0,n[of>>2]=21,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],Tw(s,4039,c)|0,n[Lu>>2]=10,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],Is(s,4053,c)|0,n[sf>>2]=11,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],Is(s,4065,c)|0,n[nf>>2]=12,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],Is(s,4084,c)|0,n[kl>>2]=13,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],Is(s,4097,c)|0,n[Wo>>2]=14,n[Wo+4>>2]=0,n[c>>2]=n[Wo>>2],n[c+4>>2]=n[Wo+4>>2],Is(s,4117,c)|0,n[za>>2]=15,n[za+4>>2]=0,n[c>>2]=n[za>>2],n[c+4>>2]=n[za+4>>2],Is(s,4129,c)|0,n[js>>2]=16,n[js+4>>2]=0,n[c>>2]=n[js>>2],n[c+4>>2]=n[js+4>>2],Is(s,4148,c)|0,n[kc>>2]=17,n[kc+4>>2]=0,n[c>>2]=n[kc>>2],n[c+4>>2]=n[kc+4>>2],Is(s,4161,c)|0,n[Nu>>2]=18,n[Nu+4>>2]=0,n[c>>2]=n[Nu>>2],n[c+4>>2]=n[Nu+4>>2],Is(s,4181,c)|0,n[Tu>>2]=5,n[Tu+4>>2]=0,n[c>>2]=n[Tu>>2],n[c+4>>2]=n[Tu+4>>2],Sg(s,4196,c)|0,n[_p>>2]=6,n[_p+4>>2]=0,n[c>>2]=n[_p>>2],n[c+4>>2]=n[_p+4>>2],Sg(s,4206,c)|0,n[Up>>2]=7,n[Up+4>>2]=0,n[c>>2]=n[Up>>2],n[c+4>>2]=n[Up+4>>2],Sg(s,4217,c)|0,n[xc>>2]=3,n[xc+4>>2]=0,n[c>>2]=n[xc>>2],n[c+4>>2]=n[xc+4>>2],zA(s,4235,c)|0,n[Mp>>2]=1,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],PF(s,4251,c)|0,n[xl>>2]=4,n[xl+4>>2]=0,n[c>>2]=n[xl>>2],n[c+4>>2]=n[xl+4>>2],zA(s,4263,c)|0,n[Xr>>2]=5,n[Xr+4>>2]=0,n[c>>2]=n[Xr>>2],n[c+4>>2]=n[Xr+4>>2],zA(s,4279,c)|0,n[Op>>2]=6,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],zA(s,4293,c)|0,n[Lp>>2]=7,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],zA(s,4306,c)|0,n[Np>>2]=8,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],zA(s,4323,c)|0,n[Ru>>2]=9,n[Ru+4>>2]=0,n[c>>2]=n[Ru>>2],n[c+4>>2]=n[Ru+4>>2],zA(s,4335,c)|0,n[Fu>>2]=2,n[Fu+4>>2]=0,n[c>>2]=n[Fu>>2],n[c+4>>2]=n[Fu+4>>2],PF(s,4353,c)|0,n[Tp>>2]=12,n[Tp+4>>2]=0,n[c>>2]=n[Tp>>2],n[c+4>>2]=n[Tp+4>>2],Pg(s,4363,c)|0,n[bl>>2]=1,n[bl+4>>2]=0,n[c>>2]=n[bl>>2],n[c+4>>2]=n[bl+4>>2],XA(s,4376,c)|0,n[Rp>>2]=2,n[Rp+4>>2]=0,n[c>>2]=n[Rp>>2],n[c+4>>2]=n[Rp+4>>2],XA(s,4388,c)|0,n[Fp>>2]=13,n[Fp+4>>2]=0,n[c>>2]=n[Fp>>2],n[c+4>>2]=n[Fp+4>>2],Pg(s,4402,c)|0,n[ya>>2]=14,n[ya+4>>2]=0,n[c>>2]=n[ya>>2],n[c+4>>2]=n[ya+4>>2],Pg(s,4411,c)|0,n[yo>>2]=15,n[yo+4>>2]=0,n[c>>2]=n[yo>>2],n[c+4>>2]=n[yo+4>>2],Pg(s,4421,c)|0,n[mo>>2]=16,n[mo+4>>2]=0,n[c>>2]=n[mo>>2],n[c+4>>2]=n[mo+4>>2],Pg(s,4433,c)|0,n[go>>2]=17,n[go+4>>2]=0,n[c>>2]=n[go>>2],n[c+4>>2]=n[go+4>>2],Pg(s,4446,c)|0,n[xn>>2]=18,n[xn+4>>2]=0,n[c>>2]=n[xn>>2],n[c+4>>2]=n[xn+4>>2],Pg(s,4458,c)|0,n[ir>>2]=3,n[ir+4>>2]=0,n[c>>2]=n[ir>>2],n[c+4>>2]=n[ir+4>>2],XA(s,4471,c)|0,n[Nr>>2]=1,n[Nr+4>>2]=0,n[c>>2]=n[Nr>>2],n[c+4>>2]=n[Nr+4>>2],iD(s,4486,c)|0,n[Sr>>2]=10,n[Sr+4>>2]=0,n[c>>2]=n[Sr>>2],n[c+4>>2]=n[Sr+4>>2],zA(s,4496,c)|0,n[Xt>>2]=11,n[Xt+4>>2]=0,n[c>>2]=n[Xt>>2],n[c+4>>2]=n[Xt+4>>2],zA(s,4508,c)|0,n[or>>2]=3,n[or+4>>2]=0,n[c>>2]=n[or>>2],n[c+4>>2]=n[or+4>>2],PF(s,4519,c)|0,n[Mr>>2]=4,n[Mr+4>>2]=0,n[c>>2]=n[Mr>>2],n[c+4>>2]=n[Mr+4>>2],Gve(s,4530,c)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[c>>2]=n[Lt>>2],n[c+4>>2]=n[Lt+4>>2],Yve(s,4542,c)|0,n[je>>2]=12,n[je+4>>2]=0,n[c>>2]=n[je>>2],n[c+4>>2]=n[je+4>>2],Wve(s,4554,c)|0,n[Ue>>2]=13,n[Ue+4>>2]=0,n[c>>2]=n[Ue>>2],n[c+4>>2]=n[Ue+4>>2],Kve(s,4568,c)|0,n[lt>>2]=2,n[lt+4>>2]=0,n[c>>2]=n[lt>>2],n[c+4>>2]=n[lt+4>>2],Vve(s,4578,c)|0,n[Xe>>2]=20,n[Xe+4>>2]=0,n[c>>2]=n[Xe>>2],n[c+4>>2]=n[Xe+4>>2],Jve(s,4587,c)|0,n[et>>2]=22,n[et+4>>2]=0,n[c>>2]=n[et>>2],n[c+4>>2]=n[et+4>>2],Tw(s,4602,c)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[c>>2]=n[Qe>>2],n[c+4>>2]=n[Qe+4>>2],Tw(s,4619,c)|0,n[Me>>2]=14,n[Me+4>>2]=0,n[c>>2]=n[Me>>2],n[c+4>>2]=n[Me+4>>2],zve(s,4629,c)|0,n[Ge>>2]=1,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],Xve(s,4637,c)|0,n[se>>2]=4,n[se+4>>2]=0,n[c>>2]=n[se>>2],n[c+4>>2]=n[se+4>>2],XA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],XA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],XA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],XA(s,4701,c)|0,n[Q>>2]=8,n[Q+4>>2]=0,n[c>>2]=n[Q>>2],n[c+4>>2]=n[Q+4>>2],XA(s,4719,c)|0,n[k>>2]=9,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],XA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],Zve(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],iD(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],iD(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],iD(s,4808,c)|0,C=l}function Uve(s,l){s=s|0,l=l|0;var c=0;c=iFe()|0,n[s>>2]=c,sFe(c,l),xp(n[s>>2]|0)}function _ve(s,l,c){return s=s|0,l=l|0,c=c|0,GQe(s,pn(l)|0,c,0),s|0}function Hve(s,l,c){return s=s|0,l=l|0,c=c|0,bQe(s,pn(l)|0,c,0),s|0}function qve(s,l,c){return s=s|0,l=l|0,c=c|0,hQe(s,pn(l)|0,c,0),s|0}function Tw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Zke(s,l,d),C=f,s|0}function jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Rke(s,l,d),C=f,s|0}function xu(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mke(s,l,d),C=f,s|0}function Sg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tke(s,l,d),C=f,s|0}function Is(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Uxe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Bxe(s,l,d),C=f,s|0}function PF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],axe(s,l,d),C=f,s|0}function Pg(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Rbe(s,l,d),C=f,s|0}function XA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],mbe(s,l,d),C=f,s|0}function iD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tbe(s,l,d),C=f,s|0}function Gve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UPe(s,l,d),C=f,s|0}function Yve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],BPe(s,l,d),C=f,s|0}function Wve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lPe(s,l,d),C=f,s|0}function Kve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KSe(s,l,d),C=f,s|0}function Vve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kSe(s,l,d),C=f,s|0}function Jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],pSe(s,l,d),C=f,s|0}function zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XDe(s,l,d),C=f,s|0}function Xve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],RDe(s,l,d),C=f,s|0}function Zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$ve(s,l,d),C=f,s|0}function $ve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eDe(s,c,d,1),C=f}function pn(s){return s=s|0,s|0}function eDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=bF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=tDe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,rDe(m,f)|0,f),C=d}function bF(){var s=0,l=0;if(o[7616]|0||(t5(9136),tr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t5(9136)}return 9136}function tDe(s){return s=s|0,0}function rDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=bF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],e5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sDe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function hn(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0;B=C,C=C+32|0,se=B+24|0,j=B+20|0,Q=B+16|0,O=B+12|0,M=B+8|0,k=B+4|0,Ge=B,n[j>>2]=l,n[Q>>2]=c,n[O>>2]=f,n[M>>2]=d,n[k>>2]=m,m=s+28|0,n[Ge>>2]=n[m>>2],n[se>>2]=n[Ge>>2],nDe(s+24|0,se,j,O,M,Q,k)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function nDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=iDe(l)|0,l=Kt(24)|0,$G(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function iDe(s){return s=s|0,n[s>>2]|0}function $G(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function gr(s,l){return s=s|0,l=l|0,l|s|0}function e5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oDe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aDe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],e5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lDe(s,k),cDe(k),C=M;return}}function oDe(s){return s=s|0,357913941}function aDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function t5(s){s=s|0,fDe(s)}function uDe(s){s=s|0,ADe(s+24|0)}function Tr(s){return s=s|0,n[s>>2]|0}function ADe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fDe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,3,l,pDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Kr(){return 9228}function pDe(){return 1140}function hDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=gDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=dDe(l,f)|0,C=c,l|0}function Vr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function gDe(s){return s=s|0,(n[(bF()|0)+24>>2]|0)+(s*12|0)|0}function dDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&31](f,s),f=mDe(f)|0,C=d,f|0}function mDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=xF(r5()|0)|0,f?(kF(l,f),QF(c,l),yDe(s,c),s=FF(l)|0):s=EDe(s)|0,C=d,s|0}function r5(){var s=0;return o[7632]|0||(xDe(9184),tr(25,9184,U|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function xF(s){return s=s|0,n[s+36>>2]|0}function kF(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function QF(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function yDe(s,l){s=s|0,l=l|0,BDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function FF(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function EDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;Q=C,C=C+16|0,c=Q+4|0,f=Q,d=Wa(8)|0,m=d,B=Kt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[s>>2],k=k+4|0,s=s+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Kt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],n5(k,B,c),n[d>>2]=k,C=Q,m|0}function n5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function CDe(s){s=s|0,zm(s),gt(s)}function wDe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function IDe(s){s=s|0,gt(s)}function BDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=vDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function vDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var k=0,Q=0;return k=C,C=C+16|0,Q=k,Ka(Q),s=da(s)|0,B=DDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,Va(Q),C=k,B|0}function DDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var k=0;return k=Sl(SDe()|0)|0,l=+JA(l),c=+JA(c),f=+JA(f),d=+JA(d),m=+JA(m),Ms(0,k|0,s|0,+l,+c,+f,+d,+m,+ +JA(B))|0}function SDe(){var s=0;return o[7624]|0||(PDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function PDe(s){s=s|0,Pl(s,bDe()|0,6)}function bDe(){return 1112}function xDe(s){s=s|0,vp(s)}function kDe(s){s=s|0,i5(s+24|0),s5(s+16|0)}function i5(s){s=s|0,FDe(s)}function s5(s){s=s|0,QDe(s)}function QDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while((l|0)!=0);n[s>>2]=0}function FDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while((l|0)!=0);n[s>>2]=0}function vp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function RDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],TDe(s,c,d,0),C=f}function TDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=RF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=NDe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,LDe(m,f)|0,f),C=d}function RF(){var s=0,l=0;if(o[7640]|0||(a5(9232),tr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a5(9232)}return 9232}function NDe(s){return s=s|0,0}function LDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=RF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ODe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ODe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=MDe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,UDe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_De(s,k),HDe(k),C=M;return}}function MDe(s){return s=s|0,357913941}function UDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _De(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function HDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function a5(s){s=s|0,GDe(s)}function qDe(s){s=s|0,jDe(s+24|0)}function jDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function GDe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,YDe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YDe(){return 1144}function WDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,B=m+8|0,k=m,Q=KDe(s)|0,s=n[Q+4>>2]|0,n[k>>2]=n[Q>>2],n[k+4>>2]=s,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],VDe(l,B,c,f,d),C=m}function KDe(s){return s=s|0,(n[(RF()|0)+24>>2]|0)+(s*12|0)|0}function VDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,Q=0,M=0;M=C,C=C+16|0,B=M+2|0,k=M+1|0,Q=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),ku(B,c),c=+Qu(B,c),ku(k,f),f=+Qu(k,f),ZA(Q,d),Q=$A(Q,d)|0,I7[m&1](s,c,f,Q),C=M}function ku(s,l){s=s|0,l=+l}function Qu(s,l){return s=s|0,l=+l,+ +zDe(l)}function ZA(s,l){s=s|0,l=l|0}function $A(s,l){return s=s|0,l=l|0,JDe(l)|0}function JDe(s){return s=s|0,s|0}function zDe(s){return s=+s,+s}function XDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ZDe(s,c,d,1),C=f}function ZDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=TF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=$De(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,eSe(m,f)|0,f),C=d}function TF(){var s=0,l=0;if(o[7648]|0||(c5(9268),tr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c5(9268)}return 9268}function $De(s){return s=s|0,0}function eSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=TF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],l5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(tSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function l5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function tSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=rSe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,nSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],l5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,iSe(s,k),sSe(k),C=M;return}}function rSe(s){return s=s|0,357913941}function nSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function iSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function sSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function c5(s){s=s|0,lSe(s)}function oSe(s){s=s|0,aSe(s+24|0)}function aSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function lSe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,4,l,cSe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cSe(){return 1160}function uSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=ASe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=fSe(l,f)|0,C=c,l|0}function ASe(s){return s=s|0,(n[(TF()|0)+24>>2]|0)+(s*12|0)|0}function fSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),u5(Lg[c&31](s)|0)|0}function u5(s){return s=s|0,s&1|0}function pSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hSe(s,c,d,0),C=f}function hSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=NF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=gSe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,dSe(m,f)|0,f),C=d}function NF(){var s=0,l=0;if(o[7656]|0||(f5(9304),tr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));f5(9304)}return 9304}function gSe(s){return s=s|0,0}function dSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=NF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],A5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(mSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function A5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function mSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ySe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ESe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],A5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,CSe(s,k),wSe(k),C=M;return}}function ySe(s){return s=s|0,357913941}function ESe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function CSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function f5(s){s=s|0,vSe(s)}function ISe(s){s=s|0,BSe(s+24|0)}function BSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function vSe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,DSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function DSe(){return 1164}function SSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=PSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bSe(l,d,c),C=f}function PSe(s){return s=s|0,(n[(NF()|0)+24>>2]|0)+(s*12|0)|0}function bSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Dp(d,c),c=Sp(d,c)|0,rf[f&31](s,c),Pp(d),C=m}function Dp(s,l){s=s|0,l=l|0,xSe(s,l)}function Sp(s,l){return s=s|0,l=l|0,s|0}function Pp(s){s=s|0,jA(s)}function xSe(s,l){s=s|0,l=l|0,LF(s,l)}function LF(s,l){s=s|0,l=l|0,n[s>>2]=l}function kSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QSe(s,c,d,0),C=f}function QSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=OF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=FSe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,RSe(m,f)|0,f),C=d}function OF(){var s=0,l=0;if(o[7664]|0||(h5(9340),tr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));h5(9340)}return 9340}function FSe(s){return s=s|0,0}function RSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=OF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],p5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(TSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function p5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function TSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=NSe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,LSe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],p5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,OSe(s,k),MSe(k),C=M;return}}function NSe(s){return s=s|0,357913941}function LSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function OSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function MSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function h5(s){s=s|0,HSe(s)}function USe(s){s=s|0,_Se(s+24|0)}function _Se(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function HSe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,4,l,qSe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qSe(){return 1180}function jSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=GSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=YSe(l,d,c)|0,C=f,c|0}function GSe(s){return s=s|0,(n[(OF()|0)+24>>2]|0)+(s*12|0)|0}function YSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),bg(d,c),d=xg(d,c)|0,d=sD(RR[f&15](s,d)|0)|0,C=m,d|0}function bg(s,l){s=s|0,l=l|0}function xg(s,l){return s=s|0,l=l|0,WSe(l)|0}function sD(s){return s=s|0,s|0}function WSe(s){return s=s|0,s|0}function KSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],VSe(s,c,d,0),C=f}function VSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=MF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=JSe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,zSe(m,f)|0,f),C=d}function MF(){var s=0,l=0;if(o[7672]|0||(d5(9376),tr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));d5(9376)}return 9376}function JSe(s){return s=s|0,0}function zSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=MF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],g5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(XSe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function g5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function XSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ZSe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,$Se(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],g5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,ePe(s,k),tPe(k),C=M;return}}function ZSe(s){return s=s|0,357913941}function $Se(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ePe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function tPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function d5(s){s=s|0,iPe(s)}function rPe(s){s=s|0,nPe(s+24|0)}function nPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function iPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,m5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function m5(){return 1196}function sPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=oPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=aPe(l,f)|0,C=c,l|0}function oPe(s){return s=s|0,(n[(MF()|0)+24>>2]|0)+(s*12|0)|0}function aPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),sD(Lg[c&31](s)|0)|0}function lPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cPe(s,c,d,1),C=f}function cPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=UF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=uPe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,APe(m,f)|0,f),C=d}function UF(){var s=0,l=0;if(o[7680]|0||(E5(9412),tr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));E5(9412)}return 9412}function uPe(s){return s=s|0,0}function APe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=UF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],y5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(fPe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function y5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function fPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=pPe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,hPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],y5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,gPe(s,k),dPe(k),C=M;return}}function pPe(s){return s=s|0,357913941}function hPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function gPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function E5(s){s=s|0,EPe(s)}function mPe(s){s=s|0,yPe(s+24|0)}function yPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function EPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,6,l,C5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function C5(){return 1200}function CPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=wPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=IPe(l,f)|0,C=c,l|0}function wPe(s){return s=s|0,(n[(UF()|0)+24>>2]|0)+(s*12|0)|0}function IPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),oD(Lg[c&31](s)|0)|0}function oD(s){return s=s|0,s|0}function BPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vPe(s,c,d,0),C=f}function vPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=_F()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=DPe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,SPe(m,f)|0,f),C=d}function _F(){var s=0,l=0;if(o[7688]|0||(I5(9448),tr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));I5(9448)}return 9448}function DPe(s){return s=s|0,0}function SPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=_F()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],w5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(PPe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function w5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function PPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=bPe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],w5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,kPe(s,k),QPe(k),C=M;return}}function bPe(s){return s=s|0,357913941}function xPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function kPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function QPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function I5(s){s=s|0,TPe(s)}function FPe(s){s=s|0,RPe(s+24|0)}function RPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function TPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,6,l,B5()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function B5(){return 1204}function NPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=LPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OPe(l,d,c),C=f}function LPe(s){return s=s|0,(n[(_F()|0)+24>>2]|0)+(s*12|0)|0}function OPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),HF(d,c),d=qF(d,c)|0,rf[f&31](s,d),C=m}function HF(s,l){s=s|0,l=l|0}function qF(s,l){return s=s|0,l=l|0,MPe(l)|0}function MPe(s){return s=s|0,s|0}function UPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_Pe(s,c,d,0),C=f}function _Pe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=jF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=HPe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,qPe(m,f)|0,f),C=d}function jF(){var s=0,l=0;if(o[7696]|0||(D5(9484),tr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));D5(9484)}return 9484}function HPe(s){return s=s|0,0}function qPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=jF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],v5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jPe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function v5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=GPe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,YPe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],v5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,WPe(s,k),KPe(k),C=M;return}}function GPe(s){return s=s|0,357913941}function YPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function KPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function D5(s){s=s|0,zPe(s)}function VPe(s){s=s|0,JPe(s+24|0)}function JPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function zPe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,XPe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XPe(){return 1212}function ZPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=$Pe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ebe(l,m,c,f),C=d}function $Pe(s){return s=s|0,(n[(jF()|0)+24>>2]|0)+(s*12|0)|0}function ebe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),HF(m,c),m=qF(m,c)|0,bg(B,f),B=xg(B,f)|0,Hw[d&15](s,m,B),C=k}function tbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rbe(s,c,d,1),C=f}function rbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=GF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nbe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,ibe(m,f)|0,f),C=d}function GF(){var s=0,l=0;if(o[7704]|0||(P5(9520),tr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));P5(9520)}return 9520}function nbe(s){return s=s|0,0}function ibe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=GF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],S5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sbe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function S5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=obe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,abe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],S5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lbe(s,k),cbe(k),C=M;return}}function obe(s){return s=s|0,357913941}function abe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function P5(s){s=s|0,fbe(s)}function ube(s){s=s|0,Abe(s+24|0)}function Abe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fbe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,pbe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pbe(){return 1224}function hbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;return d=C,C=C+16|0,m=d+8|0,B=d,k=gbe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+dbe(l,m,c),C=d,+f}function gbe(s){return s=s|0,(n[(GF()|0)+24>>2]|0)+(s*12|0)|0}function dbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,B=+SF(+v7[f&7](s,d)),C=m,+B}function mbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],ybe(s,c,d,1),C=f}function ybe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=YF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Ebe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Cbe(m,f)|0,f),C=d}function YF(){var s=0,l=0;if(o[7712]|0||(x5(9556),tr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));x5(9556)}return 9556}function Ebe(s){return s=s|0,0}function Cbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=YF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],b5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(wbe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function b5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function wbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Ibe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Bbe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],b5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,vbe(s,k),Dbe(k),C=M;return}}function Ibe(s){return s=s|0,357913941}function Bbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function vbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Dbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function x5(s){s=s|0,bbe(s)}function Sbe(s){s=s|0,Pbe(s+24|0)}function Pbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function bbe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,xbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function xbe(){return 1232}function kbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=Qbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+Fbe(l,d),C=f,+c}function Qbe(s){return s=s|0,(n[(YF()|0)+24>>2]|0)+(s*12|0)|0}function Fbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +SF(+B7[c&15](s))}function Rbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Tbe(s,c,d,1),C=f}function Tbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=WF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Nbe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Lbe(m,f)|0,f),C=d}function WF(){var s=0,l=0;if(o[7720]|0||(Q5(9592),tr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Q5(9592)}return 9592}function Nbe(s){return s=s|0,0}function Lbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=WF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],k5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Obe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function k5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Obe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Mbe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Ube(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],k5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_be(s,k),Hbe(k),C=M;return}}function Mbe(s){return s=s|0,357913941}function Ube(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _be(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Hbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function Q5(s){s=s|0,Gbe(s)}function qbe(s){s=s|0,jbe(s+24|0)}function jbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Gbe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,7,l,Ybe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Ybe(){return 1276}function Wbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Kbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Vbe(l,f)|0,C=c,l|0}function Kbe(s){return s=s|0,(n[(WF()|0)+24>>2]|0)+(s*12|0)|0}function Vbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),rf[c&31](f,s),f=F5(f)|0,C=d,f|0}function F5(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=xF(R5()|0)|0,f?(kF(l,f),QF(c,l),Jbe(s,c),s=FF(l)|0):s=zbe(s)|0,C=d,s|0}function R5(){var s=0;return o[7736]|0||(oxe(9640),tr(25,9640,U|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function Jbe(s,l){s=s|0,l=l|0,exe(l,s,s+8|0)|0}function zbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Wa(8)|0,l=f,k=Kt(16)|0,n[k>>2]=n[s>>2],n[k+4>>2]=n[s+4>>2],n[k+8>>2]=n[s+8>>2],n[k+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],KF(s,m,d),n[f>>2]=s,C=c,l|0}function KF(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function Xbe(s){s=s|0,zm(s),gt(s)}function Zbe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function $be(s){s=s|0,gt(s)}function exe(s,l,c){return s=s|0,l=l|0,c=c|0,l=txe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function txe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,Ka(d),s=da(s)|0,c=rxe(s,n[l>>2]|0,+E[c>>3])|0,Va(d),C=f,c|0}function rxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=Sl(nxe()|0)|0,l=DF(l)|0,ml(0,f|0,s|0,l|0,+ +JA(c))|0}function nxe(){var s=0;return o[7728]|0||(ixe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function ixe(s){s=s|0,Pl(s,sxe()|0,2)}function sxe(){return 1264}function oxe(s){s=s|0,vp(s)}function axe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lxe(s,c,d,1),C=f}function lxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=VF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=cxe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,uxe(m,f)|0,f),C=d}function VF(){var s=0,l=0;if(o[7744]|0||(N5(9684),tr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));N5(9684)}return 9684}function cxe(s){return s=s|0,0}function uxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=VF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],T5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Axe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function T5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Axe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=fxe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,pxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],T5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,hxe(s,k),gxe(k),C=M;return}}function fxe(s){return s=s|0,357913941}function pxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function hxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function gxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function N5(s){s=s|0,yxe(s)}function dxe(s){s=s|0,mxe(s+24|0)}function mxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function yxe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,5,l,Exe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Exe(){return 1280}function Cxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=wxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=Ixe(l,d,c)|0,C=f,c|0}function wxe(s){return s=s|0,(n[(VF()|0)+24>>2]|0)+(s*12|0)|0}function Ixe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(m,c),m=$A(m,c)|0,Hw[f&15](d,s,m),m=F5(d)|0,C=B,m|0}function Bxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vxe(s,c,d,1),C=f}function vxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=JF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Dxe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Sxe(m,f)|0,f),C=d}function JF(){var s=0,l=0;if(o[7752]|0||(O5(9720),tr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));O5(9720)}return 9720}function Dxe(s){return s=s|0,0}function Sxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=JF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],L5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Pxe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function L5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Pxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=bxe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,xxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],L5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,kxe(s,k),Qxe(k),C=M;return}}function bxe(s){return s=s|0,357913941}function xxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function kxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Qxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function O5(s){s=s|0,Txe(s)}function Fxe(s){s=s|0,Rxe(s+24|0)}function Rxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Txe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,8,l,Nxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Nxe(){return 1288}function Lxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Oxe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Mxe(l,f)|0,C=c,l|0}function Oxe(s){return s=s|0,(n[(JF()|0)+24>>2]|0)+(s*12|0)|0}function Mxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ZG(Lg[c&31](s)|0)|0}function Uxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],_xe(s,c,d,0),C=f}function _xe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=zF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Hxe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,qxe(m,f)|0,f),C=d}function zF(){var s=0,l=0;if(o[7760]|0||(U5(9756),tr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));U5(9756)}return 9756}function Hxe(s){return s=s|0,0}function qxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=zF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],M5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(jxe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function M5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function jxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Gxe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Yxe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],M5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,Wxe(s,k),Kxe(k),C=M;return}}function Gxe(s){return s=s|0,357913941}function Yxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Wxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Kxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function U5(s){s=s|0,zxe(s)}function Vxe(s){s=s|0,Jxe(s+24|0)}function Jxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function zxe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,8,l,Xxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Xxe(){return 1292}function Zxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=$xe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eke(l,d,c),C=f}function $xe(s){return s=s|0,(n[(zF()|0)+24>>2]|0)+(s*12|0)|0}function eke(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ku(d,c),c=+Qu(d,c),C7[f&31](s,c),C=m}function tke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rke(s,c,d,0),C=f}function rke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=XF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nke(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,ike(m,f)|0,f),C=d}function XF(){var s=0,l=0;if(o[7768]|0||(H5(9792),tr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));H5(9792)}return 9792}function nke(s){return s=s|0,0}function ike(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=XF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ske(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ske(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oke(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,ake(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lke(s,k),cke(k),C=M;return}}function oke(s){return s=s|0,357913941}function ake(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function H5(s){s=s|0,fke(s)}function uke(s){s=s|0,Ake(s+24|0)}function Ake(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fke(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,1,l,pke()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pke(){return 1300}function hke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=gke(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],dke(l,m,c,f),C=d}function gke(s){return s=s|0,(n[(XF()|0)+24>>2]|0)+(s*12|0)|0}function dke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),ZA(m,c),m=$A(m,c)|0,ku(B,f),f=+Qu(B,f),b7[d&15](s,m,f),C=k}function mke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],yke(s,c,d,0),C=f}function yke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=ZF()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Eke(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Cke(m,f)|0,f),C=d}function ZF(){var s=0,l=0;if(o[7776]|0||(j5(9828),tr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));j5(9828)}return 9828}function Eke(s){return s=s|0,0}function Cke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=ZF()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],q5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(wke(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function q5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function wke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Ike(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Bke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],q5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,vke(s,k),Dke(k),C=M;return}}function Ike(s){return s=s|0,357913941}function Bke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function vke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Dke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function j5(s){s=s|0,bke(s)}function Ske(s){s=s|0,Pke(s+24|0)}function Pke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function bke(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,7,l,xke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function xke(){return 1312}function kke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Qke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Fke(l,d,c),C=f}function Qke(s){return s=s|0,(n[(ZF()|0)+24>>2]|0)+(s*12|0)|0}function Fke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,rf[f&31](s,d),C=m}function Rke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Tke(s,c,d,0),C=f}function Tke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=$F()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Nke(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,Lke(m,f)|0,f),C=d}function $F(){var s=0,l=0;if(o[7784]|0||(Y5(9864),tr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Y5(9864)}return 9864}function Nke(s){return s=s|0,0}function Lke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=$F()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],G5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Oke(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function G5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Oke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Mke(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,Uke(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],G5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,_ke(s,k),Hke(k),C=M;return}}function Mke(s){return s=s|0,357913941}function Uke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function _ke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Hke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function Y5(s){s=s|0,Gke(s)}function qke(s){s=s|0,jke(s+24|0)}function jke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function Gke(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,8,l,Yke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Yke(){return 1320}function Wke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Kke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Vke(l,d,c),C=f}function Kke(s){return s=s|0,(n[($F()|0)+24>>2]|0)+(s*12|0)|0}function Vke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Jke(d,c),d=zke(d,c)|0,rf[f&31](s,d),C=m}function Jke(s,l){s=s|0,l=l|0}function zke(s,l){return s=s|0,l=l|0,Xke(l)|0}function Xke(s){return s=s|0,s|0}function Zke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$ke(s,c,d,0),C=f}function $ke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=eR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=eQe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,tQe(m,f)|0,f),C=d}function eR(){var s=0,l=0;if(o[7792]|0||(K5(9900),tr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));K5(9900)}return 9900}function eQe(s){return s=s|0,0}function tQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=eR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],W5(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rQe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function W5(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nQe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,iQe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],W5(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,sQe(s,k),oQe(k),C=M;return}}function nQe(s){return s=s|0,357913941}function iQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function K5(s){s=s|0,cQe(s)}function aQe(s){s=s|0,lQe(s+24|0)}function lQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function cQe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,22,l,uQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uQe(){return 1344}function AQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=fQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],pQe(l,f),C=c}function fQe(s){return s=s|0,(n[(eR()|0)+24>>2]|0)+(s*12|0)|0}function pQe(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&127](s)}function hQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tR()|0,s=gQe(c)|0,hn(m,l,d,s,dQe(c,f)|0,f)}function tR(){var s=0,l=0;if(o[7800]|0||(J5(9936),tr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));J5(9936)}return 9936}function gQe(s){return s=s|0,s|0}function dQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=tR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(V5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(mQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function V5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function mQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=yQe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,EQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,V5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,CQe(s,d),wQe(d),C=k;return}}function yQe(s){return s=s|0,536870911}function EQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function CQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function J5(s){s=s|0,vQe(s)}function IQe(s){s=s|0,BQe(s+24|0)}function BQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function vQe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,23,l,B5()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function DQe(s,l){s=s|0,l=l|0,PQe(n[(SQe(s)|0)>>2]|0,l)}function SQe(s){return s=s|0,(n[(tR()|0)+24>>2]|0)+(s<<3)|0}function PQe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,HF(f,l),l=qF(f,l)|0,tf[s&127](l),C=c}function bQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=rR()|0,s=xQe(c)|0,hn(m,l,d,s,kQe(c,f)|0,f)}function rR(){var s=0,l=0;if(o[7808]|0||(X5(9972),tr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Tr(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));X5(9972)}return 9972}function xQe(s){return s=s|0,s|0}function kQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=rR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(z5(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(QQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function z5(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function QQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=FQe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,RQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,z5(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,TQe(s,d),NQe(d),C=k;return}}function FQe(s){return s=s|0,536870911}function RQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function TQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function X5(s){s=s|0,MQe(s)}function LQe(s){s=s|0,OQe(s+24|0)}function OQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function MQe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,9,l,UQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UQe(){return 1348}function _Qe(s,l){return s=s|0,l=l|0,qQe(n[(HQe(s)|0)>>2]|0,l)|0}function HQe(s){return s=s|0,(n[(rR()|0)+24>>2]|0)+(s<<3)|0}function qQe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,Z5(f,l),l=$5(f,l)|0,l=sD(Lg[s&31](l)|0)|0,C=c,l|0}function Z5(s,l){s=s|0,l=l|0}function $5(s,l){return s=s|0,l=l|0,jQe(l)|0}function jQe(s){return s=s|0,s|0}function GQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=nR()|0,s=YQe(c)|0,hn(m,l,d,s,WQe(c,f)|0,f)}function nR(){var s=0,l=0;if(o[7816]|0||(t9(10008),tr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t9(10008)}return 10008}function YQe(s){return s=s|0,s|0}function WQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=nR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(e9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(KQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function e9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function KQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=VQe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,JQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,e9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,zQe(s,d),XQe(d),C=k;return}}function VQe(s){return s=s|0,536870911}function JQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function zQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function XQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function t9(s){s=s|0,eFe(s)}function ZQe(s){s=s|0,$Qe(s+24|0)}function $Qe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function eFe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,15,l,m5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function tFe(s){return s=s|0,nFe(n[(rFe(s)|0)>>2]|0)|0}function rFe(s){return s=s|0,(n[(nR()|0)+24>>2]|0)+(s<<3)|0}function nFe(s){return s=s|0,sD(CD[s&7]()|0)|0}function iFe(){var s=0;return o[7832]|0||(fFe(10052),tr(25,10052,U|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function sFe(s,l){s=s|0,l=l|0,n[s>>2]=oFe()|0,n[s+4>>2]=aFe()|0,n[s+12>>2]=l,n[s+8>>2]=lFe()|0,n[s+32>>2]=2}function oFe(){return 11709}function aFe(){return 1188}function lFe(){return aD()|0}function cFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(uFe(c),gt(c)):l|0&&(Su(l),gt(l))}function bp(s,l){return s=s|0,l=l|0,l&s|0}function uFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function aD(){var s=0;return o[7824]|0||(n[2511]=AFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function AFe(){return 0}function fFe(s){s=s|0,vp(s)}function pFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,hFe(s,4827),gFe(s,4834,3)|0,dFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],mFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],yFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],EFe(s,4891,c)|0,C=l}function hFe(s,l){s=s|0,l=l|0;var c=0;c=XRe()|0,n[s>>2]=c,ZRe(c,l),xp(n[s>>2]|0)}function gFe(s,l,c){return s=s|0,l=l|0,c=c|0,NRe(s,pn(l)|0,c,0),s|0}function dFe(s,l,c){return s=s|0,l=l|0,c=c|0,CRe(s,pn(l)|0,c,0),s|0}function mFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],tRe(s,l,d),C=f,s|0}function yFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],LFe(s,l,d),C=f,s|0}function EFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],CFe(s,l,d),C=f,s|0}function CFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wFe(s,c,d,1),C=f}function wFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=iR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=IFe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,BFe(m,f)|0,f),C=d}function iR(){var s=0,l=0;if(o[7840]|0||(n9(10100),tr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));n9(10100)}return 10100}function IFe(s){return s=s|0,0}function BFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=iR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],r9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(vFe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function r9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function vFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=DFe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,SFe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],r9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,PFe(s,k),bFe(k),C=M;return}}function DFe(s){return s=s|0,357913941}function SFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function PFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function bFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function n9(s){s=s|0,QFe(s)}function xFe(s){s=s|0,kFe(s+24|0)}function kFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function QFe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,6,l,FFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FFe(){return 1364}function RFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=TFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=NFe(l,d,c)|0,C=f,c|0}function TFe(s){return s=s|0,(n[(iR()|0)+24>>2]|0)+(s*12|0)|0}function NFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZA(d,c),d=$A(d,c)|0,d=u5(RR[f&15](s,d)|0)|0,C=m,d|0}function LFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],OFe(s,c,d,0),C=f}function OFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=sR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=MFe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,UFe(m,f)|0,f),C=d}function sR(){var s=0,l=0;if(o[7848]|0||(s9(10136),tr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(10136)}return 10136}function MFe(s){return s=s|0,0}function UFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=sR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(_Fe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function _Fe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=HFe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,qFe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,jFe(s,k),GFe(k),C=M;return}}function HFe(s){return s=s|0,357913941}function qFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function jFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function s9(s){s=s|0,KFe(s)}function YFe(s){s=s|0,WFe(s+24|0)}function WFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function KFe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,9,l,VFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VFe(){return 1372}function JFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=zFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],XFe(l,d,c),C=f}function zFe(s){return s=s|0,(n[(sR()|0)+24>>2]|0)+(s*12|0)|0}function XFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=Ze;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),ZFe(d,c),B=y($Fe(d,c)),E7[f&1](s,B),C=m}function ZFe(s,l){s=s|0,l=+l}function $Fe(s,l){return s=s|0,l=+l,y(eRe(l))}function eRe(s){return s=+s,y(s)}function tRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=pn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],rRe(s,c,d,0),C=f}function rRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,Q=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,Q=n[c+4>>2]|0,B=n[s>>2]|0,s=oR()|0,n[O>>2]=M,n[O+4>>2]=Q,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=nRe(m)|0,n[k>>2]=M,n[k+4>>2]=Q,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],hn(B,l,s,c,iRe(m,f)|0,f),C=d}function oR(){var s=0,l=0;if(o[7856]|0||(a9(10172),tr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(10172)}return 10172}function nRe(s){return s=s|0,0}function iRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,Q=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=oR()|0,M=j+24|0,s=gr(l,4)|0,n[Q>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(sRe(M,k,Q),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function sRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,Q=s+4|0,d=(((n[Q>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=oRe(s)|0,m>>>0>>0)zr(s);else{O=n[s>>2]|0,se=((n[s+8>>2]|0)-O|0)/12|0,j=se<<1,aRe(k,se>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[Q>>2]|0)-O|0)/12|0,s+8|0),Q=k+8|0,m=n[Q>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o9(m,f,c),n[Q>>2]=(n[Q>>2]|0)+12,lRe(s,k),cRe(k),C=M;return}}function oRe(s){return s=s|0,357913941}function aRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Rt();else{d=Kt(l*12|0)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function lRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function cRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&>(s)}function a9(s){s=s|0,fRe(s)}function uRe(s){s=s|0,ARe(s+24|0)}function ARe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),gt(c))}function fRe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,2,3,l,pRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pRe(){return 1380}function hRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=gRe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],dRe(l,m,c,f),C=d}function gRe(s){return s=s|0,(n[(oR()|0)+24>>2]|0)+(s*12|0)|0}function dRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),ZA(m,c),m=$A(m,c)|0,mRe(B,f),B=yRe(B,f)|0,Hw[d&15](s,m,B),C=k}function mRe(s,l){s=s|0,l=l|0}function yRe(s,l){return s=s|0,l=l|0,ERe(l)|0}function ERe(s){return s=s|0,(s|0)!=0|0}function CRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=aR()|0,s=wRe(c)|0,hn(m,l,d,s,IRe(c,f)|0,f)}function aR(){var s=0,l=0;if(o[7864]|0||(c9(10208),tr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c9(10208)}return 10208}function wRe(s){return s=s|0,s|0}function IRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=aR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(l9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(BRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function l9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function BRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=vRe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,DRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,l9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,SRe(s,d),PRe(d),C=k;return}}function vRe(s){return s=s|0,536870911}function DRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function SRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function c9(s){s=s|0,kRe(s)}function bRe(s){s=s|0,xRe(s+24|0)}function xRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function kRe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,24,l,QRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function QRe(){return 1392}function FRe(s,l){s=s|0,l=l|0,TRe(n[(RRe(s)|0)>>2]|0,l)}function RRe(s){return s=s|0,(n[(aR()|0)+24>>2]|0)+(s<<3)|0}function TRe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,Z5(f,l),l=$5(f,l)|0,tf[s&127](l),C=c}function NRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=lR()|0,s=LRe(c)|0,hn(m,l,d,s,ORe(c,f)|0,f)}function lR(){var s=0,l=0;if(o[7872]|0||(A9(10244),tr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));A9(10244)}return 10244}function LRe(s){return s=s|0,s|0}function ORe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=lR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(u9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(MRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function u9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function MRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=URe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,_Re(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,u9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,HRe(s,d),qRe(d),C=k;return}}function URe(s){return s=s|0,536870911}function _Re(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function HRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function A9(s){s=s|0,YRe(s)}function jRe(s){s=s|0,GRe(s+24|0)}function GRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function YRe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,16,l,WRe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function WRe(){return 1400}function KRe(s){return s=s|0,JRe(n[(VRe(s)|0)>>2]|0)|0}function VRe(s){return s=s|0,(n[(lR()|0)+24>>2]|0)+(s<<3)|0}function JRe(s){return s=s|0,zRe(CD[s&7]()|0)|0}function zRe(s){return s=s|0,s|0}function XRe(){var s=0;return o[7880]|0||(iTe(10280),tr(25,10280,U|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function ZRe(s,l){s=s|0,l=l|0,n[s>>2]=$Re()|0,n[s+4>>2]=eTe()|0,n[s+12>>2]=l,n[s+8>>2]=tTe()|0,n[s+32>>2]=4}function $Re(){return 11711}function eTe(){return 1356}function tTe(){return aD()|0}function rTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(nTe(c),gt(c)):l|0&&(Dg(l),gt(l))}function nTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function iTe(s){s=s|0,vp(s)}function sTe(s){s=s|0,oTe(s,4920),aTe(s)|0,lTe(s)|0}function oTe(s,l){s=s|0,l=l|0;var c=0;c=R5()|0,n[s>>2]=c,xTe(c,l),xp(n[s>>2]|0)}function aTe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,ETe()|0),s|0}function lTe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,cTe()|0),s|0}function cTe(){var s=0;return o[7888]|0||(f9(10328),tr(53,10328,U|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),Tr(10328)|0||f9(10328),10328}function kg(s,l){s=s|0,l=l|0,hn(s,0,l,0,0,0)}function f9(s){s=s|0,fTe(s),Qg(s,10)}function uTe(s){s=s|0,ATe(s+24|0)}function ATe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function fTe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,1,l,dTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pTe(s,l,c){s=s|0,l=l|0,c=+c,hTe(s,l,c)}function Qg(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function hTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,m=f+8|0,k=f+13|0,d=f,B=f+12|0,ZA(k,l),n[m>>2]=$A(k,l)|0,ku(B,c),E[d>>3]=+Qu(B,c),gTe(s,m,d),C=f}function gTe(s,l,c){s=s|0,l=l|0,c=c|0,Y(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function dTe(){return 1404}function mTe(s,l){return s=s|0,l=+l,yTe(s,l)|0}function yTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,k=f,d=Wa(8)|0,c=d,Q=Kt(16)|0,ZA(m,s),s=$A(m,s)|0,ku(B,l),Y(Q,s,+Qu(B,l)),B=c+4|0,n[B>>2]=Q,s=Kt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],KF(s,B,m),n[d>>2]=s,C=f,c|0}function ETe(){var s=0;return o[7896]|0||(p9(10364),tr(54,10364,U|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),Tr(10364)|0||p9(10364),10364}function p9(s){s=s|0,ITe(s),Qg(s,55)}function CTe(s){s=s|0,wTe(s+24|0)}function wTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function ITe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,4,l,STe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function BTe(s){s=s|0,vTe(s)}function vTe(s){s=s|0,DTe(s)}function DTe(s){s=s|0,h9(s+8|0),o[s+24>>0]=1}function h9(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function STe(){return 1424}function PTe(){return bTe()|0}function bTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Wa(8)|0,s=c,f=Kt(16)|0,h9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],KF(f,m,d),n[c>>2]=f,C=l,s|0}function xTe(s,l){s=s|0,l=l|0,n[s>>2]=kTe()|0,n[s+4>>2]=QTe()|0,n[s+12>>2]=l,n[s+8>>2]=FTe()|0,n[s+32>>2]=5}function kTe(){return 11710}function QTe(){return 1416}function FTe(){return lD()|0}function RTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(TTe(c),gt(c)):l|0&>(l)}function TTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function lD(){var s=0;return o[7904]|0||(n[2600]=NTe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function NTe(){return n[357]|0}function LTe(s){s=s|0,OTe(s,4926),MTe(s)|0}function OTe(s,l){s=s|0,l=l|0;var c=0;c=r5()|0,n[s>>2]=c,JTe(c,l),xp(n[s>>2]|0)}function MTe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,UTe()|0),s|0}function UTe(){var s=0;return o[7912]|0||(g9(10412),tr(56,10412,U|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),Tr(10412)|0||g9(10412),10412}function g9(s){s=s|0,qTe(s),Qg(s,57)}function _Te(s){s=s|0,HTe(s+24|0)}function HTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function qTe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,5,l,WTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function jTe(s){s=s|0,GTe(s)}function GTe(s){s=s|0,YTe(s)}function YTe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function WTe(){return 1432}function KTe(){return VTe()|0}function VTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Wa(8)|0,f=c,d=Kt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=f+4|0,n[m>>2]=d,k=Kt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],n5(k,m,s),n[c>>2]=k,C=B,f|0}function JTe(s,l){s=s|0,l=l|0,n[s>>2]=zTe()|0,n[s+4>>2]=XTe()|0,n[s+12>>2]=l,n[s+8>>2]=ZTe()|0,n[s+32>>2]=6}function zTe(){return 11704}function XTe(){return 1436}function ZTe(){return lD()|0}function $Te(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(eNe(c),gt(c)):l|0&>(l)}function eNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function tNe(s){s=s|0,rNe(s,4933),nNe(s)|0,iNe(s)|0}function rNe(s,l){s=s|0,l=l|0;var c=0;c=bNe()|0,n[s>>2]=c,xNe(c,l),xp(n[s>>2]|0)}function nNe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,yNe()|0),s|0}function iNe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,sNe()|0),s|0}function sNe(){var s=0;return o[7920]|0||(d9(10452),tr(58,10452,U|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),Tr(10452)|0||d9(10452),10452}function d9(s){s=s|0,lNe(s),Qg(s,1)}function oNe(s){s=s|0,aNe(s+24|0)}function aNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function lNe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,1,l,fNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cNe(s,l,c){s=s|0,l=+l,c=+c,uNe(s,l,c)}function uNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,m=f+8|0,k=f+17|0,d=f,B=f+16|0,ku(k,l),E[m>>3]=+Qu(k,l),ku(B,c),E[d>>3]=+Qu(B,c),ANe(s,m,d),C=f}function ANe(s,l,c){s=s|0,l=l|0,c=c|0,m9(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function m9(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function fNe(){return 1472}function pNe(s,l){return s=+s,l=+l,hNe(s,l)|0}function hNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+16|0,B=f+4|0,k=f+8|0,Q=f,d=Wa(8)|0,c=d,m=Kt(16)|0,ku(B,s),s=+Qu(B,s),ku(k,l),m9(m,s,+Qu(k,l)),k=c+4|0,n[k>>2]=m,m=Kt(8)|0,k=n[k>>2]|0,n[Q>>2]=0,n[B>>2]=n[Q>>2],y9(m,k,B),n[d>>2]=m,C=f,c|0}function y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function gNe(s){s=s|0,zm(s),gt(s)}function dNe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function mNe(s){s=s|0,gt(s)}function yNe(){var s=0;return o[7928]|0||(E9(10488),tr(59,10488,U|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),Tr(10488)|0||E9(10488),10488}function E9(s){s=s|0,wNe(s),Qg(s,60)}function ENe(s){s=s|0,CNe(s+24|0)}function CNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function wNe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,6,l,DNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function INe(s){s=s|0,BNe(s)}function BNe(s){s=s|0,vNe(s)}function vNe(s){s=s|0,C9(s+8|0),o[s+24>>0]=1}function C9(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function DNe(){return 1492}function SNe(){return PNe()|0}function PNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Wa(8)|0,s=c,f=Kt(16)|0,C9(f),m=s+4|0,n[m>>2]=f,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],y9(f,m,d),n[c>>2]=f,C=l,s|0}function bNe(){var s=0;return o[7936]|0||(NNe(10524),tr(25,10524,U|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function xNe(s,l){s=s|0,l=l|0,n[s>>2]=kNe()|0,n[s+4>>2]=QNe()|0,n[s+12>>2]=l,n[s+8>>2]=FNe()|0,n[s+32>>2]=7}function kNe(){return 11700}function QNe(){return 1484}function FNe(){return lD()|0}function RNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(TNe(c),gt(c)):l|0&>(l)}function TNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function NNe(s){s=s|0,vp(s)}function LNe(s,l,c){s=s|0,l=l|0,c=c|0,s=pn(l)|0,l=ONe(c)|0,c=MNe(c,0)|0,hLe(s,l,c,cR()|0,0)}function ONe(s){return s=s|0,s|0}function MNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=cR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(I9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(YNe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function cR(){var s=0,l=0;if(o[7944]|0||(w9(10568),tr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));w9(10568)}return 10568}function w9(s){s=s|0,HNe(s)}function UNe(s){s=s|0,_Ne(s+24|0)}function _Ne(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function HNe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,17,l,C5()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qNe(s){return s=s|0,GNe(n[(jNe(s)|0)>>2]|0)|0}function jNe(s){return s=s|0,(n[(cR()|0)+24>>2]|0)+(s<<3)|0}function GNe(s){return s=s|0,oD(CD[s&7]()|0)|0}function I9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function YNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=WNe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,KNe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,I9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,VNe(s,d),JNe(d),C=k;return}}function WNe(s){return s=s|0,536870911}function KNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function VNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function JNe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function zNe(){XNe()}function XNe(){ZNe(10604)}function ZNe(s){s=s|0,$Ne(s,4955)}function $Ne(s,l){s=s|0,l=l|0;var c=0;c=eLe()|0,n[s>>2]=c,tLe(c,l),xp(n[s>>2]|0)}function eLe(){var s=0;return o[7952]|0||(uLe(10612),tr(25,10612,U|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function tLe(s,l){s=s|0,l=l|0,n[s>>2]=sLe()|0,n[s+4>>2]=oLe()|0,n[s+12>>2]=l,n[s+8>>2]=aLe()|0,n[s+32>>2]=8}function xp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,Ym()|0,n[c>>2]=s,rLe(10608,c),C=l}function Ym(){return o[11714]|0||(n[2652]=0,tr(62,10608,U|0)|0,o[11714]=1),10608}function rLe(s,l){s=s|0,l=l|0;var c=0;c=Kt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function nLe(s){s=s|0,iLe(s)}function iLe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,gt(c);while((l|0)!=0);n[s>>2]=0}function sLe(){return 11715}function oLe(){return 1496}function aLe(){return aD()|0}function lLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(cLe(c),gt(c)):l|0&>(l)}function cLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function uLe(s){s=s|0,vp(s)}function ALe(s,l){s=s|0,l=l|0;var c=0,f=0;Ym()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&(n7(uR(f)|0,s)|0)==0);)if(c=n[c>>2]|0,!c)break e;fLe(f,l)}while(0)}function uR(s){return s=s|0,n[s+12>>2]|0}function fLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(jA(c),gt(c)),c=Kt(4)|0,zG(c,l),n[s>>2]=c}function AR(){return o[11716]|0||(n[2664]=0,tr(63,10656,U|0)|0,o[11716]=1),10656}function B9(){var s=0;return o[11717]|0?s=n[2665]|0:(pLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function pLe(){o[11740]|0||(o[11718]=gr(gr(8,0)|0,0)|0,o[11719]=gr(gr(0,0)|0,0)|0,o[11720]=gr(gr(0,16)|0,0)|0,o[11721]=gr(gr(8,0)|0,0)|0,o[11722]=gr(gr(0,0)|0,0)|0,o[11723]=gr(gr(8,0)|0,0)|0,o[11724]=gr(gr(0,0)|0,0)|0,o[11725]=gr(gr(8,0)|0,0)|0,o[11726]=gr(gr(0,0)|0,0)|0,o[11727]=gr(gr(8,0)|0,0)|0,o[11728]=gr(gr(0,0)|0,0)|0,o[11729]=gr(gr(0,0)|0,32)|0,o[11730]=gr(gr(0,0)|0,32)|0,o[11740]=1)}function v9(){return 1572}function hLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0;m=C,C=C+32|0,O=m+16|0,M=m+12|0,Q=m+8|0,k=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[Q>>2]=c,n[k>>2]=f,n[B>>2]=d,AR()|0,gLe(10656,O,M,Q,k,B),C=m}function gLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Kt(24)|0,$G(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function D9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0;if(lt=C,C=C+32|0,Me=lt+20|0,Qe=lt+8|0,et=lt+4|0,Xe=lt,l=n[l>>2]|0,l|0){Ge=Me+4|0,Q=Me+8|0,M=Qe+4|0,O=Qe+8|0,j=Qe+8|0,se=Me+8|0;do{if(B=l+4|0,k=fR(B)|0,k|0){if(d=Nw(k)|0,n[Me>>2]=0,n[Ge>>2]=0,n[Q>>2]=0,f=(Lw(k)|0)+1|0,dLe(Me,f),f|0)for(;f=f+-1|0,bc(Qe,n[d>>2]|0),m=n[Ge>>2]|0,m>>>0<(n[se>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[Ge>>2]=(n[Ge>>2]|0)+4):pR(Me,Qe),f;)d=d+4|0;f=Ow(k)|0,n[Qe>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?mLe(Qe,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(0);n[et>>2]=cD(B)|0,n[Xe>>2]=Tr(k)|0,yLe(c,s,et,Xe,Me,Qe),hR(Qe),ef(Me)}l=n[l>>2]|0}while((l|0)!=0)}C=lt}function fR(s){return s=s|0,n[s+12>>2]|0}function Nw(s){return s=s|0,n[s+12>>2]|0}function Lw(s){return s=s|0,n[s+16>>2]|0}function dLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(R9(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),T9(s,c),N9(c)),C=d}function pR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=F9(s)|0,m>>>0>>0)zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,Q=M>>1,R9(c,M>>2>>>0>>1>>>0?Q>>>0>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,T9(s,c),N9(c),C=B;return}}function Ow(s){return s=s|0,n[s+8>>2]|0}function mLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=Q9(s)|0,m>>>0>>0)zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,Q=M>>1,OLe(c,M>>2>>>0>>1>>>0?Q>>>0>>0?d:Q:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,MLe(s,c),ULe(c),C=B;return}}function cD(s){return s=s|0,n[s>>2]|0}function yLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,ELe(s,l,c,f,d,m)}function hR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ef(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),gt(c))}function ELe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0;B=C,C=C+48|0,O=B+40|0,k=B+32|0,j=B+24|0,Q=B+12|0,M=B,Ka(k),s=da(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,gR(Q,d),CLe(M,m),n[O>>2]=n[j>>2],wLe(s,O,c,f,Q,M),hR(M),ef(Q),Va(k),C=B}function gR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(NLe(s,f),LLe(s,n[l>>2]|0,n[c>>2]|0,f))}function CLe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(RLe(s,f),TLe(s,n[l>>2]|0,n[c>>2]|0,f))}function wLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0;B=C,C=C+32|0,O=B+28|0,j=B+24|0,k=B+12|0,Q=B,M=Sl(ILe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=Fg(O)|0,c=S9(c)|0,f=dR(f)|0,n[k>>2]=n[d>>2],O=d+4|0,n[k+4>>2]=n[O>>2],j=d+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=mR(k)|0,n[Q>>2]=n[m>>2],O=m+4|0,n[Q+4>>2]=n[O>>2],j=m+8|0,n[Q+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,ao(0,M|0,s|0,l|0,c|0,f|0,d|0,BLe(Q)|0)|0,hR(Q),ef(k),C=B}function ILe(){var s=0;return o[7968]|0||(QLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function Fg(s){return s=s|0,b9(s)|0}function S9(s){return s=s|0,P9(s)|0}function dR(s){return s=s|0,oD(s)|0}function mR(s){return s=s|0,DLe(s)|0}function BLe(s){return s=s|0,vLe(s)|0}function vLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Wa(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=P9(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function P9(s){return s=s|0,s|0}function DLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Wa(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=b9((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function b9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=xF(x9()|0)|0,f?(kF(l,f),QF(c,l),aUe(s,c),s=FF(l)|0):s=SLe(s)|0,C=d,s|0}function x9(){var s=0;return o[7960]|0||(kLe(10664),tr(25,10664,U|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function SLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Wa(8)|0,l=f,k=Kt(4)|0,n[k>>2]=n[s>>2],m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],k9(s,m,d),n[f>>2]=s,C=c,l|0}function k9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function PLe(s){s=s|0,zm(s),gt(s)}function bLe(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function xLe(s){s=s|0,gt(s)}function kLe(s){s=s|0,vp(s)}function QLe(s){s=s|0,Pl(s,FLe()|0,5)}function FLe(){return 1676}function RLe(s,l){s=s|0,l=l|0;var c=0;if((Q9(s)|0)>>>0>>0&&zr(s),l>>>0>1073741823)Rt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function TLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function Q9(s){return s=s|0,1073741823}function NLe(s,l){s=s|0,l=l|0;var c=0;if((F9(s)|0)>>>0>>0&&zr(s),l>>>0>1073741823)Rt();else{c=Kt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function LLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(Dr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function F9(s){return s=s|0,1073741823}function OLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Kt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function MLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ULe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function R9(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Rt();else{d=Kt(l<<2)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function T9(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function N9(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&>(s)}function _Le(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0;if(Qe=C,C=C+32|0,O=Qe+20|0,j=Qe+12|0,M=Qe+16|0,se=Qe+4|0,Ge=Qe,Me=Qe+8|0,k=B9()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(Q=n[k+8>>2]|0,k=n[k+4>>2]|0;bc(O,B),HLe(s,O,k,Q),m=m+4|0,B=n[m>>2]|0,B;)Q=Q+1|0,k=k+1|0;if(m=v9()|0,B=n[m>>2]|0,B|0)do bc(O,B),n[j>>2]=n[m+4>>2],qLe(l,O,j),m=m+8|0,B=n[m>>2]|0;while((B|0)!=0);if(m=n[(Ym()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,bc(O,n[(Wm(l)|0)>>2]|0),n[j>>2]=uR(l)|0,jLe(c,O,j),m=n[m>>2]|0;while((m|0)!=0);if(bc(M,0),m=AR()|0,n[O>>2]=n[M>>2],D9(O,m,d),m=n[(Ym()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(Q=n[m+4>>2]|0,bc(j,n[(Wm(Q)|0)>>2]|0),GLe(se,L9(Q)|0),B=n[se>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do bc(Ge,n[(Wm(n[B+4>>2]|0)|0)>>2]|0),k=n[s>>2]|0,k>>>0<(n[c>>2]|0)>>>0?(n[k>>2]=n[Ge>>2],n[s>>2]=(n[s>>2]|0)+4):pR(O,Ge),B=n[B>>2]|0;while((B|0)!=0);YLe(f,j,O),ef(O)}n[Me>>2]=n[j>>2],M=O9(Q)|0,n[O>>2]=n[Me>>2],D9(O,M,d),s5(se),m=n[m>>2]|0}while((m|0)!=0)}C=Qe}function HLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,nOe(s,l,c,f)}function qLe(s,l,c){s=s|0,l=l|0,c=c|0,rOe(s,l,c)}function Wm(s){return s=s|0,s|0}function jLe(s,l,c){s=s|0,l=l|0,c=c|0,ZLe(s,l,c)}function L9(s){return s=s|0,s+16|0}function GLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=XLe(c)|0,f|0){if(f=Kt(12)|0,B=(M9(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Kt(12)|0,Q=(M9(d)|0)+4|0,k=n[Q+4>>2]|0,B=s+4|0,n[B>>2]=n[Q>>2],n[B+4>>2]=k,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function YLe(s,l,c){s=s|0,l=l|0,c=c|0,WLe(s,l,c)}function O9(s){return s=s|0,s+24|0}function WLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,k=f+12|0,m=f,Ka(d),s=da(s)|0,n[k>>2]=n[l>>2],gR(m,c),n[B>>2]=n[k>>2],KLe(s,B,m),ef(m),Va(d),C=f}function KLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+16|0,k=f+12|0,d=f,m=Sl(VLe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=Fg(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],k=c+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[c>>2]=0,oo(0,m|0,s|0,l|0,mR(d)|0)|0,ef(d),C=f}function VLe(){var s=0;return o[7976]|0||(JLe(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function JLe(s){s=s|0,Pl(s,zLe()|0,2)}function zLe(){return 1732}function XLe(s){return s=s|0,n[s>>2]|0}function M9(s){return s=s|0,n[s>>2]|0}function ZLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,Ka(d),s=da(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],U9(s,m,c),Va(d),C=f}function U9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=Sl($Le()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=Fg(m)|0,oo(0,d|0,s|0,l|0,S9(c)|0)|0,C=f}function $Le(){var s=0;return o[7984]|0||(eOe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function eOe(s){s=s|0,Pl(s,tOe()|0,2)}function tOe(){return 1744}function rOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,Ka(d),s=da(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],U9(s,m,c),Va(d),C=f}function nOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,Ka(m),s=da(s)|0,n[k>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[k>>2],iOe(s,B,c,f),Va(m),C=d}function iOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,B=d+4|0,k=d,m=Sl(sOe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=Fg(B)|0,c=Km(c)|0,pc(0,m|0,s|0,l|0,c|0,Km(f)|0)|0,C=d}function sOe(){var s=0;return o[7992]|0||(aOe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function Km(s){return s=s|0,oOe(s)|0}function oOe(s){return s=s|0,s&255|0}function aOe(s){s=s|0,Pl(s,lOe()|0,3)}function lOe(){return 1756}function cOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;switch(se=C,C=C+32|0,k=se+8|0,Q=se+4|0,M=se+20|0,O=se,LF(s,0),f=oUe(l)|0,n[k>>2]=0,j=k+4|0,n[j>>2]=0,n[k+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,uOe(Q,c,M),uD(s,Q)|0,GA(Q);break}case 8:{j=BR(l)|0,o[M>>0]=8,bc(O,n[j+4>>2]|0),AOe(Q,c,M,O,j+8|0),uD(s,Q)|0,GA(Q);break}case 9:{if(m=BR(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,bc(Q,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[Q>>2],n[j>>2]=(n[j>>2]|0)+4):pR(k,Q),l;)d=d+4|0;o[M>>0]=9,bc(O,n[m+8>>2]|0),fOe(Q,c,M,O,k),uD(s,Q)|0,GA(Q);break}default:j=BR(l)|0,o[M>>0]=f,bc(O,n[j+4>>2]|0),pOe(Q,c,M,O),uD(s,Q)|0,GA(Q)}ef(k),C=se}function uOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,Ka(d),l=da(l)|0,SOe(s,l,o[c>>0]|0),Va(d),C=f}function uD(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&PA(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function AOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+32|0,k=m+16|0,B=m+8|0,Q=m,Ka(B),l=da(l)|0,c=o[c>>0]|0,n[Q>>2]=n[f>>2],d=n[d>>2]|0,n[k>>2]=n[Q>>2],IOe(s,l,c,k,d),Va(B),C=m}function fOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0;m=C,C=C+32|0,Q=m+24|0,B=m+16|0,M=m+12|0,k=m,Ka(B),l=da(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],gR(k,d),n[Q>>2]=n[M>>2],yOe(s,l,c,Q,k),ef(k),Va(B),C=m}function pOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,Ka(m),l=da(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],n[B>>2]=n[k>>2],hOe(s,l,c,B),Va(m),C=d}function hOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+4|0,k=d,B=Sl(gOe()|0)|0,c=Km(c)|0,n[k>>2]=n[f>>2],n[m>>2]=n[k>>2],AD(s,oo(0,B|0,l|0,c|0,Fg(m)|0)|0),C=d}function gOe(){var s=0;return o[8e3]|0||(dOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function AD(s,l){s=s|0,l=l|0,LF(s,l)}function dOe(s){s=s|0,Pl(s,mOe()|0,2)}function mOe(){return 1772}function yOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0;m=C,C=C+32|0,Q=m+16|0,M=m+12|0,B=m,k=Sl(EOe()|0)|0,c=Km(c)|0,n[M>>2]=n[f>>2],n[Q>>2]=n[M>>2],f=Fg(Q)|0,n[B>>2]=n[d>>2],Q=d+4|0,n[B+4>>2]=n[Q>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[Q>>2]=0,n[d>>2]=0,AD(s,pc(0,k|0,l|0,c|0,f|0,mR(B)|0)|0),ef(B),C=m}function EOe(){var s=0;return o[8008]|0||(COe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function COe(s){s=s|0,Pl(s,wOe()|0,3)}function wOe(){return 1784}function IOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0;m=C,C=C+16|0,k=m+4|0,Q=m,B=Sl(BOe()|0)|0,c=Km(c)|0,n[Q>>2]=n[f>>2],n[k>>2]=n[Q>>2],f=Fg(k)|0,AD(s,pc(0,B|0,l|0,c|0,f|0,dR(d)|0)|0),C=m}function BOe(){var s=0;return o[8016]|0||(vOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function vOe(s){s=s|0,Pl(s,DOe()|0,3)}function DOe(){return 1800}function SOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=Sl(POe()|0)|0,AD(s,Qn(0,f|0,l|0,Km(c)|0)|0)}function POe(){var s=0;return o[8024]|0||(bOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function bOe(s){s=s|0,Pl(s,xOe()|0,1)}function xOe(){return 1816}function kOe(){QOe(),FOe(),ROe()}function QOe(){n[2702]=p7(65536)|0}function FOe(){$Oe(10856)}function ROe(){TOe(10816)}function TOe(s){s=s|0,NOe(s,5044),LOe(s)|0}function NOe(s,l){s=s|0,l=l|0;var c=0;c=x9()|0,n[s>>2]=c,KOe(c,l),xp(n[s>>2]|0)}function LOe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,OOe()|0),s|0}function OOe(){var s=0;return o[8032]|0||(_9(10820),tr(64,10820,U|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),Tr(10820)|0||_9(10820),10820}function _9(s){s=s|0,_Oe(s),Qg(s,25)}function MOe(s){s=s|0,UOe(s+24|0)}function UOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function _Oe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,18,l,GOe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function HOe(s,l){s=s|0,l=l|0,qOe(s,l)}function qOe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,bg(d,l),n[f>>2]=xg(d,l)|0,jOe(s,f),C=c}function jOe(s,l){s=s|0,l=l|0,H9(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function H9(s,l){s=s|0,l=l|0,n[s>>2]=l}function GOe(){return 1824}function YOe(s){return s=s|0,WOe(s)|0}function WOe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Wa(8)|0,l=f,k=Kt(4)|0,bg(d,s),H9(k,xg(d,s)|0),m=l+4|0,n[m>>2]=k,s=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],k9(s,m,d),n[f>>2]=s,C=c,l|0}function Wa(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=p7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function KOe(s,l){s=s|0,l=l|0,n[s>>2]=VOe()|0,n[s+4>>2]=JOe()|0,n[s+12>>2]=l,n[s+8>>2]=zOe()|0,n[s+32>>2]=9}function VOe(){return 11744}function JOe(){return 1832}function zOe(){return lD()|0}function XOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(ZOe(c),gt(c)):l|0&>(l)}function ZOe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function $Oe(s){s=s|0,eMe(s,5052),tMe(s)|0,rMe(s,5058,26)|0,nMe(s,5069,1)|0,iMe(s,5077,10)|0,sMe(s,5087,19)|0,oMe(s,5094,27)|0}function eMe(s,l){s=s|0,l=l|0;var c=0;c=Z4e()|0,n[s>>2]=c,$4e(c,l),xp(n[s>>2]|0)}function tMe(s){s=s|0;var l=0;return l=n[s>>2]|0,kg(l,M4e()|0),s|0}function rMe(s,l,c){return s=s|0,l=l|0,c=c|0,C4e(s,pn(l)|0,c,0),s|0}function nMe(s,l,c){return s=s|0,l=l|0,c=c|0,s4e(s,pn(l)|0,c,0),s|0}function iMe(s,l,c){return s=s|0,l=l|0,c=c|0,OMe(s,pn(l)|0,c,0),s|0}function sMe(s,l,c){return s=s|0,l=l|0,c=c|0,IMe(s,pn(l)|0,c,0),s|0}function q9(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}gt(c)}n[2701]=s}function oMe(s,l,c){return s=s|0,l=l|0,c=c|0,aMe(s,pn(l)|0,c,0),s|0}function aMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=yR()|0,s=lMe(c)|0,hn(m,l,d,s,cMe(c,f)|0,f)}function yR(){var s=0,l=0;if(o[8040]|0||(G9(10860),tr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));G9(10860)}return 10860}function lMe(s){return s=s|0,s|0}function cMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=yR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(j9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(uMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function j9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function uMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=AMe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,fMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,j9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,pMe(s,d),hMe(d),C=k;return}}function AMe(s){return s=s|0,536870911}function fMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function pMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function hMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function G9(s){s=s|0,mMe(s)}function gMe(s){s=s|0,dMe(s+24|0)}function dMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function mMe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,11,l,yMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function yMe(){return 1840}function EMe(s,l,c){s=s|0,l=l|0,c=c|0,wMe(n[(CMe(s)|0)>>2]|0,l,c)}function CMe(s){return s=s|0,(n[(yR()|0)+24>>2]|0)+(s<<3)|0}function wMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,bg(m,l),l=xg(m,l)|0,bg(d,c),c=xg(d,c)|0,rf[s&31](l,c),C=f}function IMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=ER()|0,s=BMe(c)|0,hn(m,l,d,s,vMe(c,f)|0,f)}function ER(){var s=0,l=0;if(o[8048]|0||(W9(10896),tr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(10896)}return 10896}function BMe(s){return s=s|0,s|0}function vMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=ER()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(Y9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(DMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function Y9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function DMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=SMe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,PMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,Y9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,bMe(s,d),xMe(d),C=k;return}}function SMe(s){return s=s|0,536870911}function PMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function bMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function xMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function W9(s){s=s|0,FMe(s)}function kMe(s){s=s|0,QMe(s+24|0)}function QMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function FMe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,11,l,RMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RMe(){return 1852}function TMe(s,l){return s=s|0,l=l|0,LMe(n[(NMe(s)|0)>>2]|0,l)|0}function NMe(s){return s=s|0,(n[(ER()|0)+24>>2]|0)+(s<<3)|0}function LMe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,bg(f,l),l=xg(f,l)|0,l=oD(Lg[s&31](l)|0)|0,C=c,l|0}function OMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=CR()|0,s=MMe(c)|0,hn(m,l,d,s,UMe(c,f)|0,f)}function CR(){var s=0,l=0;if(o[8056]|0||(V9(10932),tr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));V9(10932)}return 10932}function MMe(s){return s=s|0,s|0}function UMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=CR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(K9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(_Me(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function K9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function _Me(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=HMe(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,qMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,K9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,jMe(s,d),GMe(d),C=k;return}}function HMe(s){return s=s|0,536870911}function qMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function jMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function GMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function V9(s){s=s|0,KMe(s)}function YMe(s){s=s|0,WMe(s+24|0)}function WMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function KMe(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,7,l,VMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function VMe(){return 1860}function JMe(s,l,c){return s=s|0,l=l|0,c=c|0,XMe(n[(zMe(s)|0)>>2]|0,l,c)|0}function zMe(s){return s=s|0,(n[(CR()|0)+24>>2]|0)+(s<<3)|0}function XMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,k=f,Q=f+16|0,d=f+4|0,ZMe(Q,l),$Me(k,Q,l),Dp(d,c),c=Sp(d,c)|0,n[B>>2]=n[k>>2],Hw[s&15](m,B,c),c=e4e(m)|0,GA(m),Pp(d),C=f,c|0}function ZMe(s,l){s=s|0,l=l|0}function $Me(s,l,c){s=s|0,l=l|0,c=c|0,t4e(s,c)}function e4e(s){return s=s|0,da(s)|0}function t4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(r4e(c,0),ii(f|0,c|0)|0,n4e(s,c),i4e(c)):n[s>>2]=n[l>>2],C=d}function r4e(s,l){s=s|0,l=l|0,XG(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function n4e(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function i4e(s){s=s|0,o[s+8>>0]=0}function s4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=wR()|0,s=o4e(c)|0,hn(m,l,d,s,a4e(c,f)|0,f)}function wR(){var s=0,l=0;if(o[8064]|0||(z9(10968),tr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Tr(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));z9(10968)}return 10968}function o4e(s){return s=s|0,s|0}function a4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=wR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(J9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(l4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function J9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function l4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=c4e(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,u4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,J9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,A4e(s,d),f4e(d),C=k;return}}function c4e(s){return s=s|0,536870911}function u4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function A4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function f4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function z9(s){s=s|0,g4e(s)}function p4e(s){s=s|0,h4e(s+24|0)}function h4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function g4e(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,1,l,d4e()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function d4e(){return 1872}function m4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,E4e(n[(y4e(s)|0)>>2]|0,l,c,f,d,m)}function y4e(s){return s=s|0,(n[(wR()|0)+24>>2]|0)+(s<<3)|0}function E4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0;B=C,C=C+32|0,k=B+16|0,Q=B+12|0,M=B+8|0,O=B+4|0,j=B,Dp(k,l),l=Sp(k,l)|0,Dp(Q,c),c=Sp(Q,c)|0,Dp(M,f),f=Sp(M,f)|0,Dp(O,d),d=Sp(O,d)|0,Dp(j,m),m=Sp(j,m)|0,y7[s&1](l,c,f,d,m),Pp(j),Pp(O),Pp(M),Pp(Q),Pp(k),C=B}function C4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=IR()|0,s=w4e(c)|0,hn(m,l,d,s,I4e(c,f)|0,f)}function IR(){var s=0,l=0;if(o[8072]|0||(Z9(11004),tr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Tr(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Z9(11004)}return 11004}function w4e(s){return s=s|0,s|0}function I4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,Q=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,Q=IR()|0,B=Q+24|0,l=gr(l,4)|0,n[m>>2]=l,c=Q+28|0,f=n[c>>2]|0,f>>>0<(n[Q+32>>2]|0)>>>0?(X9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(B4e(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function X9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function B4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=v4e(s)|0,f>>>0>>0)zr(s);else{Q=n[s>>2]|0,O=(n[s+8>>2]|0)-Q|0,M=O>>2,D4e(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-Q>>3,s+8|0),B=d+8|0,X9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,S4e(s,d),P4e(d),C=k;return}}function v4e(s){return s=s|0,536870911}function D4e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Rt();else{d=Kt(l<<3)|0;break}else d=0;while(0);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function S4e(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(Dr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function P4e(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&>(s)}function Z9(s){s=s|0,k4e(s)}function b4e(s){s=s|0,x4e(s+24|0)}function x4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function k4e(s){s=s|0;var l=0;l=Kr()|0,Vr(s,1,12,l,Q4e()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Q4e(){return 1896}function F4e(s,l,c){s=s|0,l=l|0,c=c|0,T4e(n[(R4e(s)|0)>>2]|0,l,c)}function R4e(s){return s=s|0,(n[(IR()|0)+24>>2]|0)+(s<<3)|0}function T4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,N4e(m,l),l=L4e(m,l)|0,Dp(d,c),c=Sp(d,c)|0,rf[s&31](l,c),Pp(d),C=f}function N4e(s,l){s=s|0,l=l|0}function L4e(s,l){return s=s|0,l=l|0,O4e(l)|0}function O4e(s){return s=s|0,s|0}function M4e(){var s=0;return o[8080]|0||($9(11040),tr(70,11040,U|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),Tr(11040)|0||$9(11040),11040}function $9(s){s=s|0,H4e(s),Qg(s,71)}function U4e(s){s=s|0,_4e(s+24|0)}function _4e(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),gt(c))}function H4e(s){s=s|0;var l=0;l=Kr()|0,Vr(s,5,7,l,Y4e()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function q4e(s){s=s|0,j4e(s)}function j4e(s){s=s|0,G4e(s)}function G4e(s){s=s|0,o[s+8>>0]=1}function Y4e(){return 1936}function W4e(){return K4e()|0}function K4e(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Wa(8)|0,s=c,m=s+4|0,n[m>>2]=Kt(1)|0,f=Kt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],V4e(f,m,d),n[c>>2]=f,C=l,s|0}function V4e(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Kt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function J4e(s){s=s|0,zm(s),gt(s)}function z4e(s){s=s|0,s=n[s+12>>2]|0,s|0&>(s)}function X4e(s){s=s|0,gt(s)}function Z4e(){var s=0;return o[8088]|0||(sUe(11076),tr(25,11076,U|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function $4e(s,l){s=s|0,l=l|0,n[s>>2]=eUe()|0,n[s+4>>2]=tUe()|0,n[s+12>>2]=l,n[s+8>>2]=rUe()|0,n[s+32>>2]=10}function eUe(){return 11745}function tUe(){return 1940}function rUe(){return aD()|0}function nUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(bp(f,896)|0)==512?c|0&&(iUe(c),gt(c)):l|0&>(l)}function iUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&kp(s)}function sUe(s){s=s|0,vp(s)}function bc(s,l){s=s|0,l=l|0,n[s>>2]=l}function BR(s){return s=s|0,n[s>>2]|0}function oUe(s){return s=s|0,o[n[s>>2]>>0]|0}function aUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],lUe(l,f)|0,C=c}function lUe(s,l){s=s|0,l=l|0;var c=0;return c=cUe(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function cUe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,Ka(f),s=da(s)|0,l=uUe(s,n[l>>2]|0)|0,Va(f),C=c,l|0}function Ka(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function uUe(s,l){s=s|0,l=l|0;var c=0;return c=Sl(AUe()|0)|0,Qn(0,c|0,s|0,dR(l)|0)|0}function Va(s){s=s|0,q9(n[s>>2]|0,n[s+4>>2]|0)}function AUe(){var s=0;return o[8096]|0||(fUe(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function fUe(s){s=s|0,Pl(s,pUe()|0,1)}function pUe(){return 1948}function hUe(){gUe()}function gUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0;if(Me=C,C=C+16|0,O=Me+4|0,j=Me,Ni(65536,10804,n[2702]|0,10812),c=B9()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;uc(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=v9()|0,l=n[s>>2]|0,l|0)do uu(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while((l|0)!=0);uu(dUe()|0,5167),M=Ym()|0,s=n[M>>2]|0;e:do if(s|0){do mUe(n[s+4>>2]|0),s=n[s>>2]|0;while((s|0)!=0);if(s=n[M>>2]|0,s|0){Q=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(yUe(d)|0);)if(n[j>>2]=Q,n[O>>2]=n[j>>2],EUe(M,O)|0,!s)break e;if(CUe(d),Q=n[Q>>2]|0,l=e7(d)|0,m=Hi()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,k=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(L9(d)|0)>>2]|0,l|0)for(c=B,f=k;n[c>>2]=n[(Wm(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Qe=Wm(d)|0,l=wUe(d)|0,c=e7(d)|0,f=IUe(d)|0,Au(Qe|0,l|0,B|0,k|0,c|0,f|0,uR(d)|0),_i(m|0)}while((s|0)!=0)}}while(0);if(s=n[(AR()|0)>>2]|0,s|0)do Qe=s+4|0,M=fR(Qe)|0,d=Ow(M)|0,m=Nw(M)|0,B=(Lw(M)|0)+1|0,k=fD(M)|0,Q=t7(Qe)|0,M=Tr(M)|0,O=cD(Qe)|0,j=vR(Qe)|0,El(0,d|0,m|0,B|0,k|0,Q|0,M|0,O|0,j|0,DR(Qe)|0),s=n[s>>2]|0;while((s|0)!=0);s=n[(Ym()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(se=n[(Wm(l)|0)>>2]|0,Ge=n[(O9(l)|0)>>2]|0,Ge|0)){c=Ge;do{l=c+4|0,f=fR(l)|0;r:do if(f|0)switch(Tr(f)|0){case 0:break t;case 4:case 3:case 2:{k=Ow(f)|0,Q=Nw(f)|0,M=(Lw(f)|0)+1|0,O=fD(f)|0,j=Tr(f)|0,Qe=cD(l)|0,El(se|0,k|0,Q|0,M|0,O|0,0,j|0,Qe|0,vR(l)|0,DR(l)|0);break r}case 1:{B=Ow(f)|0,k=Nw(f)|0,Q=(Lw(f)|0)+1|0,M=fD(f)|0,O=t7(l)|0,j=Tr(f)|0,Qe=cD(l)|0,El(se|0,B|0,k|0,Q|0,M|0,O|0,j|0,Qe|0,vR(l)|0,DR(l)|0);break r}case 5:{M=Ow(f)|0,O=Nw(f)|0,j=(Lw(f)|0)+1|0,Qe=fD(f)|0,El(se|0,M|0,O|0,j|0,Qe|0,BUe(f)|0,Tr(f)|0,0,0,0);break r}default:break r}while(0);c=n[c>>2]|0}while((c|0)!=0)}if(s=n[s>>2]|0,!s)break e}Rt()}while(0);Ce(),C=Me}function dUe(){return 11703}function mUe(s){s=s|0,o[s+40>>0]=0}function yUe(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function EUe(s,l){return s=s|0,l=l|0,l=vUe(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],gt(s),n[l>>2]|0}function CUe(s){s=s|0,o[s+40>>0]=1}function e7(s){return s=s|0,n[s+20>>2]|0}function wUe(s){return s=s|0,n[s+8>>2]|0}function IUe(s){return s=s|0,n[s+32>>2]|0}function fD(s){return s=s|0,n[s+4>>2]|0}function t7(s){return s=s|0,n[s+4>>2]|0}function vR(s){return s=s|0,n[s+8>>2]|0}function DR(s){return s=s|0,n[s+16>>2]|0}function BUe(s){return s=s|0,n[s+20>>2]|0}function vUe(s){return s=s|0,n[s>>2]|0}function pD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0;Lt=C,C=C+16|0,se=Lt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),je=l<<3,n[f+4>>2]=je|3,je=f+je+4|0,n[je>>2]=n[je>>2]|1,je=d,C=Lt,je|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,je=B,C=Lt,je|0;if(k=n[2784]|0,k){if(c=(k&0-k)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,Q=c>>>2&4,c=c>>>Q,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|Q|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)Q=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,Q=B>>>0>>0,c=Q?B:c,s=Q?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while((f|0)!=0);Q=s,m=c}if(B=Q+M|0,Q>>>0>>0){d=n[Q+24>>2]|0,l=n[Q+12>>2]|0;do if((l|0)==(Q|0)){if(s=Q+20|0,l=n[s>>2]|0,!l&&(s=Q+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[Q+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(0);do if(d|0){if(l=n[Q+28>>2]|0,s=11436+(l<<2)|0,(Q|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=k&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[Q+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[Q+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(0);return m>>>0<16?(je=m+M|0,n[Q+4>>2]=je|3,je=Q+je+4|0,n[je>>2]=n[je>>2]|1):(n[Q+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),je=Q+8|0,C=Lt,je|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,Q=n[2784]|0,Q){f=0-M|0,s=s>>>8,s?M>>>0>16777215?k=31:(j=(s+1048320|0)>>>16&8,Ue=s<>>16&4,Ue=Ue<>>16&2,k=14-(O|j|k)+(Ue<>>15)|0,k=M>>>(k+7|0)&1|k<<1):k=0,c=n[11436+(k<<2)>>2]|0;e:do if(!c)c=0,s=0,Ue=57;else for(s=0,B=M<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,Ue=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,Ue=57;break}else B=B<<((d^1)&1)}while(0);if((Ue|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,k=j>>>2&4,j=j>>>k,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|k|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,Ue=61):(k=s,B=f)}if((Ue|0)==61)for(;;)if(Ue=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,Ue=61;else{k=s,B=c;break}if((k|0)!=0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=k+M|0,k>>>0>=m>>>0)return je=0,C=Lt,je|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else je=n[k+8>>2]|0,n[je+12>>2]=l,n[l+8>>2]=je;while(0);do if(d){if(s=n[k+28>>2]|0,c=11436+(s<<2)|0,(k|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=Q&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){f=Q;break}n[l+24>>2]=d,s=n[k+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[k+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=Q}else f=Q;while(0);do if(B>>>0>=16){if(n[k+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(Ue=(l+1048320|0)>>>16&8,je=l<>>16&4,je=je<>>16&2,l=14-(lt|Ue|l)+(je<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){Ue=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{Ue=96;break}}if((Ue|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((Ue|0)==97){Ue=c+8|0,je=n[Ue>>2]|0,n[je+12>>2]=m,n[Ue>>2]=m,n[m+8>>2]=je,n[m+12>>2]=c,n[m+24>>2]=0;break}}else je=B+M|0,n[k+4>>2]=je|3,je=k+je+4|0,n[je>>2]=n[je>>2]|1;while(0);return je=k+8|0,C=Lt,je|0}else j=M}else j=M;else j=-1;while(0);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(je=s+j|0,n[2788]=je,n[2785]=l,n[je+4>>2]=l|1,n[je+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,je=s+c+4|0,n[je>>2]=n[je>>2]|1),je=s+8|0,C=Lt,je|0;if(B=n[2786]|0,B>>>0>j>>>0)return lt=B-j|0,n[2786]=lt,je=n[2789]|0,Ue=je+j|0,n[2789]=Ue,n[Ue+4>>2]=lt|1,n[je+4>>2]=j|3,je=je+8|0,C=Lt,je|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=se&-16^1431655768,n[se>>2]=s,n[2901]=s,s=4096),k=j+48|0,Q=j+47|0,m=s+Q|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,se=O+M|0,se>>>0<=O>>>0|se>>>0>s>>>0)))return je=0,C=Lt,je|0;e:do if(n[2894]&4)l=0,Ue=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Qe=f+4|0,(s+(n[Qe>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{Ue=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=Qp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Qe>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,Ue=135;break e}}else f=s,Ue=126;else l=0}else Ue=118;while(0);do if((Ue|0)==118)if(c=Qp(0)|0,(c|0)!=-1&&(l=c,Ge=n[2902]|0,Me=Ge+-1|0,l=((Me&l|0)==0?0:(Me+l&0-Ge)-l|0)+M|0,Ge=n[2891]|0,Me=l+Ge|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Me>>>0<=Ge>>>0|Me>>>0>Qe>>>0){l=0;break}if(s=Qp(l|0)|0,(s|0)==(c|0)){B=l,m=c,Ue=135;break e}else f=s,Ue=126}else l=0;while(0);do if((Ue|0)==126){if(c=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,Ue=135;break e}if(s=n[2903]|0,s=Q-l+s&0-s,s>>>0>=2147483647){B=l,m=f,Ue=135;break e}if((Qp(s|0)|0)==-1){Qp(c|0)|0,l=0;break}else{B=s+l|0,m=f,Ue=135;break e}}while(0);n[2894]=n[2894]|4,Ue=133}while(0);if((Ue|0)==133&&M>>>0<2147483647&&(lt=Qp(M|0)|0,Qe=Qp(0)|0,et=Qe-lt|0,Xe=et>>>0>(j+40|0)>>>0,!((lt|0)==-1|Xe^1|lt>>>0>>0&((lt|0)!=-1&(Qe|0)!=-1)^1))&&(B=Xe?et:l,m=lt,Ue=135),(Ue|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),Q=n[2789]|0;do if(Q){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){Ue=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((Ue|0)==145&&(n[l+12>>2]&8|0)==0&&Q>>>0>>0&Q>>>0>=s>>>0){n[c>>2]=f+B,je=Q+8|0,je=(je&7|0)==0?0:0-je&7,Ue=Q+je|0,je=(n[2786]|0)+(B-je)|0,n[2789]=Ue,n[2786]=je,n[Ue+4>>2]=je|1,n[Ue+je+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){Ue=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((Ue|0)==153&&(n[l+12>>2]&8|0)==0){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+((O&7|0)==0?0:0-O&7)|0,l=c+8|0,l=c+((l&7|0)==0?0:0-l&7)|0,M=O+j|0,k=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(Q|0)){if((l|0)==(n[2788]|0)){je=(n[2785]|0)+k|0,n[2785]=je,n[2788]=M,n[M+4>>2]=je|1,n[M+je>>2]=je;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else je=n[l+8>>2]|0,n[je+12>>2]=s,n[s+8>>2]=je;while(0);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(0);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}Ue=(l+1048320|0)>>>16&8,je=l<>>16&4,je=je<>>16&2,l=14-(lt|Ue|l)+(je<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(0);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){Ue=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{Ue=193;break}}if((Ue|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((Ue|0)==194){Ue=c+8|0,je=n[Ue>>2]|0,n[je+12>>2]=M,n[Ue>>2]=M,n[M+8>>2]=je,n[M+12>>2]=c,n[M+24>>2]=0;break}}else je=(n[2786]|0)+k|0,n[2786]=je,n[2789]=M,n[M+4>>2]=je|1;while(0);return je=O+8|0,C=Lt,je|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=Q>>>0&&(je=s+(n[l+4>>2]|0)|0,je>>>0>Q>>>0));)l=n[l+8>>2]|0;d=je+-47|0,s=d+8|0,s=d+((s&7|0)==0?0:0-s&7)|0,d=Q+16|0,s=s>>>0>>0?Q:s,l=s+8|0,c=m+8|0,c=(c&7|0)==0?0:0-c&7,Ue=m+c|0,c=B+-40-c|0,n[2789]=Ue,n[2786]=c,n[Ue+4>>2]=c|1,n[Ue+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do Ue=l,l=l+4|0,n[l>>2]=7;while((Ue+8|0)>>>0>>0);if((s|0)!=(Q|0)){if(m=s-Q|0,n[c>>2]=n[c>>2]&-2,n[Q+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=Q,n[l+12>>2]=Q,n[Q+8>>2]=l,n[Q+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(Ue=(l+1048320|0)>>>16&8,je=l<>>16&4,je=je<>>16&2,c=14-(lt|Ue|c)+(je<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[Q+28>>2]=c,n[Q+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=Q,n[Q+24>>2]=f,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){Ue=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{Ue=215;break}}if((Ue|0)==215){n[f>>2]=Q,n[Q+24>>2]=c,n[Q+12>>2]=Q,n[Q+8>>2]=Q;break}else if((Ue|0)==216){Ue=c+8|0,je=n[Ue>>2]|0,n[je+12>>2]=Q,n[Ue>>2]=Q,n[Q+8>>2]=je,n[Q+12>>2]=c,n[Q+24>>2]=0;break}}}else{je=n[2787]|0,(je|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do je=11172+(l<<1<<2)|0,n[je+12>>2]=je,n[je+8>>2]=je,l=l+1|0;while((l|0)!=32);je=m+8|0,je=(je&7|0)==0?0:0-je&7,Ue=m+je|0,je=B+-40-je|0,n[2789]=Ue,n[2786]=je,n[Ue+4>>2]=je|1,n[Ue+je+4>>2]=40,n[2790]=n[2905]}while(0);if(l=n[2786]|0,l>>>0>j>>>0)return lt=l-j|0,n[2786]=lt,je=n[2789]|0,Ue=je+j|0,n[2789]=Ue,n[Ue+4>>2]=lt|1,n[je+4>>2]=j|3,je=je+8|0,C=Lt,je|0}return n[(Vm()|0)>>2]=12,je=0,C=Lt,je|0}function hD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,Q=0;if(!!s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,Q=c+l|0;do if(s&1)k=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=Q+4|0,l=n[s>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,k=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=s,n[s+8>>2]=k;while(0);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){k=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(0);if(!(B>>>0>=Q>>>0)&&(s=Q+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(Q|0)==(n[2789]|0)){if(Q=(n[2786]|0)+l|0,n[2786]=Q,n[2789]=k,n[k+4>>2]=Q|1,(k|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((Q|0)==(s|0)){Q=(n[2785]|0)+l|0,n[2785]=Q,n[2788]=B,n[k+4>>2]=Q|1,n[B+Q>>2]=Q;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[Q+8>>2]|0,s=n[Q+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[Q+24>>2]|0,s=n[Q+12>>2]|0;do if((s|0)==(Q|0)){if(c=Q+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[Q+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(0);if(m|0){if(s=n[Q+28>>2]|0,l=11436+(s<<2)|0,(Q|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(Q|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=Q+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(0);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=k,n[s+12>>2]=k,n[k+8>>2]=s,n[k+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,Q=s<>>16&4,Q=Q<>>16&2,s=14-(m|B|s)+(Q<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[k+28>>2]=s,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((s|0)==73){B=c+8|0,Q=n[B>>2]|0,n[Q+12>>2]=k,n[B>>2]=k,n[k+8>>2]=Q,n[k+12>>2]=c,n[k+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;while(0);if(Q=(n[2791]|0)+-1|0,n[2791]=Q,!Q)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function DUe(){return 11628}function SUe(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=xUe(n[s+60>>2]|0)|0,s=gD(hc(6,c|0)|0)|0,C=l,s|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0;j=C,C=C+48|0,M=j+16|0,m=j,d=j+32|0,k=s+28|0,f=n[k>>2]|0,n[d>>2]=f,Q=s+20|0,f=(n[Q>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=gD(Li(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,Ge=n[d+4>>2]|0,se=m>>>0>Ge>>>0,d=se?d+8|0:d,l=(se<<31>>31)+l|0,Ge=m-(se?Ge:0)|0,n[d>>2]=(n[d>>2]|0)+Ge,se=d+4|0,n[se>>2]=(n[se>>2]|0)-Ge,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=gD(Li(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[k>>2]=0,n[Q>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(0);return(O|0)==3&&(Ge=n[s+44>>2]|0,n[s+16>>2]=Ge+(n[s+48>>2]|0),n[k>>2]=Ge,n[Q>>2]=Ge),C=j,c|0}function PUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(gD(sa(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function gD(s){return s=s|0,s>>>0>4294963200&&(n[(Vm()|0)>>2]=0-s,s=-1),s|0}function Vm(){return(bUe()|0)+64|0}function bUe(){return SR()|0}function SR(){return 2084}function xUe(s){return s=s|0,s|0}function kUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,(n[s>>2]&64|0)==0&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,fu(54,f|0)|0)&&(o[s+75>>0]=-1),f=r7(s,l,c)|0,C=d,f|0}function n7(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,c<<24>>24==0||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(c<<24>>24==0||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function QUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(0);return s|0}function i7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0;Qe=C,C=C+224|0,O=Qe+120|0,j=Qe+80|0,Ge=Qe,Me=Qe+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(PR(0,l,O,Ge,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?se=FUe(s)|0:se=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=PR(s,l,O,Ge,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Me,B=s+28|0,n[B>>2]=Me,k=s+20|0,n[k>>2]=Me,n[f>>2]=80,Q=s+16|0,n[Q>>2]=Me+80,c=PR(s,l,O,Ge,j)|0,m&&(ED[n[s+36>>2]&7](s,0,0)|0,c=(n[k>>2]|0)==0?-1:c,n[d>>2]=m,n[f>>2]=0,n[Q>>2]=0,n[B>>2]=0,n[k>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,se|0&&RUe(s),c=(f&32|0)==0?c:-1),C=Qe,c|0}function PR(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0;ir=C,C=C+64|0,or=ir+16|0,Xt=ir,Lt=ir+24|0,Sr=ir+8|0,Nr=ir+20|0,n[or>>2]=l,lt=(s|0)!=0,Ue=Lt+40|0,je=Ue,Lt=Lt+39|0,Mr=Sr+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(Vm()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(0);if(B=o[l>>0]|0,B<<24>>24)k=l;else{Xe=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Xe=9;break t}case 0:{B=k;break t}default:}et=k+1|0,n[or>>2]=et,B=o[et>>0]|0,k=et}t:do if((Xe|0)==9)for(;;){if(Xe=0,(o[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[or>>2]=k,(o[k>>0]|0)==37)Xe=9;else break}while(0);if(B=B-l|0,lt&&ss(s,l,B),B|0){l=k;continue}Q=k+1|0,B=(o[Q>>0]|0)+-48|0,B>>>0<10?(et=(o[k+2>>0]|0)==36,Qe=et?B:-1,O=et?1:O,Q=et?k+3|0:Q):Qe=-1,n[or>>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(M=0,j=B;;){if(B=1<>2]=Q,B=o[Q>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;j=B}else M=0;while(0);if(B<<24>>24==42){if(k=Q+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10&&(o[Q+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[k>>0]|0)+-48<<3)>>2]|0,O=1,Q=Q+3|0;else{if(O|0){m=-1;break}lt?(O=(n[c>>2]|0)+(4-1)&~(4-1),B=n[O>>2]|0,n[c>>2]=O+4,O=0,Q=k):(B=0,O=0,Q=k)}n[or>>2]=Q,et=(B|0)<0,B=et?0-B|0:B,M=et?M|8192:M}else{if(B=s7(or)|0,(B|0)<0){m=-1;break}Q=n[or>>2]|0}do if((o[Q>>0]|0)==46){if((o[Q+1>>0]|0)!=42){n[or>>2]=Q+1,k=s7(or)|0,Q=n[or>>2]|0;break}if(j=Q+2|0,k=(o[j>>0]|0)+-48|0,k>>>0<10&&(o[Q+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,Q=Q+4|0,n[or>>2]=Q;break}if(O|0){m=-1;break e}lt?(et=(n[c>>2]|0)+(4-1)&~(4-1),k=n[et>>2]|0,n[c>>2]=et+4):k=0,n[or>>2]=j,Q=j}else k=-1;while(0);for(Me=0;;){if(((o[Q>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(et=Q+1|0,n[or>>2]=et,j=o[(o[Q>>0]|0)+-65+(5178+(Me*58|0))>>0]|0,se=j&255,(se+-1|0)>>>0<8)Me=se,Q=et;else break}if(!(j<<24>>24)){m=-1;break}Ge=(Qe|0)>-1;do if(j<<24>>24==19)if(Ge){m=-1;break e}else Xe=49;else{if(Ge){n[d+(Qe<<2)>>2]=se,Ge=f+(Qe<<3)|0,Qe=n[Ge+4>>2]|0,Xe=Xt,n[Xe>>2]=n[Ge>>2],n[Xe+4>>2]=Qe,Xe=49;break}if(!lt){m=0;break e}o7(Xt,se,c)}while(0);if((Xe|0)==49&&(Xe=0,!lt)){B=0,l=et;continue}Q=o[Q>>0]|0,Q=(Me|0)!=0&(Q&15|0)==3?Q&-33:Q,Ge=M&-65537,Qe=(M&8192|0)==0?M:Ge;t:do switch(Q|0){case 110:switch((Me&255)<<24>>24){case 0:{n[n[Xt>>2]>>2]=m,B=0,l=et;continue e}case 1:{n[n[Xt>>2]>>2]=m,B=0,l=et;continue e}case 2:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}case 3:{a[n[Xt>>2]>>1]=m,B=0,l=et;continue e}case 4:{o[n[Xt>>2]>>0]=m,B=0,l=et;continue e}case 6:{n[n[Xt>>2]>>2]=m,B=0,l=et;continue e}case 7:{B=n[Xt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=et;continue e}default:{B=0,l=et;continue e}}case 112:{Q=120,k=k>>>0>8?k:8,l=Qe|8,Xe=61;break}case 88:case 120:{l=Qe,Xe=61;break}case 111:{Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,se=NUe(l,Q,Ue)|0,Ge=je-se|0,M=0,j=5642,k=(Qe&8|0)==0|(k|0)>(Ge|0)?k:Ge+1|0,Ge=Qe,Xe=67;break}case 105:case 100:if(Q=Xt,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,(Q|0)<0){l=dD(0,0,l|0,Q|0)|0,Q=Se,M=Xt,n[M>>2]=l,n[M+4>>2]=Q,M=1,j=5642,Xe=66;break t}else{M=(Qe&2049|0)!=0&1,j=(Qe&2048|0)==0?(Qe&1|0)==0?5642:5644:5643,Xe=66;break t}case 117:{Q=Xt,M=0,j=5642,l=n[Q>>2]|0,Q=n[Q+4>>2]|0,Xe=66;break}case 99:{o[Lt>>0]=n[Xt>>2],l=Lt,M=0,j=5642,se=Ue,Q=1,k=Ge;break}case 109:{Q=LUe(n[(Vm()|0)>>2]|0)|0,Xe=71;break}case 115:{Q=n[Xt>>2]|0,Q=Q|0?Q:5652,Xe=71;break}case 67:{n[Sr>>2]=n[Xt>>2],n[Mr>>2]=0,n[Xt>>2]=Sr,se=-1,Q=Sr,Xe=75;break}case 83:{l=n[Xt>>2]|0,k?(se=k,Q=l,Xe=75):(Bs(s,32,B,0,Qe),l=0,Xe=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=MUe(s,+E[Xt>>3],B,k,Qe,Q)|0,l=et;continue e}default:M=0,j=5642,se=Ue,Q=k,k=Qe}while(0);t:do if((Xe|0)==61)Qe=Xt,Me=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,se=TUe(Me,Qe,Ue,Q&32)|0,j=(l&8|0)==0|(Me|0)==0&(Qe|0)==0,M=j?0:2,j=j?5642:5642+(Q>>4)|0,Ge=l,l=Me,Q=Qe,Xe=67;else if((Xe|0)==66)se=Jm(l,Q,Ue)|0,Ge=Qe,Xe=67;else if((Xe|0)==71)Xe=0,Qe=OUe(Q,0,k)|0,Me=(Qe|0)==0,l=Q,M=0,j=5642,se=Me?Q+k|0:Qe,Q=Me?k:Qe-Q|0,k=Ge;else if((Xe|0)==75){for(Xe=0,j=Q,l=0,k=0;M=n[j>>2]|0,!(!M||(k=a7(Nr,M)|0,(k|0)<0|k>>>0>(se-l|0)>>>0));)if(l=k+l|0,se>>>0>l>>>0)j=j+4|0;else break;if((k|0)<0){m=-1;break e}if(Bs(s,32,B,l,Qe),!l)l=0,Xe=84;else for(M=0;;){if(k=n[Q>>2]|0,!k){Xe=84;break t}if(k=a7(Nr,k)|0,M=k+M|0,(M|0)>(l|0)){Xe=84;break t}if(ss(s,Nr,k),M>>>0>=l>>>0){Xe=84;break}else Q=Q+4|0}}while(0);if((Xe|0)==67)Xe=0,Q=(l|0)!=0|(Q|0)!=0,Qe=(k|0)!=0|Q,Q=((Q^1)&1)+(je-se)|0,l=Qe?se:Ue,se=Ue,Q=Qe?(k|0)>(Q|0)?k:Q:k,k=(k|0)>-1?Ge&-65537:Ge;else if((Xe|0)==84){Xe=0,Bs(s,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=et;continue}Me=se-l|0,Ge=(Q|0)<(Me|0)?Me:Q,Qe=Ge+M|0,B=(B|0)<(Qe|0)?Qe:B,Bs(s,32,B,Qe,k),ss(s,j,M),Bs(s,48,B,Qe,k^65536),Bs(s,48,Ge,Me,0),ss(s,l,Me),Bs(s,32,B,Qe,k^8192),l=et}e:do if((Xe|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(o7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(0);return C=ir,m|0}function FUe(s){return s=s|0,0}function RUe(s){s=s|0}function ss(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||KUe(l,c,s)|0}function s7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function o7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+(4-1)&~(4-1),l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+(8-1)&~(8-1),l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+(4-1)&~(4-1),f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+(8-1)&~(8-1),m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(0);while(0)}function TUe(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=mD(s|0,l|0,4)|0,l=Se;while(!((s|0)==0&(l|0)==0));return c|0}function NUe(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=mD(s|0,l|0,3)|0,l=Se;while(!((s|0)==0&(l|0)==0));return c|0}function Jm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=QR(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=kR(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Se;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function LUe(s){return s=s|0,jUe(s,n[(qUe()|0)+188>>2]|0)|0}function OUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(0);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=qe(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(0);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(0);return(c|0?s:0)|0}function Bs(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,Xm(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do ss(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}ss(s,m,d)}C=B}function a7(s,l){return s=s|0,l=l|0,s?s=_Ue(s,l,0)|0:s=0,s|0}function MUe(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0,Qe=0,et=0,Xe=0,lt=0,Ue=0,je=0,Lt=0,Mr=0,or=0,Xt=0,Sr=0,Nr=0,ir=0,xn=0;xn=C,C=C+560|0,Q=xn+8|0,et=xn,ir=xn+524|0,Nr=ir,M=xn+512|0,n[et>>2]=0,Sr=M+12|0,l7(l)|0,(Se|0)<0?(l=-l,or=1,Mr=5659):(or=(d&2049|0)!=0&1,Mr=(d&2048|0)==0?(d&1|0)==0?5660:5665:5662),l7(l)|0,Xt=Se&2146435072;do if(Xt>>>0<2146435072|(Xt|0)==2146435072&0<0){if(Ge=+UUe(l,et)*2,B=Ge!=0,B&&(n[et>>2]=(n[et>>2]|0)+-1),lt=m|32,(lt|0)==97){Me=m&32,se=(Me|0)==0?Mr:Mr+9|0,j=or|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=Ge;else{l=8;do B=B+-1|0,l=l*16;while((B|0)!=0);if((o[se>>0]|0)==45){l=-(l+(-Ge-l));break}else{l=Ge+l-l;break}}while(0);k=n[et>>2]|0,B=(k|0)<0?0-k|0:k,B=Jm(B,((B|0)<0)<<31>>31,Sr)|0,(B|0)==(Sr|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(k>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,Q=(d&8|0)==0,B=ir;do Xt=~~l,k=B+1|0,o[B>>0]=u[5694+Xt>>0]|Me,l=(l-+(Xt|0))*16,(k-Nr|0)==1&&!(Q&(M&l==0))?(o[k>>0]=46,B=B+2|0):B=k;while(l!=0);Xt=B-Nr|0,Nr=Sr-O|0,Sr=(f|0)!=0&(Xt+-2|0)<(f|0)?f+2|0:Xt,B=Nr+j+Sr|0,Bs(s,32,c,B,d),ss(s,se,j),Bs(s,48,c,B,d^65536),ss(s,ir,Xt),Bs(s,48,Sr-Xt|0,0,0),ss(s,O,Nr),Bs(s,32,c,B,d^8192);break}k=(f|0)<0?6:f,B?(B=(n[et>>2]|0)+-28|0,n[et>>2]=B,l=Ge*268435456):(l=Ge,B=n[et>>2]|0),Xt=(B|0)<0?Q:Q+288|0,Q=Xt;do je=~~l>>>0,n[Q>>2]=je,Q=Q+4|0,l=(l-+(je>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Xt,j=Q;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){Q=0;do Ue=h7(n[B>>2]|0,0,O|0)|0,Ue=xR(Ue|0,Se|0,Q|0,0)|0,je=Se,Xe=QR(Ue|0,je|0,1e9,0)|0,n[B>>2]=Xe,Q=kR(Ue|0,je|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);Q&&(M=M+-4|0,n[M>>2]=Q)}for(Q=j;!(Q>>>0<=M>>>0);)if(B=Q+-4|0,!(n[B>>2]|0))Q=B;else break;if(B=(n[et>>2]|0)-O|0,n[et>>2]=B,(B|0)>0)j=Q;else break}else M=Xt;if((B|0)<0){f=((k+25|0)/9|0)+1|0,Qe=(lt|0)==102;do{if(Me=0-B|0,Me=(Me|0)<9?Me:9,M>>>0>>0){O=(1<>>Me,se=0,B=M;do je=n[B>>2]|0,n[B>>2]=(je>>>Me)+se,se=qe(je&O,j)|0,B=B+4|0;while(B>>>0>>0);B=(n[M>>2]|0)==0?M+4|0:M,se?(n[Q>>2]=se,M=B,B=Q+4|0):(M=B,B=Q)}else M=(n[M>>2]|0)==0?M+4|0:M,B=Q;Q=Qe?Xt:M,Q=(B-Q>>2|0)>(f|0)?Q+(f<<2)|0:B,B=(n[et>>2]|0)+Me|0,n[et>>2]=B}while((B|0)<0);B=M,f=Q}else B=M,f=Q;if(je=Xt,B>>>0>>0){if(Q=(je-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,Q=Q+1|0;while(O>>>0>=M>>>0)}}else Q=0;if(Qe=(lt|0)==103,Xe=(k|0)!=0,M=k-((lt|0)!=102?Q:0)+((Xe&Qe)<<31>>31)|0,(M|0)<(((f-je>>2)*9|0)+-9|0)){if(M=M+9216|0,Me=Xt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Me>>2]|0,se=(j>>>0)%(O>>>0)|0,M=(Me+4|0)==(f|0),M&(se|0)==0)M=Me;else if(Ge=(((j>>>0)/(O>>>0)|0)&1|0)==0?9007199254740992:9007199254740994,Ue=(O|0)/2|0,l=se>>>0>>0?.5:M&(se|0)==(Ue|0)?1:1.5,or&&(Ue=(o[Mr>>0]|0)==45,l=Ue?-l:l,Ge=Ue?-Ge:Ge),M=j-se|0,n[Me>>2]=M,Ge+l!=Ge){if(Ue=M+O|0,n[Me>>2]=Ue,Ue>>>0>999999999)for(Q=Me;M=Q+-4|0,n[Q>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),Ue=(n[M>>2]|0)+1|0,n[M>>2]=Ue,Ue>>>0>999999999;)Q=M;else M=Me;if(Q=(je-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,Q=Q+1|0;while(j>>>0>=O>>>0)}}else M=Me;M=M+4|0,M=f>>>0>M>>>0?M:f,Ue=B}else M=f,Ue=B;for(lt=M;;){if(lt>>>0<=Ue>>>0){et=0;break}if(B=lt+-4|0,!(n[B>>2]|0))lt=B;else{et=1;break}}f=0-Q|0;do if(Qe)if(B=((Xe^1)&1)+k|0,(B|0)>(Q|0)&(Q|0)>-5?(O=m+-1|0,k=B+-1-Q|0):(O=m+-2|0,k=B+-1|0),B=d&8,B)Me=B;else{if(et&&(Lt=n[lt+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((lt-je>>2)*9|0)+-9|0,(O|32|0)==102){Me=B-M|0,Me=(Me|0)>0?Me:0,k=(k|0)<(Me|0)?k:Me,Me=0;break}else{Me=B+Q-M|0,Me=(Me|0)>0?Me:0,k=(k|0)<(Me|0)?k:Me,Me=0;break}}else O=m,Me=d&8;while(0);if(Qe=k|Me,j=(Qe|0)!=0&1,se=(O|32|0)==102,se)Xe=0,B=(Q|0)>0?Q:0;else{if(B=(Q|0)<0?f:Q,B=Jm(B,((B|0)<0)<<31>>31,Sr)|0,M=Sr,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(Q>>31&2)+43,B=B+-2|0,o[B>>0]=O,Xe=B,B=M-B|0}if(B=or+1+k+j+B|0,Bs(s,32,c,B,d),ss(s,Mr,or),Bs(s,48,c,B,d^65536),se){O=Ue>>>0>Xt>>>0?Xt:Ue,Me=ir+9|0,j=Me,se=ir+8|0,M=O;do{if(Q=Jm(n[M>>2]|0,0,Me)|0,(M|0)==(O|0))(Q|0)==(Me|0)&&(o[se>>0]=48,Q=se);else if(Q>>>0>ir>>>0){Xm(ir|0,48,Q-Nr|0)|0;do Q=Q+-1|0;while(Q>>>0>ir>>>0)}ss(s,Q,j-Q|0),M=M+4|0}while(M>>>0<=Xt>>>0);if(Qe|0&&ss(s,5710,1),M>>>0>>0&(k|0)>0)for(;;){if(Q=Jm(n[M>>2]|0,0,Me)|0,Q>>>0>ir>>>0){Xm(ir|0,48,Q-Nr|0)|0;do Q=Q+-1|0;while(Q>>>0>ir>>>0)}if(ss(s,Q,(k|0)<9?k:9),M=M+4|0,Q=k+-9|0,M>>>0>>0&(k|0)>9)k=Q;else{k=Q;break}}Bs(s,48,k+9|0,9,0)}else{if(Qe=et?lt:Ue+4|0,(k|0)>-1){et=ir+9|0,Me=(Me|0)==0,f=et,j=0-Nr|0,se=ir+8|0,O=Ue;do{Q=Jm(n[O>>2]|0,0,et)|0,(Q|0)==(et|0)&&(o[se>>0]=48,Q=se);do if((O|0)==(Ue|0)){if(M=Q+1|0,ss(s,Q,1),Me&(k|0)<1){Q=M;break}ss(s,5710,1),Q=M}else{if(Q>>>0<=ir>>>0)break;Xm(ir|0,48,Q+j|0)|0;do Q=Q+-1|0;while(Q>>>0>ir>>>0)}while(0);Nr=f-Q|0,ss(s,Q,(k|0)>(Nr|0)?Nr:k),k=k-Nr|0,O=O+4|0}while(O>>>0>>0&(k|0)>-1)}Bs(s,48,k+18|0,18,0),ss(s,Xe,Sr-Xe|0)}Bs(s,32,c,B,d^8192)}else ir=(m&32|0)!=0,B=or+3|0,Bs(s,32,c,B,d&-65537),ss(s,Mr,or),ss(s,l!=l|!1?ir?5686:5690:ir?5678:5682,3),Bs(s,32,c,B,d^8192);while(0);return C=xn,((B|0)<(c|0)?c:B)|0}function l7(s){s=+s;var l=0;return E[v>>3]=s,l=n[v>>2]|0,Se=n[v+4>>2]|0,l|0}function UUe(s,l){return s=+s,l=l|0,+ +c7(s,l)}function c7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[v>>3]=s,c=n[v>>2]|0,f=n[v+4>>2]|0,d=mD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+c7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[v>>2]=c,n[v+4>>2]=f&-2146435073|1071644672,s=+E[v>>3]}return+s}function _Ue(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(HUe()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(Vm()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(Vm()|0)>>2]=84,s=-1;break}}else s=1;while(0);return s|0}function HUe(){return SR()|0}function qUe(){return SR()|0}function jUe(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while((o[s>>0]|0)!=0);if(f=f+-1|0,f)s=5;else break}return GUe(c,n[l+20>>2]|0)|0}function GUe(s,l){return s=s|0,l=l|0,YUe(s,l)|0}function YUe(s,l){return s=s|0,l=l|0,l?l=WUe(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function WUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0;se=(n[s>>2]|0)+1794895138|0,m=Rg(n[s+8>>2]|0,se)|0,f=Rg(n[s+12>>2]|0,se)|0,d=Rg(n[s+16>>2]|0,se)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&((d|f)&3|0)==0){for(j=f>>>2,O=d>>>2,M=0;;){if(k=m>>>1,Q=M+k|0,B=Q<<1,d=B+j|0,f=Rg(n[s+(d<<2)>>2]|0,se)|0,d=Rg(n[s+(d+1<<2)>>2]|0,se)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=n7(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:Q,m=f?k:m-k|0}f=B+O|0,d=Rg(n[s+(f<<2)>>2]|0,se)|0,f=Rg(n[s+(f+1<<2)>>2]|0,se)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=(o[s+(f+d)>>0]|0)==0?s+f|0:0:f=0}else f=0;while(0);return f|0}function Rg(s,l){s=s|0,l=l|0;var c=0;return c=m7(s|0)|0,((l|0)==0?s:c)|0}function KUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=c+16|0,d=n[f>>2]|0,d?m=5:VUe(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(k=c+20|0,B=n[k>>2]|0,f=B,(d-B|0)>>>0>>0){f=ED[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=ED[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[k>>2]|0}else m=0,d=s;while(0);Dr(f|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,f=m+l|0}while(0);return f|0}function VUe(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function _n(s,l){s=y(s),l=y(l);var c=0,f=0;c=u7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=u7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[v>>2]|0|0}function Tg(s,l){s=y(s),l=y(l);var c=0,f=0;c=A7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=A7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[v>>2]|0|0}function bR(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,k=0,Q=0,M=0;m=(h[v>>2]=s,n[v>>2]|0),k=(h[v>>2]=l,n[v>>2]|0),c=m>>>23&255,B=k>>>23&255,Q=m&-2147483648,d=k<<1;e:do if((d|0)!=0&&!((c|0)==255|((JUe(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=f-k|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-k|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(0);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[v>>2]=c|Q,y(h[v>>2]))}else M=3;while(0);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function JUe(s){return s=y(s),h[v>>2]=s,n[v>>2]|0|0}function zUe(s,l){return s=s|0,l=l|0,i7(n[582]|0,s,l)|0}function zr(s){s=s|0,Rt()}function zm(s){s=s|0}function XUe(s,l){return s=s|0,l=l|0,0}function ZUe(s){return s=s|0,(f7(s+4|0)|0)==-1?(tf[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function f7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function kp(s){s=s|0,ZUe(s)|0&&$Ue(s)}function $Ue(s){s=s|0;var l=0;l=s+8|0,(n[l>>2]|0)!=0&&(f7(l)|0)!=-1||tf[n[(n[s>>2]|0)+16>>2]&127](s)}function Kt(s){s=s|0;var l=0;for(l=(s|0)==0?1:s;s=pD(l)|0,!(s|0);){if(s=t3e()|0,!s){s=0;break}P7[s&0]()}return s|0}function p7(s){return s=s|0,Kt(s)|0}function gt(s){s=s|0,hD(s)}function e3e(s){s=s|0,(o[s+11>>0]|0)<0&>(n[s>>2]|0)}function t3e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function r3e(){}function dD(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Se=f,s-c>>>0|0|0}function xR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Se=l+f+(c>>>0>>0|0)>>>0,c|0|0}function Xm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function h7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Se=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function Dr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return Ac(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function g7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function d7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,Q=0,M=0,O=0,j=0,se=0,Ge=0,Me=0;if(O=s,Q=l,M=Q,B=c,se=f,k=se,!M)return m=(d|0)!=0,k?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,se=0,d=0,Se=se,d|0):(se=0,d=0,Se=se,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),se=0,d=(O>>>0)/(B>>>0)>>>0,Se=se,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=31){j=m+1|0,k=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<>>(j>>>0)&l,m=0,k=O<>2]=s|0,n[d+4>>2]=Q|l&0,se=0,d=0,Se=se,d|0):(se=0,d=0,Se=se,d|0)}if(m=B-1|0,m&B|0){k=(P(B|0)|0)+33-(P(M|0)|0)|0,Me=64-k|0,j=32-k|0,Q=j>>31,Ge=k-32|0,l=Ge>>31,B=k,s=j-1>>31&M>>>(Ge>>>0)|(M<>>(k>>>0))&l,l=l&M>>>(k>>>0),m=O<>>(Ge>>>0))&Q|O<>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(Ge=Q|l&0,Me=s|0|0,Se=Ge,Me|0):(Me=g7(B|0)|0,Ge=M>>>(Me>>>0)|0,Me=M<<32-Me|O>>>(Me>>>0)|0,Se=Ge,Me|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),Ge=0,Me=(M>>>0)/(B>>>0)>>>0,Se=Ge,Me|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(k>>>0)),Ge=0,Me=(M>>>0)/(k>>>0)>>>0,Se=Ge,Me|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),Ge=0,Me=M>>>((g7(k|0)|0)>>>0),Se=Ge,Me|0;if(m=(P(k|0)|0)-(P(M|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,s=M<>>(l>>>0),l=M>>>(l>>>0),m=0,k=O<>2]=s|0,n[d+4>>2]=Q|l&0,Ge=0,Me=0,Se=Ge,Me|0):(Ge=0,Me=0,Se=Ge,Me|0)}while(0);if(!B)M=k,Q=0,k=0;else{j=c|0|0,O=se|f&0,M=xR(j|0,O|0,-1,-1)|0,c=Se,Q=k,k=0;do f=Q,Q=m>>>31|Q<<1,m=k|m<<1,f=s<<1|f>>>31|0,se=s>>>31|l<<1|0,dD(M|0,c|0,f|0,se|0)|0,Me=Se,Ge=Me>>31|((Me|0)<0?-1:0)<<1,k=Ge&1,s=dD(f|0,se|0,Ge&j|0,(((Me|0)<0?-1:0)>>31|((Me|0)<0?-1:0)<<1)&O|0)|0,l=Se,B=B-1|0;while((B|0)!=0);M=Q,Q=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),Ge=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|Q,Me=(m<<1|0>>>31)&-2|k,Se=Ge,Me|0}function kR(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,d7(s,l,c,f,0)|0}function Qp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[I>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(ie()|0,DA(12),-1):(n[I>>2]=s,(s|0)>(Z()|0)&&(X()|0)==0?(n[I>>2]=l,DA(12),-1):l|0)}function Mw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else Dr(s,l,c)|0;return s|0}function QR(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,d7(s,l,c,f,d)|0,C=m,Se=n[d+4>>2]|0,n[d>>2]|0|0}function m7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function n3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,y7[s&1](l|0,c|0,f|0,d|0,m|0)}function i3e(s,l,c){s=s|0,l=l|0,c=y(c),E7[s&1](l|0,y(c))}function s3e(s,l,c){s=s|0,l=l|0,c=+c,C7[s&31](l|0,+c)}function o3e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(w7[s&0](l|0,y(c),y(f)))}function a3e(s,l){s=s|0,l=l|0,tf[s&127](l|0)}function l3e(s,l,c){s=s|0,l=l|0,c=c|0,rf[s&31](l|0,c|0)}function c3e(s,l){return s=s|0,l=l|0,Lg[s&31](l|0)|0}function u3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,I7[s&1](l|0,+c,+f,d|0)}function A3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,Y3e[s&1](l|0,+c,+f)}function f3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,ED[s&7](l|0,c|0,f|0)|0}function p3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+W3e[s&1](l|0,c|0,f|0)}function h3e(s,l){return s=s|0,l=l|0,+B7[s&15](l|0)}function g3e(s,l,c){return s=s|0,l=l|0,c=+c,K3e[s&1](l|0,+c)|0}function d3e(s,l,c){return s=s|0,l=l|0,c=c|0,RR[s&15](l|0,c|0)|0}function m3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,V3e[s&1](l|0,c|0,+f,+d,m|0)}function y3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,J3e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function E3e(s,l,c){return s=s|0,l=l|0,c=c|0,+v7[s&7](l|0,c|0)}function C3e(s){return s=s|0,CD[s&7]()|0}function w3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,D7[s&1](l|0,c|0,f|0,d|0,m|0)|0}function I3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,z3e[s&1](l|0,c|0,f|0,+d)}function B3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,S7[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function v3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,Hw[s&15](l|0,c|0,f|0)}function D3e(s){s=s|0,P7[s&0]()}function S3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,b7[s&15](l|0,c|0,+f)}function P3e(s,l,c){return s=s|0,l=+l,c=+c,X3e[s&1](+l,+c)|0}function b3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,TR[s&15](l|0,c|0,f|0,d|0)}function x3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(0)}function k3e(s,l){s=s|0,l=y(l),F(1)}function ma(s,l){s=s|0,l=+l,F(2)}function Q3e(s,l,c){return s=s|0,l=y(l),c=y(c),F(3),Ze}function Er(s){s=s|0,F(4)}function Uw(s,l){s=s|0,l=l|0,F(5)}function Ja(s){return s=s|0,F(6),0}function F3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,F(7)}function R3e(s,l,c){s=s|0,l=+l,c=+c,F(8)}function T3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(9),0}function N3e(s,l,c){return s=s|0,l=l|0,c=c|0,F(10),0}function Ng(s){return s=s|0,F(11),0}function L3e(s,l){return s=s|0,l=+l,F(12),0}function _w(s,l){return s=s|0,l=l|0,F(13),0}function O3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,F(14)}function M3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,F(15)}function FR(s,l){return s=s|0,l=l|0,F(16),0}function U3e(){return F(17),0}function _3e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,F(18),0}function H3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,F(19)}function q3e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,F(20)}function yD(s,l,c){s=s|0,l=l|0,c=c|0,F(21)}function j3e(){F(22)}function Zm(s,l,c){s=s|0,l=l|0,c=+c,F(23)}function G3e(s,l){return s=+s,l=+l,F(24),0}function $m(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,F(25)}var y7=[x3e,_Le],E7=[k3e,fo],C7=[ma,xw,kw,EF,CF,Dl,Qw,wF,qm,bu,Rw,IF,$v,KA,eD,jm,tD,rD,Gm,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma,ma],w7=[Q3e],tf=[Er,zm,CDe,wDe,IDe,Xbe,Zbe,$be,gNe,dNe,mNe,PLe,bLe,xLe,J4e,z4e,X4e,hs,Vv,Hm,WA,Fw,dve,mve,uDe,kDe,qDe,oSe,ISe,USe,rPe,mPe,FPe,VPe,ube,Sbe,qbe,dxe,Fxe,Vxe,uke,Ske,qke,aQe,IQe,LQe,ZQe,Pc,xFe,YFe,uRe,bRe,jRe,uTe,CTe,BTe,_Te,jTe,oNe,ENe,INe,UNe,nLe,i5,MOe,gMe,kMe,YMe,p4e,b4e,U4e,q4e,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er,Er],rf=[Uw,fF,pF,bw,Pu,hF,gF,Bp,dF,mF,yF,Zv,VA,Ve,ft,Wt,vr,Pn,Fr,vF,nve,Sve,AQe,DQe,FRe,HOe,ALe,q9,Uw,Uw,Uw,Uw],Lg=[Ja,SUe,AF,D,Ae,De,vt,wt,xt,_r,di,po,eve,tve,yve,tFe,KRe,qNe,YOe,Wa,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja,Ja],I7=[F3e,Eve],Y3e=[R3e,cNe],ED=[T3e,r7,PUe,kUe,jSe,Cxe,RFe,JMe],W3e=[N3e,hbe],B7=[Ng,Yo,rt,bn,Cve,wve,Ive,Bve,vve,Dve,Ng,Ng,Ng,Ng,Ng,Ng],K3e=[L3e,mTe],RR=[_w,XUe,rve,hDe,uSe,sPe,CPe,Wbe,Lxe,_Qe,Wv,TMe,_w,_w,_w,_w],V3e=[O3e,WDe],J3e=[M3e,m4e],v7=[FR,ai,Pve,bve,xve,kbe,FR,FR],CD=[U3e,kve,Sw,ga,PTe,KTe,SNe,W4e],D7=[_3e,Cw],z3e=[H3e,hke],S7=[q3e,ive],Hw=[yD,T,is,tn,ho,SSe,NPe,kke,Wke,_m,cOe,EMe,F4e,yD,yD,yD],P7=[j3e],b7=[Zm,Jv,zv,Xv,YA,nD,BF,S,Zxe,JFe,pTe,Zm,Zm,Zm,Zm,Zm],X3e=[G3e,pNe],TR=[$m,ZPe,cFe,hRe,rTe,RTe,$Te,RNe,lLe,XOe,nUe,$m,$m,$m,$m,$m];return{_llvm_bswap_i32:m7,dynCall_idd:P3e,dynCall_i:C3e,_i64Subtract:dD,___udivdi3:kR,dynCall_vif:i3e,setThrew:hu,dynCall_viii:v3e,_bitshift64Lshr:mD,_bitshift64Shl:h7,dynCall_vi:a3e,dynCall_viiddi:m3e,dynCall_diii:p3e,dynCall_iii:d3e,_memset:Xm,_sbrk:Qp,_memcpy:Dr,__GLOBAL__sub_I_Yoga_cpp:Um,dynCall_vii:l3e,___uremdi3:QR,dynCall_vid:s3e,stackAlloc:lo,_nbind_init:hUe,getTempRet0:Ua,dynCall_di:h3e,dynCall_iid:g3e,setTempRet0:xA,_i64Add:xR,dynCall_fiff:o3e,dynCall_iiii:f3e,_emscripten_get_global_libc:DUe,dynCall_viid:S3e,dynCall_viiid:I3e,dynCall_viififi:B3e,dynCall_ii:c3e,__GLOBAL__sub_I_Binding_cc:kOe,dynCall_viiii:b3e,dynCall_iiiiii:w3e,stackSave:gc,dynCall_viiiii:n3e,__GLOBAL__sub_I_nbind_cc:Qve,dynCall_vidd:A3e,_free:hD,runPostSets:r3e,dynCall_viiiiii:y3e,establishStackSpace:qi,_memmove:Mw,stackRestore:pu,_malloc:pD,__GLOBAL__sub_I_common_cc:zNe,dynCall_viddi:u3e,dynCall_dii:E3e,dynCall_v:D3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<4-1;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var am=_((wKt,NEe)=>{"use strict";var Gyt=REe(),Yyt=TEe(),x6=!1,k6=null;Yyt({},function(t,e){if(!x6){if(x6=!0,t)throw t;k6=e}});if(!x6)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");NEe.exports=Gyt(k6.bind,k6.lib)});var F6=_((IKt,Q6)=>{"use strict";var LEe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);Q6.exports=LEe;Q6.exports.default=LEe});var MEe=_((BKt,OEe)=>{"use strict";OEe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var Kk=_((vKt,R6)=>{"use strict";var Wyt=OS(),Kyt=F6(),Vyt=MEe(),UEe=t=>{if(typeof t!="string"||t.length===0||(t=Wyt(t),t.length===0))return 0;t=t.replace(Vyt()," ");let e=0;for(let r=0;r=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=Kyt(o)?2:1)}return e};R6.exports=UEe;R6.exports.default=UEe});var N6=_((DKt,T6)=>{"use strict";var Jyt=Kk(),_Ee=t=>{let e=0;for(let r of t.split(` `))e=Math.max(e,Jyt(r));return e};T6.exports=_Ee;T6.exports.default=_Ee});var HEe=_(cB=>{"use strict";var zyt=cB&&cB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cB,"__esModule",{value:!0});var Xyt=zyt(N6()),L6={};cB.default=t=>{if(t.length===0)return{width:0,height:0};if(L6[t])return L6[t];let e=Xyt.default(t),r=t.split(` `).length;return L6[t]={width:e,height:r},{width:e,height:r}}});var qEe=_(uB=>{"use strict";var Zyt=uB&&uB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uB,"__esModule",{value:!0});var dn=Zyt(am()),$yt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?dn.default.POSITION_TYPE_ABSOLUTE:dn.default.POSITION_TYPE_RELATIVE)},eEt=(t,e)=>{"marginLeft"in e&&t.setMargin(dn.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(dn.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(dn.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(dn.default.EDGE_BOTTOM,e.marginBottom||0)},tEt=(t,e)=>{"paddingLeft"in e&&t.setPadding(dn.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(dn.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(dn.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(dn.default.EDGE_BOTTOM,e.paddingBottom||0)},rEt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(dn.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(dn.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(dn.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(dn.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(dn.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(dn.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(dn.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(dn.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(dn.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(dn.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(dn.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(dn.default.JUSTIFY_SPACE_AROUND))},nEt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},iEt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?dn.default.DISPLAY_FLEX:dn.default.DISPLAY_NONE)},sEt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(dn.default.EDGE_TOP,r),t.setBorder(dn.default.EDGE_BOTTOM,r),t.setBorder(dn.default.EDGE_LEFT,r),t.setBorder(dn.default.EDGE_RIGHT,r)}};uB.default=(t,e={})=>{$yt(t,e),eEt(t,e),tEt(t,e),rEt(t,e),nEt(t,e),iEt(t,e),sEt(t,e)}});var YEe=_((bKt,GEe)=>{"use strict";var AB=Kk(),oEt=OS(),aEt=DI(),M6=new Set(["\x1B","\x9B"]),lEt=39,jEe=t=>`${M6.values().next().value}[${t}m`,cEt=t=>t.split(" ").map(e=>AB(e)),O6=(t,e,r)=>{let o=[...e],a=!1,n=AB(oEt(t[t.length-1]));for(let[u,A]of o.entries()){let p=AB(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),M6.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u0&&t.length>1&&(t[t.length-2]+=t.pop())},uEt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(AB(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},AEt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=cEt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=AB(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let I=e-E,v=1+Math.floor((u[p]-I-1)/e);Math.floor((u[p]-1)/e)e&&E>0&&u[p]>0){if(r.wordWrap===!1&&Ee&&r.wordWrap===!1){O6(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(uEt)),o=A.join(` `);for(let[p,h]of[...o].entries()){if(a+=h,M6.has(h)){let I=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=I===lEt?null:I}let E=aEt.codes.get(Number(n));n&&E&&(o[p+1]===` `?a+=jEe(E):h===` `&&(a+=jEe(n)))}return a};GEe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` `).split(` `).map(o=>AEt(o,e,r)).join(` `)});var VEe=_((xKt,KEe)=>{"use strict";var WEe="[\uD800-\uDBFF][\uDC00-\uDFFF]",fEt=t=>t&&t.exact?new RegExp(`^${WEe}$`):new RegExp(WEe,"g");KEe.exports=fEt});var U6=_((kKt,ZEe)=>{"use strict";var pEt=F6(),hEt=VEe(),JEe=DI(),XEe=["\x1B","\x9B"],Vk=t=>`${XEe[0]}[${t}m`,zEe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=JEe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(Vk(e?u:n))}else if(e){o.push(Vk(0));break}else o.push(Vk(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=Vk(JEe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};ZEe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let I=!1;if(XEe.includes(E)){let v=/\d[^m]*/.exec(t.slice(h,h+18));u=v&&v.length>0?v[0]:void 0,Ae&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=zEe(a);else if(A>=r){p+=zEe(a,!0,u);break}}return p}});var eCe=_((QKt,$Ee)=>{"use strict";var E0=U6(),gEt=Kk();function Jk(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}$Ee.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=gEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=Jk(t,p-e+1,!0);return u+E0(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+E0(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=Jk(t,h),I=Jk(t,p-(e-h)+1,!0);return E0(t,0,E)+u+E0(t,I,p).trim()}return E0(t,0,h)+u+E0(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=Jk(t,e-1);return E0(t,0,h)+u}return a===!0&&(u=" "+u,A=2),E0(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var H6=_(fB=>{"use strict";var tCe=fB&&fB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(fB,"__esModule",{value:!0});var dEt=tCe(YEe()),mEt=tCe(eCe()),_6={};fB.default=(t,e,r)=>{let o=t+String(e)+String(r);if(_6[o])return _6[o];let a=t;if(r==="wrap"&&(a=dEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=mEt.default(t,e,{position:n})}return _6[o]=a,a}});var j6=_(q6=>{"use strict";Object.defineProperty(q6,"__esModule",{value:!0});var rCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=rCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};q6.default=rCe});var G6=_(pi=>{"use strict";var pB=pi&&pi.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(pi,"__esModule",{value:!0});pi.setTextNodeValue=pi.createTextNode=pi.setStyle=pi.setAttribute=pi.removeChildNode=pi.insertBeforeNode=pi.appendChildNode=pi.createNode=pi.TEXT_NAME=void 0;var yEt=pB(am()),nCe=pB(HEe()),EEt=pB(qEe()),CEt=pB(H6()),wEt=pB(j6());pi.TEXT_NAME="#text";pi.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:yEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(IEt.bind(null,r))),r};pi.appendChildNode=(t,e)=>{var r;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&zk(t)};pi.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&pi.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&zk(t)};pi.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&zk(t)};pi.setAttribute=(t,e,r)=>{t.attributes[e]=r};pi.setStyle=(t,e)=>{t.style=e,t.yogaNode&&EEt.default(t.yogaNode,e)};pi.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return pi.setTextNodeValue(e,t),e};var IEt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:wEt.default(t),n=nCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=CEt.default(a,e,u);return nCe.default(A)},iCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:iCe(t.parentNode)},zk=t=>{let e=iCe(t);e?.markDirty()};pi.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,zk(t)}});var cCe=_(hB=>{"use strict";var lCe=hB&&hB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(hB,"__esModule",{value:!0});var sCe=S6(),BEt=lCe(PEe()),oCe=lCe(am()),Oo=G6(),aCe=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};hB.default=BEt.default({schedulePassiveEffects:sCe.unstable_scheduleCallback,cancelPassiveEffects:sCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>{},resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=Oo.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?Oo.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:Oo.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside component`);return Oo.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{Oo.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{Oo.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(oCe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(oCe.default.DISPLAY_FLEX)},appendInitialChild:Oo.appendChildNode,appendChild:Oo.appendChildNode,insertBefore:Oo.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:Oo.appendChildNode,insertInContainerBefore:Oo.insertBeforeNode,removeChildFromContainer:(t,e)=>{Oo.removeChildNode(t,e),aCe(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,I=Object.keys(h);for(let v of I){if(v==="borderStyle"||v==="borderColor"){if(typeof n.style!="object"){let x={};n.style=x}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[v]!==E[v]){if(typeof n.style!="object"){let x={};n.style=x}n.style[v]=h[v]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?Oo.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:Oo.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{Oo.setTextNodeValue(t,r)},removeChild:(t,e)=>{Oo.removeChildNode(t,e),aCe(e.yogaNode)}})});var ACe=_((LKt,uCe)=>{"use strict";uCe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var fCe=_(gB=>{"use strict";var vEt=gB&&gB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(gB,"__esModule",{value:!0});var Xk=vEt(am());gB.default=t=>t.getComputedWidth()-t.getComputedPadding(Xk.default.EDGE_LEFT)-t.getComputedPadding(Xk.default.EDGE_RIGHT)-t.getComputedBorder(Xk.default.EDGE_LEFT)-t.getComputedBorder(Xk.default.EDGE_RIGHT)});var pCe=_((MKt,DEt)=>{DEt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var gCe=_((UKt,Y6)=>{"use strict";var hCe=pCe();Y6.exports=hCe;Y6.exports.default=hCe});var mCe=_((_Kt,dCe)=>{"use strict";var SEt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},PEt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r `:` `)+r,a=o+1,o=t.indexOf(` `,a)}while(o!==-1);return n+=t.substr(a),n};dCe.exports={stringReplaceAll:SEt,stringEncaseCRLFWithFirstIndex:PEt}});var ICe=_((HKt,wCe)=>{"use strict";var bEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,yCe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,xEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,kEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,QEt=new Map([["n",` `],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function CCe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):QEt.get(t)||t}function FEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(xEt))r.push(a[2].replace(kEt,(A,p,h)=>p?CCe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function REt(t){yCe.lastIndex=0;let e=[],r;for(;(r=yCe.exec(t))!==null;){let o=r[1];if(r[2]){let a=FEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function ECe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(!!Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}wCe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(bEt,(n,u,A,p,h,E)=>{if(u)a.push(CCe(u));else if(p){let I=a.join("");a=[],o.push(r.length===0?I:ECe(t,r)(I)),r.push({inverse:A,styles:REt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(ECe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var rQ=_((qKt,bCe)=>{"use strict";var dB=DI(),{stdout:K6,stderr:V6}=dN(),{stringReplaceAll:TEt,stringEncaseCRLFWithFirstIndex:NEt}=mCe(),{isArray:Zk}=Array,vCe=["ansi","ansi","ansi256","ansi16m"],HC=Object.create(null),LEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=K6?K6.level:0;t.level=e.level===void 0?r:e.level},J6=class{constructor(e){return DCe(e)}},DCe=t=>{let e={};return LEt(e,t),e.template=(...r)=>PCe(e.template,...r),Object.setPrototypeOf(e,$k.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=J6,e.template};function $k(t){return DCe(t)}for(let[t,e]of Object.entries(dB))HC[t]={get(){let r=eQ(this,z6(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};HC.visible={get(){let t=eQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var SCe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of SCe)HC[t]={get(){let{level:e}=this;return function(...r){let o=z6(dB.color[vCe[e]][t](...r),dB.color.close,this._styler);return eQ(this,o,this._isEmpty)}}};for(let t of SCe){let e="bg"+t[0].toUpperCase()+t.slice(1);HC[e]={get(){let{level:r}=this;return function(...o){let a=z6(dB.bgColor[vCe[r]][t](...o),dB.bgColor.close,this._styler);return eQ(this,a,this._isEmpty)}}}}var OEt=Object.defineProperties(()=>{},{...HC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),z6=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},eQ=(t,e,r)=>{let o=(...a)=>Zk(a[0])&&Zk(a[0].raw)?BCe(o,PCe(o,...a)):BCe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,OEt),o._generator=t,o._styler=e,o._isEmpty=r,o},BCe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=TEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` `);return n!==-1&&(e=NEt(e,a,o,n)),o+e+a},W6,PCe=(t,...e)=>{let[r]=e;if(!Zk(r)||!Zk(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";var MEt=yB&&yB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(yB,"__esModule",{value:!0});var mB=MEt(rQ()),UEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,_Et=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,nQ=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);yB.default=(t,e,r)=>{if(!e)return t;if(e in mB.default){let a=nQ(e,r);return mB.default[a](t)}if(e.startsWith("#")){let a=nQ("hex",r);return mB.default[a](e)(t)}if(e.startsWith("ansi")){let a=_Et.exec(e);if(!a)return t;let n=nQ(a[1],r),u=Number(a[2]);return mB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=UEt.exec(e);if(!a)return t;let n=nQ(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return mB.default[n](u,A,p)(t)}return t}});var kCe=_(EB=>{"use strict";var xCe=EB&&EB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(EB,"__esModule",{value:!0});var HEt=xCe(gCe()),Z6=xCe(X6());EB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=HEt.default[r.style.borderStyle],p=Z6.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(Z6.default(A.vertical,u,"foreground")+` `).repeat(n-2),E=Z6.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var FCe=_(CB=>{"use strict";var lm=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var qEt=lm(am()),jEt=lm(N6()),GEt=lm(ACe()),YEt=lm(H6()),WEt=lm(fCe()),KEt=lm(j6()),VEt=lm(kCe()),JEt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` `.repeat(n)+GEt.default(e,a)}return e},QCe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===qEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),I=u;if(typeof t.internal_transform=="function"&&(I=[t.internal_transform,...u]),t.nodeName==="ink-text"){let v=KEt.default(t);if(v.length>0){let x=jEt.default(v),C=WEt.default(p);if(x>C){let R=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";v=YEt.default(v,C,R)}v=JEt(t,v),e.write(h,E,v,{transformers:I})}return}if(t.nodeName==="ink-box"&&VEt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let v of t.childNodes)QCe(v,e,{offsetX:h,offsetY:E,transformers:I,skipStaticElements:A})}};CB.default=QCe});var TCe=_((WKt,RCe)=>{"use strict";RCe.exports=t=>{t=Object.assign({onlyFirst:!1},t);let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:[a-zA-Z\\d]*(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t.onlyFirst?void 0:"g")}});var LCe=_((KKt,$6)=>{"use strict";var zEt=TCe(),NCe=t=>typeof t=="string"?t.replace(zEt(),""):t;$6.exports=NCe;$6.exports.default=NCe});var UCe=_((VKt,MCe)=>{"use strict";var OCe="[\uD800-\uDBFF][\uDC00-\uDFFF]";MCe.exports=t=>t&&t.exact?new RegExp(`^${OCe}$`):new RegExp(OCe,"g")});var HCe=_((JKt,eq)=>{"use strict";var XEt=LCe(),ZEt=UCe(),_Ce=t=>XEt(t).replace(ZEt()," ").length;eq.exports=_Ce;eq.exports.default=_Ce});var GCe=_(wB=>{"use strict";var jCe=wB&&wB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(wB,"__esModule",{value:!0});var qCe=jCe(U6()),$Et=jCe(HCe()),tq=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;!o||this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;oo.trimRight()).join(` `),height:e.length}}};wB.default=tq});var KCe=_(IB=>{"use strict";var rq=IB&&IB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(IB,"__esModule",{value:!0});var eCt=rq(am()),YCe=rq(FCe()),WCe=rq(GCe());IB.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,eCt.default.DIRECTION_LTR);let o=new WCe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});YCe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new WCe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),YCe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} `:""}}return{output:"",outputHeight:0,staticOutput:""}}});var XCe=_((ZKt,zCe)=>{"use strict";var VCe=ve("stream"),JCe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],nq={},tCt=t=>{let e=new VCe.PassThrough,r=new VCe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of JCe)nq[a]=console[a],console[a]=o[a];return()=>{for(let a of JCe)console[a]=nq[a];nq={}}};zCe.exports=tCt});var sq=_(iq=>{"use strict";Object.defineProperty(iq,"__esModule",{value:!0});iq.default=new WeakMap});var aq=_(oq=>{"use strict";Object.defineProperty(oq,"__esModule",{value:!0});var rCt=on(),ZCe=rCt.createContext({exit:()=>{}});ZCe.displayName="InternalAppContext";oq.default=ZCe});var cq=_(lq=>{"use strict";Object.defineProperty(lq,"__esModule",{value:!0});var nCt=on(),$Ce=nCt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});$Ce.displayName="InternalStdinContext";lq.default=$Ce});var Aq=_(uq=>{"use strict";Object.defineProperty(uq,"__esModule",{value:!0});var iCt=on(),ewe=iCt.createContext({stdout:void 0,write:()=>{}});ewe.displayName="InternalStdoutContext";uq.default=ewe});var pq=_(fq=>{"use strict";Object.defineProperty(fq,"__esModule",{value:!0});var sCt=on(),twe=sCt.createContext({stderr:void 0,write:()=>{}});twe.displayName="InternalStderrContext";fq.default=twe});var iQ=_(hq=>{"use strict";Object.defineProperty(hq,"__esModule",{value:!0});var oCt=on(),rwe=oCt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{}});rwe.displayName="InternalFocusContext";hq.default=rwe});var iwe=_((sVt,nwe)=>{"use strict";var aCt=/[|\\{}()[\]^$+*?.-]/g;nwe.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(aCt,"\\$&")}});var lwe=_((oVt,awe)=>{"use strict";var lCt=iwe(),cCt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",owe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));owe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var BB=class{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=BB.nodeInternals()),"cwd"in e||(e.cwd=cCt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,uCt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...owe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` `)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} `).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};swe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(ACt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],I=r[9],v=r[10]==="native",x=r[11]===")",C,R={};if(E&&(R.line=Number(E)),I&&(R.column=Number(I)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let J=h.slice(0,U-1);h=h.slice(U+1),a+=` (${J}`;break}}if(a){let L=a.match(fCt);L&&(a=L[1],C=L[2])}return swe(R,h,this._cwd),o&&(R.constructor=!0),n&&(R.evalOrigin=n,R.evalLine=A,R.evalColumn=p,R.evalFile=u&&u.replace(/\\/g,"/")),v&&(R.native=!0),a&&(R.function=a),C&&a!==C&&(R.method=C),R}};function swe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function uCt(t){if(t.length===0)return[];let e=t.map(r=>lCt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var ACt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),fCt=/^(.*?) \[as (.*?)\]$/;awe.exports=BB});var uwe=_((aVt,cwe)=>{"use strict";cwe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var fwe=_((lVt,Awe)=>{"use strict";var pCt=uwe(),hCt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};Awe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=pCt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},hCt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var sQ=_(ru=>{"use strict";var gCt=ru&&ru.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),dCt=ru&&ru.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),mCt=ru&&ru.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&gCt(e,t,r);return dCt(e,t),e},yCt=ru&&ru.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a{var{children:r}=t,o=yCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return pwe.default.createElement("ink-box",{ref:e,style:a},r)});gq.displayName="Box";gq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};ru.default=gq});var yq=_(vB=>{"use strict";var dq=vB&&vB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(vB,"__esModule",{value:!0});var ECt=dq(on()),qC=dq(rQ()),hwe=dq(X6()),mq=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=I=>(r&&(I=qC.default.dim(I)),t&&(I=hwe.default(I,t,"foreground")),e&&(I=hwe.default(I,e,"background")),o&&(I=qC.default.bold(I)),a&&(I=qC.default.italic(I)),n&&(I=qC.default.underline(I)),u&&(I=qC.default.strikethrough(I)),A&&(I=qC.default.inverse(I)),I);return ECt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};mq.displayName="Text";mq.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};vB.default=mq});var ywe=_(nu=>{"use strict";var CCt=nu&&nu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),wCt=nu&&nu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ICt=nu&&nu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&CCt(e,t,r);return wCt(e,t),e},DB=nu&&nu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(nu,"__esModule",{value:!0});var gwe=ICt(ve("fs")),fs=DB(on()),dwe=DB(lwe()),BCt=DB(fwe()),Zf=DB(sQ()),hA=DB(yq()),mwe=new dwe.default({cwd:process.cwd(),internals:dwe.default.nodeInternals()}),vCt=({error:t})=>{let e=t.stack?t.stack.split(` `).slice(1):void 0,r=e?mwe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&gwe.existsSync(r.file)){let n=gwe.readFileSync(r.file,"utf8");if(o=BCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return fs.default.createElement(Zf.default,{flexDirection:"column",padding:1},fs.default.createElement(Zf.default,null,fs.default.createElement(hA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),fs.default.createElement(hA.default,null," ",t.message)),r&&fs.default.createElement(Zf.default,{marginTop:1},fs.default.createElement(hA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&fs.default.createElement(Zf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>fs.default.createElement(Zf.default,{key:n},fs.default.createElement(Zf.default,{width:a+1},fs.default.createElement(hA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),fs.default.createElement(hA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&fs.default.createElement(Zf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` `).slice(1).map(n=>{let u=mwe.parseLine(n);return u?fs.default.createElement(Zf.default,{key:n},fs.default.createElement(hA.default,{dimColor:!0},"- "),fs.default.createElement(hA.default,{dimColor:!0,bold:!0},u.function),fs.default.createElement(hA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):fs.default.createElement(Zf.default,{key:n},fs.default.createElement(hA.default,{dimColor:!0},"- "),fs.default.createElement(hA.default,{dimColor:!0,bold:!0},n))})))};nu.default=vCt});var Cwe=_(iu=>{"use strict";var DCt=iu&&iu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),SCt=iu&&iu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),PCt=iu&&iu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&DCt(e,t,r);return SCt(e,t),e},um=iu&&iu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(iu,"__esModule",{value:!0});var cm=PCt(on()),Ewe=um(g6()),bCt=um(aq()),xCt=um(cq()),kCt=um(Aq()),QCt=um(pq()),FCt=um(iQ()),RCt=um(ywe()),TCt=" ",NCt="\x1B[Z",LCt="\x1B",oQ=class extends cm.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===LCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===TCt&&this.focusNext(),e===NCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focusNext=()=>{this.setState(e=>{let r=e.focusables[0].id;return{activeFocusId:this.findNextFocusable(e)||r}})},this.focusPrevious=()=>{this.setState(e=>{let r=e.focusables[e.focusables.length-1].id;return{activeFocusId:this.findPreviousFocusable(e)||r}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r+1;o{let r=e.focusables.findIndex(o=>o.id===e.activeFocusId);for(let o=r-1;o>=0;o--)if(e.focusables[o].isActive)return e.focusables[o].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return cm.default.createElement(bCt.default.Provider,{value:{exit:this.handleExit}},cm.default.createElement(xCt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},cm.default.createElement(kCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},cm.default.createElement(QCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},cm.default.createElement(FCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious}},this.state.error?cm.default.createElement(RCt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){Ewe.default.hide(this.props.stdout)}componentWillUnmount(){Ewe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};iu.default=oQ;oQ.displayName="InternalApp"});var Bwe=_(su=>{"use strict";var OCt=su&&su.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),MCt=su&&su.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),UCt=su&&su.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&OCt(e,t,r);return MCt(e,t),e},ou=su&&su.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(su,"__esModule",{value:!0});var _Ct=ou(on()),wwe=lM(),HCt=ou(lEe()),qCt=ou(u6()),jCt=ou(hEe()),GCt=ou(dEe()),Eq=ou(cCe()),YCt=ou(KCe()),WCt=ou(h6()),KCt=ou(XCe()),VCt=UCt(G6()),JCt=ou(sq()),zCt=ou(Cwe()),jC=process.env.CI==="false"?!1:jCt.default,Iwe=()=>{},Cq=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=YCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` `;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(jC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(qCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},GCt.default(this),this.options=e,this.rootNode=VCt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:wwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=HCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:wwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=Eq.default.createContainer(this.rootNode,!1,!1),this.unsubscribeExit=WCt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),jC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=_Ct.default.createElement(zCt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);Eq.default.updateContainer(r,this.container,null,Iwe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(jC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(jC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),jC?this.options.stdout.write(this.lastOutput+` `):this.options.debug||this.log.done(),this.isUnmounted=!0,Eq.default.updateContainer(null,this.container,null,Iwe),JCt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!jC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=KCt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};su.default=Cq});var Dwe=_(SB=>{"use strict";var vwe=SB&&SB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(SB,"__esModule",{value:!0});var XCt=vwe(Bwe()),aQ=vwe(sq()),ZCt=ve("stream"),$Ct=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},ewt(e)),o=twt(r.stdout,()=>new XCt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>aQ.default.delete(r.stdout),clear:o.clear}};SB.default=$Ct;var ewt=(t={})=>t instanceof ZCt.Stream?{stdout:t,stdin:process.stdin}:t,twt=(t,e)=>{let r;return aQ.default.has(t)?r=aQ.default.get(t):(r=e(),aQ.default.set(t,r)),r}});var Pwe=_($f=>{"use strict";var rwt=$f&&$f.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),nwt=$f&&$f.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),iwt=$f&&$f.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&rwt(e,t,r);return nwt(e,t),e};Object.defineProperty($f,"__esModule",{value:!0});var PB=iwt(on()),Swe=t=>{let{items:e,children:r,style:o}=t,[a,n]=PB.useState(0),u=PB.useMemo(()=>e.slice(a),[e,a]);PB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=PB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return PB.default.createElement("ink-box",{internal_static:!0,style:p},A)};Swe.displayName="Static";$f.default=Swe});var xwe=_(bB=>{"use strict";var swt=bB&&bB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bB,"__esModule",{value:!0});var owt=swt(on()),bwe=({children:t,transform:e})=>t==null?null:owt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);bwe.displayName="Transform";bB.default=bwe});var Qwe=_(xB=>{"use strict";var awt=xB&&xB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(xB,"__esModule",{value:!0});var lwt=awt(on()),kwe=({count:t=1})=>lwt.default.createElement("ink-text",null,` `.repeat(t));kwe.displayName="Newline";xB.default=kwe});var Twe=_(kB=>{"use strict";var Fwe=kB&&kB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kB,"__esModule",{value:!0});var cwt=Fwe(on()),uwt=Fwe(sQ()),Rwe=()=>cwt.default.createElement(uwt.default,{flexGrow:1});Rwe.displayName="Spacer";kB.default=Rwe});var lQ=_(QB=>{"use strict";var Awt=QB&&QB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(QB,"__esModule",{value:!0});var fwt=on(),pwt=Awt(cq()),hwt=()=>fwt.useContext(pwt.default);QB.default=hwt});var Lwe=_(FB=>{"use strict";var gwt=FB&&FB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(FB,"__esModule",{value:!0});var Nwe=on(),dwt=gwt(lQ()),mwt=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=dwt.default();Nwe.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),Nwe.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+"a".charCodeAt(0)-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};FB.default=mwt});var Owe=_(RB=>{"use strict";var ywt=RB&&RB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(RB,"__esModule",{value:!0});var Ewt=on(),Cwt=ywt(aq()),wwt=()=>Ewt.useContext(Cwt.default);RB.default=wwt});var Mwe=_(TB=>{"use strict";var Iwt=TB&&TB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(TB,"__esModule",{value:!0});var Bwt=on(),vwt=Iwt(Aq()),Dwt=()=>Bwt.useContext(vwt.default);TB.default=Dwt});var Uwe=_(NB=>{"use strict";var Swt=NB&&NB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(NB,"__esModule",{value:!0});var Pwt=on(),bwt=Swt(pq()),xwt=()=>Pwt.useContext(bwt.default);NB.default=xwt});var Hwe=_(OB=>{"use strict";var _we=OB&&OB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(OB,"__esModule",{value:!0});var LB=on(),kwt=_we(iQ()),Qwt=_we(lQ()),Fwt=({isActive:t=!0,autoFocus:e=!1}={})=>{let{isRawModeSupported:r,setRawMode:o}=Qwt.default(),{activeId:a,add:n,remove:u,activate:A,deactivate:p}=LB.useContext(kwt.default),h=LB.useMemo(()=>Math.random().toString().slice(2,7),[]);return LB.useEffect(()=>(n(h,{autoFocus:e}),()=>{u(h)}),[h,e]),LB.useEffect(()=>{t?A(h):p(h)},[t,h]),LB.useEffect(()=>{if(!(!r||!t))return o(!0),()=>{o(!1)}},[t]),{isFocused:Boolean(h)&&a===h}};OB.default=Fwt});var qwe=_(MB=>{"use strict";var Rwt=MB&&MB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(MB,"__esModule",{value:!0});var Twt=on(),Nwt=Rwt(iQ()),Lwt=()=>{let t=Twt.useContext(Nwt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious}};MB.default=Lwt});var jwe=_(wq=>{"use strict";Object.defineProperty(wq,"__esModule",{value:!0});wq.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ic=_(ro=>{"use strict";Object.defineProperty(ro,"__esModule",{value:!0});var Owt=Dwe();Object.defineProperty(ro,"render",{enumerable:!0,get:function(){return Owt.default}});var Mwt=sQ();Object.defineProperty(ro,"Box",{enumerable:!0,get:function(){return Mwt.default}});var Uwt=yq();Object.defineProperty(ro,"Text",{enumerable:!0,get:function(){return Uwt.default}});var _wt=Pwe();Object.defineProperty(ro,"Static",{enumerable:!0,get:function(){return _wt.default}});var Hwt=xwe();Object.defineProperty(ro,"Transform",{enumerable:!0,get:function(){return Hwt.default}});var qwt=Qwe();Object.defineProperty(ro,"Newline",{enumerable:!0,get:function(){return qwt.default}});var jwt=Twe();Object.defineProperty(ro,"Spacer",{enumerable:!0,get:function(){return jwt.default}});var Gwt=Lwe();Object.defineProperty(ro,"useInput",{enumerable:!0,get:function(){return Gwt.default}});var Ywt=Owe();Object.defineProperty(ro,"useApp",{enumerable:!0,get:function(){return Ywt.default}});var Wwt=lQ();Object.defineProperty(ro,"useStdin",{enumerable:!0,get:function(){return Wwt.default}});var Kwt=Mwe();Object.defineProperty(ro,"useStdout",{enumerable:!0,get:function(){return Kwt.default}});var Vwt=Uwe();Object.defineProperty(ro,"useStderr",{enumerable:!0,get:function(){return Vwt.default}});var Jwt=Hwe();Object.defineProperty(ro,"useFocus",{enumerable:!0,get:function(){return Jwt.default}});var zwt=qwe();Object.defineProperty(ro,"useFocusManager",{enumerable:!0,get:function(){return zwt.default}});var Xwt=jwe();Object.defineProperty(ro,"measureElement",{enumerable:!0,get:function(){return Xwt.default}})});var Bq={};Vt(Bq,{Gem:()=>Iq});var Gwe,Am,Iq,cQ=Et(()=>{Gwe=$e(ic()),Am=$e(on()),Iq=(0,Am.memo)(({active:t})=>{let e=(0,Am.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,Am.useMemo)(()=>t?"green":"yellow",[t]);return Am.default.createElement(Gwe.Text,{color:r},e)})});var Wwe={};Vt(Wwe,{useKeypress:()=>fm});function fm({active:t},e,r){let{stdin:o}=(0,Ywe.useStdin)(),a=(0,uQ.useCallback)((n,u)=>e(n,u),r);(0,uQ.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var Ywe,uQ,UB=Et(()=>{Ywe=$e(ic()),uQ=$e(on())});var Vwe={};Vt(Vwe,{FocusRequest:()=>Kwe,useFocusRequest:()=>vq});var Kwe,vq,Dq=Et(()=>{UB();Kwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(Kwe||{}),vq=function({active:t},e,r){fm({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var Jwe={};Vt(Jwe,{useListInput:()=>_B});var _B,AQ=Et(()=>{UB();_B=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){fm({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var fQ={};Vt(fQ,{ScrollableItems:()=>Zwt});var C0,La,Zwt,pQ=Et(()=>{C0=$e(ic()),La=$e(on());Dq();AQ();Zwt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=La.default.Children.map(e,L=>A(L)),h=p[0],[E,I]=(0,La.useState)(h),v=p.indexOf(E);(0,La.useEffect)(()=>{p.includes(E)||I(h)},[e]),(0,La.useEffect)(()=>{u&&v>=p.length-2&&u()},[v]),vq({active:t&&!!n},L=>{n?.(L)},[n]),_B(E,p,{active:t,minus:"up",plus:"down",set:I,loop:a});let x=v-r,C=v+r;C>p.length&&(x-=C-p.length,C=p.length),x<0&&(C+=-x,x=0),C>=p.length&&(C=p.length-1);let R=[];for(let L=x;L<=C;++L){let U=p[L],J=t&&U===E;R.push(La.default.createElement(C0.Box,{key:U,height:o},La.default.createElement(C0.Box,{marginLeft:1,marginRight:1},La.default.createElement(C0.Text,null,J?La.default.createElement(C0.Text,{color:"cyan",bold:!0},">"):" ")),La.default.createElement(C0.Box,null,La.default.cloneElement(e[L],{active:J}))))}return La.default.createElement(C0.Box,{flexDirection:"column",width:"100%"},R)}});var zwe,ep,Xwe,Sq,Zwe,Pq=Et(()=>{zwe=$e(ic()),ep=$e(on()),Xwe=ve("readline"),Sq=ep.default.createContext(null),Zwe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,zwe.useStdin)();(0,ep.useEffect)(()=>{r&&r(!0),e&&(0,Xwe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,ep.useState)(new Map),n=(0,ep.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return ep.default.createElement(Sq.Provider,{value:n,children:t})}});var bq={};Vt(bq,{useMinistore:()=>$wt});function $wt(t,e){let r=(0,hQ.useContext)(Sq);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,hQ.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var hQ,xq=Et(()=>{hQ=$e(on());Pq()});var dQ={};Vt(dQ,{renderForm:()=>eIt});async function eIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,gQ.useApp)();fm({active:!0},(E,I)=>{I.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,gQ.render)(kq.default.createElement(Zwe,null,kq.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var gQ,kq,mQ=Et(()=>{gQ=$e(ic()),kq=$e(on());Pq();UB()});var rIe=_(HB=>{"use strict";Object.defineProperty(HB,"__esModule",{value:!0});HB.UncontrolledTextInput=void 0;var eIe=on(),Qq=on(),$we=ic(),pm=rQ(),tIe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=Qq.useState({cursorOffset:(t||"").length,cursorWidth:0});Qq.useEffect(()=>{E(R=>{if(!r||!n)return R;let L=t||"";return R.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:R})},[t,r,n]);let I=a?h:0,v=o?o.repeat(t.length):t,x=v,C=e?pm.grey(e):void 0;if(n&&r){C=e.length>0?pm.inverse(e[0])+pm.grey(e.slice(1)):pm.inverse(" "),x=v.length>0?"":pm.inverse(" ");let R=0;for(let L of v)R>=p-I&&R<=p?x+=pm.inverse(L):x+=L,R++;v.length>0&&p===v.length&&(x+=pm.inverse(" "))}return $we.useInput((R,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&R==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let U=p,J=t,te=0;L.leftArrow?n&&U--:L.rightArrow?n&&U++:L.backspace||L.delete?p>0&&(J=t.slice(0,p-1)+t.slice(p,t.length),U--):(J=t.slice(0,p)+R+t.slice(p,t.length),U+=R.length,R.length>1&&(te=R.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),J!==t&&u(J)},{isActive:r}),eIe.createElement($we.Text,null,e?v.length>0?x:C:x)};HB.default=tIe;HB.UncontrolledTextInput=t=>{let[e,r]=Qq.useState("");return eIe.createElement(tIe,Object.assign({},t,{value:e,onChange:r}))}});var sIe={};Vt(sIe,{Pad:()=>Fq});var nIe,iIe,Fq,Rq=Et(()=>{nIe=$e(ic()),iIe=$e(on()),Fq=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return iIe.default.createElement(nIe.Text,{dimColor:!e},r)}});var oIe={};Vt(oIe,{ItemOptions:()=>tIt});var jB,I0,tIt,aIe=Et(()=>{jB=$e(ic()),I0=$e(on());AQ();cQ();Rq();tIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return _B(o,u,{active:t,minus:"left",plus:"right",set:a}),I0.default.createElement(I0.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,I=n[h]-1||0,v=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),x=Math.max(0,I-v.length-2);return p?I0.default.createElement(jB.Box,{key:p,width:I,marginLeft:1},I0.default.createElement(jB.Text,{wrap:"truncate"},I0.default.createElement(Iq,{active:E})," ",p),e?I0.default.createElement(Fq,{active:t,length:x}):null):I0.default.createElement(jB.Box,{key:`spacer-${h}`,width:I,marginLeft:1})}))}});var BIe=_((zJt,IIe)=>{var qq;IIe.exports=()=>(typeof qq>"u"&&(qq=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),qq)});var GIe=_((wzt,jIe)=>{var Xq=Symbol("arg flag"),Oa=class extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,Oa.prototype)}};function sv(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new Oa("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new Oa("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new Oa(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new Oa(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(I,v,x=[])=>(x.push(E(I,v,x[x.length-1])),x),h=E===Boolean||E[Xq]===!0}else if(typeof p=="function")h=p===Boolean||p[Xq]===!0;else throw new Oa(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new Oa(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(I=>`-${I}`);for(let I=0;I1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let J=x===R?"":` (alias for ${R})`;throw new Oa(`option requires argument: ${x}${J}`,"ARG_MISSING_REQUIRED_LONGARG")}a[R]=L(e[A+1],R,a[R]),++A}else a[R]=L(C,R,a[R])}}else a._.push(h)}return a}sv.flag=t=>(t[Xq]=!0,t);sv.COUNT=sv.flag((t,e,r)=>(r||0)+1);sv.ArgError=Oa;jIe.exports=sv});var ZIe=_((Jzt,XIe)=>{var tj;XIe.exports=()=>(typeof tj>"u"&&(tj=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),tj)});var n1e=_((aj,lj)=>{(function(t){aj&&typeof aj=="object"&&typeof lj<"u"?lj.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var a1e=_((KXt,o1e)=>{"use strict";cj.ifExists=ZIt;var YC=ve("util"),sc=ve("path"),i1e=n1e(),JIt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,zIt={createPwshFile:!0,createCmdFile:i1e(),fs:ve("fs")},XIt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function s1e(t){let e={...zIt,...t},r=e.fs;return e.fs_={chmod:r.chmod?YC.promisify(r.chmod):async()=>{},mkdir:YC.promisify(r.mkdir),readFile:YC.promisify(r.readFile),stat:YC.promisify(r.stat),unlink:YC.promisify(r.unlink),writeFile:YC.promisify(r.writeFile)},e}async function cj(t,e,r){let o=s1e(r);await o.fs_.stat(t),await e1t(t,e,o)}function ZIt(t,e,r){return cj(t,e,r).catch(()=>{})}function $It(t,e){return e.fs_.unlink(t).catch(()=>{})}async function e1t(t,e,r){let o=await s1t(t,r);return await t1t(e,r),r1t(t,e,o,r)}function t1t(t,e){return e.fs_.mkdir(sc.dirname(t),{recursive:!0})}function r1t(t,e,r,o){let a=s1e(o),n=[{generator:l1t,extension:""}];return a.createCmdFile&&n.push({generator:a1t,extension:".cmd"}),a.createPwshFile&&n.push({generator:c1t,extension:".ps1"}),Promise.all(n.map(u=>o1t(t,e+u.extension,r,u.generator,a)))}function n1t(t,e){return $It(t,e)}function i1t(t,e){return u1t(t,e)}async function s1t(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(JIt);if(!a){let n=sc.extname(t).toLowerCase();return{program:XIt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function o1t(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await n1t(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),i1t(e,a)}function a1t(t,e,r){let a=sc.relative(sc.dirname(e),t).split("/").join("\\"),n=sc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=uj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",I=h?`@SET NODE_PATH=${h}\r `:"";return u?I+=`@IF EXIST ${u} (\r ${u} ${p} ${a} ${E}%*\r ) ELSE (\r @SETLOCAL\r @SET PATHEXT=%PATHEXT:;.JS;=;%\r ${A} ${p} ${a} ${E}%*\r )\r `:I+=`@${A} ${p} ${a} ${E}%*\r `,I}function l1t(t,e,r){let o=sc.relative(sc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=sc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=uj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") case \`uname\` in *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; esac `,I=r.nodePath?`export NODE_PATH="${p}" `:"";return n?E+=`${I}if [ -x ${n} ]; then exec ${n} ${A} ${o} ${h}"$@" else exec ${a} ${A} ${o} ${h}"$@" fi `:E+=`${I}${a} ${A} ${o} ${h}"$@" exit $? `,E}function c1t(t,e,r){let o=sc.relative(sc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=sc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=uj(r.nodePath),E=h.win32,I=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let v=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh $basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent $exe="" ${r.nodePath?`$env_node_path=$env:NODE_PATH $env:NODE_PATH="${E}" `:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { # Fix case when both the Windows and Linux builds of Node # are installed in the same directory $exe=".exe" }`;return r.nodePath&&(x+=` else { $env:NODE_PATH="${I}" }`),u?x+=` $ret=0 if (Test-Path ${u}) { # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & ${u} ${p} ${o} ${v}$args } else { & ${u} ${p} ${o} ${v}$args } $ret=$LASTEXITCODE } else { # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & ${n} ${p} ${o} ${v}$args } else { & ${n} ${p} ${o} ${v}$args } $ret=$LASTEXITCODE } ${r.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $ret `:x+=` # Support pipeline input if ($MyInvocation.ExpectingInput) { $input | & ${n} ${p} ${o} ${v}$args } else { & ${n} ${p} ${o} ${v}$args } ${r.nodePath?`$env:NODE_PATH=$env_node_path `:""}exit $LASTEXITCODE `,x}function u1t(t,e){return e.fs_.chmod(t,493)}function uj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(sc.delimiter):Array.from(t),r={};for(let o=0;o`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}o1e.exports=cj});var vj=_((h$t,b1e)=>{b1e.exports=ve("stream")});var F1e=_((g$t,Q1e)=>{"use strict";function x1e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function O1t(t){for(var e=1;e0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return xQ.alloc(0);for(var o=xQ.allocUnsafe(r>>>0),a=this.head,n=0;a;)G1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return ru.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=xQ.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:j1t,value:function(r,o){return Dj(this,O1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var Pj=_((d$t,T1e)=>{"use strict";function Y1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(Sj,this,t)):process.nextTick(Sj,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(kQ,r):(r._writableState.errorEmitted=!0,process.nextTick(R1e,r,n)):process.nextTick(R1e,r,n):e?(process.nextTick(kQ,r),e(n)):process.nextTick(kQ,r)}),this)}function R1e(t,e){Sj(t,e),kQ(t)}function kQ(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function W1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function Sj(t,e){t.emit("error",e)}function K1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}T1e.exports={destroy:Y1t,undestroy:W1t,errorOrDestroy:K1t}});var Q0=_((m$t,O1e)=>{"use strict";var L1e={};function ac(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,L1e[t]=a}function N1e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function V1t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function J1t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function z1t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}ac("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);ac("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&V1t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(J1t(t," argument"))a=`The ${t} ${o} ${N1e(e,"type")}`;else{let n=z1t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${N1e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);ac("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");ac("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});ac("ERR_STREAM_PREMATURE_CLOSE","Premature close");ac("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});ac("ERR_MULTIPLE_CALLBACK","Callback called multiple times");ac("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");ac("ERR_STREAM_WRITE_AFTER_END","write after end");ac("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);ac("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);ac("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");O1e.exports.codes=L1e});var bj=_((y$t,M1e)=>{"use strict";var X1t=Q0().codes.ERR_INVALID_OPT_VALUE;function Z1t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function $1t(t,e,r,o){var a=Z1t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new X1t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}M1e.exports={getHighWaterMark:$1t}});var U1e=_((E$t,xj)=>{typeof Object.create=="function"?xj.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:xj.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var F0=_((C$t,Qj)=>{try{if(kj=ve("util"),typeof kj.inherits!="function")throw"";Qj.exports=kj.inherits}catch{Qj.exports=U1e()}var kj});var H1e=_((w$t,_1e)=>{_1e.exports=ve("util").deprecate});var Tj=_((I$t,K1e)=>{"use strict";K1e.exports=Ri;function j1e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){S2t(e,t)}}var zC;Ri.WritableState=mv;var e2t={deprecate:H1e()},G1e=vj(),FQ=ve("buffer").Buffer,t2t=global.Uint8Array||function(){};function r2t(t){return FQ.from(t)}function n2t(t){return FQ.isBuffer(t)||t instanceof t2t}var Rj=Pj(),i2t=bj(),s2t=i2t.getHighWaterMark,R0=Q0().codes,o2t=R0.ERR_INVALID_ARG_TYPE,a2t=R0.ERR_METHOD_NOT_IMPLEMENTED,l2t=R0.ERR_MULTIPLE_CALLBACK,c2t=R0.ERR_STREAM_CANNOT_PIPE,u2t=R0.ERR_STREAM_DESTROYED,A2t=R0.ERR_STREAM_NULL_VALUES,f2t=R0.ERR_STREAM_WRITE_AFTER_END,p2t=R0.ERR_UNKNOWN_ENCODING,XC=Rj.errorOrDestroy;F0()(Ri,G1e);function h2t(){}function mv(t,e,r){zC=zC||Cm(),t=t||{},typeof r!="boolean"&&(r=e instanceof zC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=s2t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){w2t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new j1e(this)}mv.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(mv.prototype,"buffer",{get:e2t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var QQ;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(QQ=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ri,Symbol.hasInstance,{value:function(e){return QQ.call(this,e)?!0:this!==Ri?!1:e&&e._writableState instanceof mv}})):QQ=function(e){return e instanceof this};function Ri(t){zC=zC||Cm();var e=this instanceof zC;if(!e&&!QQ.call(Ri,this))return new Ri(t);this._writableState=new mv(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),G1e.call(this)}Ri.prototype.pipe=function(){XC(this,new c2t)};function g2t(t,e){var r=new f2t;XC(t,r),process.nextTick(e,r)}function d2t(t,e,r,o){var a;return r===null?a=new A2t:typeof r!="string"&&!e.objectMode&&(a=new o2t("chunk",["string","Buffer"],r)),a?(XC(t,a),process.nextTick(o,a),!1):!0}Ri.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&n2t(t);return n&&!FQ.isBuffer(t)&&(t=r2t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=h2t),o.ending?g2t(this,r):(n||d2t(this,o,t,r))&&(o.pendingcb++,a=y2t(this,o,n,t,e,r)),a};Ri.prototype.cork=function(){this._writableState.corked++};Ri.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&Y1e(this,t))};Ri.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new p2t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Ri.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function m2t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=FQ.from(e,r)),e}Object.defineProperty(Ri.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function y2t(t,e,r,o,a,n){if(!r){var u=m2t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length{"use strict";var P2t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};J1e.exports=EA;var V1e=Oj(),Lj=Tj();F0()(EA,V1e);for(Nj=P2t(Lj.prototype),RQ=0;RQ{var NQ=ve("buffer"),ip=NQ.Buffer;function z1e(t,e){for(var r in t)e[r]=t[r]}ip.from&&ip.alloc&&ip.allocUnsafe&&ip.allocUnsafeSlow?X1e.exports=NQ:(z1e(NQ,Mj),Mj.Buffer=ZC);function ZC(t,e,r){return ip(t,e,r)}z1e(ip,ZC);ZC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return ip(t,e,r)};ZC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=ip(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};ZC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return ip(t)};ZC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return NQ.SlowBuffer(t)}});var Hj=_(e2e=>{"use strict";var _j=Z1e().Buffer,$1e=_j.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function k2t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function Q2t(t){var e=k2t(t);if(typeof e!="string"&&(_j.isEncoding===$1e||!$1e(t)))throw new Error("Unknown encoding: "+t);return e||t}e2e.StringDecoder=yv;function yv(t){this.encoding=Q2t(t);var e;switch(this.encoding){case"utf16le":this.text=O2t,this.end=M2t,e=4;break;case"utf8":this.fillLast=T2t,e=4;break;case"base64":this.text=U2t,this.end=_2t,e=3;break;default:this.write=H2t,this.end=q2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=_j.allocUnsafe(e)}yv.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function F2t(t,e,r){var o=e.length-1;if(o=0?(a>0&&(t.lastNeed=a-1),a):--o=0?(a>0&&(t.lastNeed=a-2),a):--o=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function R2t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function T2t(t){var e=this.lastTotal-this.lastNeed,r=R2t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function N2t(t,e){var r=F2t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function L2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function O2t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function M2t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function U2t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function _2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function H2t(t){return t.toString(this.encoding)}function q2t(t){return t&&t.length?this.write(t):""}});var LQ=_((D$t,n2e)=>{"use strict";var t2e=Q0().codes.ERR_STREAM_PREMATURE_CLOSE;function j2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a{"use strict";var OQ;function T0(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var W2t=LQ(),N0=Symbol("lastResolve"),wm=Symbol("lastReject"),Ev=Symbol("error"),MQ=Symbol("ended"),Im=Symbol("lastPromise"),qj=Symbol("handlePromise"),Bm=Symbol("stream");function L0(t,e){return{value:t,done:e}}function K2t(t){var e=t[N0];if(e!==null){var r=t[Bm].read();r!==null&&(t[Im]=null,t[N0]=null,t[wm]=null,e(L0(r,!1)))}}function V2t(t){process.nextTick(K2t,t)}function J2t(t,e){return function(r,o){t.then(function(){if(e[MQ]){r(L0(void 0,!0));return}e[qj](r,o)},o)}}var z2t=Object.getPrototypeOf(function(){}),X2t=Object.setPrototypeOf((OQ={get stream(){return this[Bm]},next:function(){var e=this,r=this[Ev];if(r!==null)return Promise.reject(r);if(this[MQ])return Promise.resolve(L0(void 0,!0));if(this[Bm].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[Ev]?A(e[Ev]):u(L0(void 0,!0))})});var o=this[Im],a;if(o)a=new Promise(J2t(o,this));else{var n=this[Bm].read();if(n!==null)return Promise.resolve(L0(n,!1));a=new Promise(this[qj])}return this[Im]=a,a}},T0(OQ,Symbol.asyncIterator,function(){return this}),T0(OQ,"return",function(){var e=this;return new Promise(function(r,o){e[Bm].destroy(null,function(a){if(a){o(a);return}r(L0(void 0,!0))})})}),OQ),z2t),Z2t=function(e){var r,o=Object.create(X2t,(r={},T0(r,Bm,{value:e,writable:!0}),T0(r,N0,{value:null,writable:!0}),T0(r,wm,{value:null,writable:!0}),T0(r,Ev,{value:null,writable:!0}),T0(r,MQ,{value:e._readableState.endEmitted,writable:!0}),T0(r,qj,{value:function(n,u){var A=o[Bm].read();A?(o[Im]=null,o[N0]=null,o[wm]=null,n(L0(A,!1))):(o[N0]=n,o[wm]=u)},writable:!0}),r));return o[Im]=null,W2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[wm];n!==null&&(o[Im]=null,o[N0]=null,o[wm]=null,n(a)),o[Ev]=a;return}var u=o[N0];u!==null&&(o[Im]=null,o[N0]=null,o[wm]=null,u(L0(void 0,!0))),o[MQ]=!0}),e.on("readable",V2t.bind(null,o)),o};i2e.exports=Z2t});var c2e=_((P$t,l2e)=>{"use strict";function o2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function $2t(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){o2e(n,o,a,u,A,"next",p)}function A(p){o2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function a2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function eBt(t){for(var e=1;e{"use strict";E2e.exports=mn;var $C;mn.ReadableState=p2e;var b$t=ve("events").EventEmitter,f2e=function(e,r){return e.listeners(r).length},wv=vj(),UQ=ve("buffer").Buffer,iBt=global.Uint8Array||function(){};function sBt(t){return UQ.from(t)}function oBt(t){return UQ.isBuffer(t)||t instanceof iBt}var jj=ve("util"),en;jj&&jj.debuglog?en=jj.debuglog("stream"):en=function(){};var aBt=F1e(),zj=Pj(),lBt=bj(),cBt=lBt.getHighWaterMark,_Q=Q0().codes,uBt=_Q.ERR_INVALID_ARG_TYPE,ABt=_Q.ERR_STREAM_PUSH_AFTER_EOF,fBt=_Q.ERR_METHOD_NOT_IMPLEMENTED,pBt=_Q.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,ew,Gj,Yj;F0()(mn,wv);var Cv=zj.errorOrDestroy,Wj=["error","close","destroy","pause","resume"];function hBt(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function p2e(t,e,r){$C=$C||Cm(),t=t||{},typeof r!="boolean"&&(r=e instanceof $C),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=cBt(this,t,"readableHighWaterMark",r),this.buffer=new aBt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(ew||(ew=Hj().StringDecoder),this.decoder=new ew(t.encoding),this.encoding=t.encoding)}function mn(t){if($C=$C||Cm(),!(this instanceof mn))return new mn(t);var e=this instanceof $C;this._readableState=new p2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),wv.call(this)}Object.defineProperty(mn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){!this._readableState||(this._readableState.destroyed=e)}});mn.prototype.destroy=zj.destroy;mn.prototype._undestroy=zj.undestroy;mn.prototype._destroy=function(t,e){e(t)};mn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=UQ.from(t,e),e=""),o=!0),h2e(this,t,e,!1,o)};mn.prototype.unshift=function(t){return h2e(this,t,null,!0,!1)};function h2e(t,e,r,o,a){en("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,mBt(t,n);else{var u;if(a||(u=gBt(n,e)),u)Cv(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==UQ.prototype&&(e=sBt(e)),o)n.endEmitted?Cv(t,new pBt):Kj(t,n,e,!0);else if(n.ended)Cv(t,new ABt);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?Kj(t,n,e,!1):Jj(t,n)):Kj(t,n,e,!1)}else o||(n.reading=!1,Jj(t,n))}return!n.ended&&(n.length=u2e?t=u2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function A2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=dBt(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}mn.prototype.read=function(t){en("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return en("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Vj(this):HQ(this),null;if(t=A2e(t,e),t===0&&e.ended)return e.length===0&&Vj(this),null;var o=e.needReadable;en("need readable",o),(e.length===0||e.length-t0?a=m2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Vj(this)),a!==null&&this.emit("data",a),a};function mBt(t,e){if(en("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?HQ(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,g2e(t)))}}function HQ(t){var e=t._readableState;en("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(en("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(g2e,t))}function g2e(t){var e=t._readableState;en("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,Xj(t)}function Jj(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(yBt,t,e))}function yBt(t,e){for(;!e.reading&&!e.ended&&(e.length1&&y2e(o.pipes,t)!==-1)&&!h&&(en("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function v(L){en("onerror",L),R(),t.removeListener("error",v),f2e(t,"error")===0&&Cv(t,L)}hBt(t,"error",v);function x(){t.removeListener("finish",C),R()}t.once("close",x);function C(){en("onfinish"),t.removeListener("close",x),R()}t.once("finish",C);function R(){en("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(en("pipe resume"),r.resume()),t};function EBt(t){return function(){var r=t._readableState;en("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&f2e(t,"data")&&(r.flowing=!0,Xj(t))}}mn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,en("on readable",o.length,o.reading),o.length?HQ(this):o.reading||process.nextTick(CBt,this)),r};mn.prototype.addListener=mn.prototype.on;mn.prototype.removeListener=function(t,e){var r=wv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(d2e,this),r};mn.prototype.removeAllListeners=function(t){var e=wv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(d2e,this),e};function d2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function CBt(t){en("readable nexttick read 0"),t.read(0)}mn.prototype.resume=function(){var t=this._readableState;return t.flowing||(en("resume"),t.flowing=!t.readableListening,wBt(this,t)),t.paused=!1,this};function wBt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(IBt,t,e))}function IBt(t,e){en("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),Xj(t),e.flowing&&!e.reading&&t.read(0)}mn.prototype.pause=function(){return en("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(en("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function Xj(t){var e=t._readableState;for(en("flow",e.flowing);e.flowing&&t.read()!==null;);}mn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(en("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(en("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Vj(t){var e=t._readableState;en("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(BBt,e,t))}function BBt(t,e){if(en("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(mn.from=function(t,e){return Yj===void 0&&(Yj=c2e()),Yj(mn,t,e)});function y2e(t,e){for(var r=0,o=t.length;r{"use strict";w2e.exports=sp;var qQ=Q0().codes,vBt=qQ.ERR_METHOD_NOT_IMPLEMENTED,DBt=qQ.ERR_MULTIPLE_CALLBACK,SBt=qQ.ERR_TRANSFORM_ALREADY_TRANSFORMING,PBt=qQ.ERR_TRANSFORM_WITH_LENGTH_0,jQ=Cm();F0()(sp,jQ);function bBt(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new DBt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";B2e.exports=Iv;var I2e=Zj();F0()(Iv,I2e);function Iv(t){if(!(this instanceof Iv))return new Iv(t);I2e.call(this,t)}Iv.prototype._transform=function(t,e,r){r(null,t)}});var x2e=_((F$t,b2e)=>{"use strict";var $j;function kBt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var P2e=Q0().codes,QBt=P2e.ERR_MISSING_ARGS,FBt=P2e.ERR_STREAM_DESTROYED;function D2e(t){if(t)throw t}function RBt(t){return t.setHeader&&typeof t.abort=="function"}function TBt(t,e,r,o){o=kBt(o);var a=!1;t.on("close",function(){a=!0}),$j===void 0&&($j=LQ()),$j(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,RBt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new FBt("pipe"))}}}function S2e(t){t()}function NBt(t,e){return t.pipe(e)}function LBt(t){return!t.length||typeof t[t.length-1]!="function"?D2e:t.pop()}function OBt(){for(var t=arguments.length,e=new Array(t),r=0;r0;return TBt(u,p,h,function(E){a||(a=E),E&&n.forEach(S2e),!p&&(n.forEach(S2e),o(a))})});return e.reduce(NBt)}b2e.exports=OBt});var tw=_((lc,vv)=>{var Bv=ve("stream");process.env.READABLE_STREAM==="disable"&&Bv?(vv.exports=Bv.Readable,Object.assign(vv.exports,Bv),vv.exports.Stream=Bv):(lc=vv.exports=Oj(),lc.Stream=Bv||lc,lc.Readable=lc,lc.Writable=Tj(),lc.Duplex=Cm(),lc.Transform=Zj(),lc.PassThrough=v2e(),lc.finished=LQ(),lc.pipeline=x2e())});var F2e=_((R$t,Q2e)=>{"use strict";var{Buffer:lu}=ve("buffer"),k2e=Symbol.for("BufferList");function ni(t){if(!(this instanceof ni))return new ni(t);ni._init.call(this,t)}ni._init=function(e){Object.defineProperty(this,k2e,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};ni.prototype._new=function(e){return new ni(e)};ni.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;othis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};ni.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};ni.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||lu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:lu.concat(this._bufs,this.length);for(let I=0;Iv)this._bufs[I].copy(e,h,E),h+=v;else{this._bufs[I].copy(e,h,E,E+p),h+=v;break}p-=v,E&&(E=0)}return e.length>h?e.slice(0,h):e};ni.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};ni.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};ni.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};ni.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};ni.prototype._match=function(t,e){if(this.length-t{"use strict";var eG=tw().Duplex,MBt=F0(),Dv=F2e();function Uo(t){if(!(this instanceof Uo))return new Uo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}Dv._init.call(this,t),eG.call(this)}MBt(Uo,eG);Object.assign(Uo.prototype,Dv.prototype);Uo.prototype._new=function(e){return new Uo(e)};Uo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Uo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Uo.prototype.end=function(e){eG.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Uo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Uo.prototype._isBufferList=function(e){return e instanceof Uo||e instanceof Dv||Uo.isBufferList(e)};Uo.isBufferList=Dv.isBufferList;GQ.exports=Uo;GQ.exports.BufferListStream=Uo;GQ.exports.BufferList=Dv});var nG=_(nw=>{var UBt=Buffer.alloc,_Bt="0000000000000000000",HBt="7777777777777777777",T2e="0".charCodeAt(0),N2e=Buffer.from("ustar\0","binary"),qBt=Buffer.from("00","binary"),jBt=Buffer.from("ustar ","binary"),GBt=Buffer.from(" \0","binary"),YBt=parseInt("7777",8),Sv=257,rG=263,WBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},KBt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},VBt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},L2e=function(t,e,r,o){for(;re?HBt.slice(0,e)+" ":_Bt.slice(0,e-t.length)+t+" "};function JBt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o=Math.pow(10,r)&&r++,e+r+t};nw.decodeLongPath=function(t,e){return rw(t,0,t.length,e)};nw.encodePax=function(t){var e="";t.name&&(e+=tG(" path="+t.name+` `)),t.linkname&&(e+=tG(" linkpath="+t.linkname+` `));var r=t.pax;if(r)for(var o in r)e+=tG(" "+o+"="+r[o]+` `);return Buffer.from(e)};nw.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(O0(t.mode&YBt,6),100),e.write(O0(t.uid,6),108),e.write(O0(t.gid,6),116),e.write(O0(t.size,11),124),e.write(O0(t.mtime.getTime()/1e3|0,11),136),e[156]=T2e+VBt(t.type),t.linkname&&e.write(t.linkname,157),N2e.copy(e,Sv),qBt.copy(e,rG),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(O0(t.devmajor||0,6),329),e.write(O0(t.devminor||0,6),337),o&&e.write(o,345),e.write(O0(O2e(e),6),148),e)};nw.decode=function(t,e,r){var o=t[156]===0?0:t[156]-T2e,a=rw(t,0,100,e),n=M0(t,100,8),u=M0(t,108,8),A=M0(t,116,8),p=M0(t,124,12),h=M0(t,136,12),E=KBt(o),I=t[157]===0?null:rw(t,157,100,e),v=rw(t,265,32),x=rw(t,297,32),C=M0(t,329,8),R=M0(t,337,8),L=O2e(t);if(L===8*32)return null;if(L!==M0(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(N2e.compare(t,Sv,Sv+6)===0)t[345]&&(a=rw(t,345,155,e)+"/"+a);else if(!(jBt.compare(t,Sv,Sv+6)===0&&GBt.compare(t,rG,rG+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:I,uname:v,gname:x,devmajor:C,devminor:R}}});var G2e=_((L$t,j2e)=>{var U2e=ve("util"),zBt=R2e(),Pv=nG(),_2e=tw().Writable,H2e=tw().PassThrough,q2e=function(){},M2e=function(t){return t&=511,t&&512-t},XBt=function(t,e){var r=new YQ(t,e);return r.end(),r},ZBt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},YQ=function(t,e){this._parent=t,this.offset=e,H2e.call(this,{autoDestroy:!1})};U2e.inherits(YQ,H2e);YQ.prototype.destroy=function(t){this._parent.destroy(t)};var op=function(t){if(!(this instanceof op))return new op(t);_2e.call(this,t),t=t||{},this._offset=0,this._buffer=zBt(),this._missing=0,this._partial=!1,this._onparse=q2e,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(v){if(e._locked=!1,v)return e.destroy(v);e._stream||o()},n=function(){e._stream=null;var v=M2e(e._header.size);v?e._parse(v,u):e._parse(512,I),e._locked||o()},u=function(){e._buffer.consume(M2e(e._header.size)),e._parse(512,I),o()},A=function(){var v=e._header.size;e._paxGlobal=Pv.decodePax(r.slice(0,v)),r.consume(v),n()},p=function(){var v=e._header.size;e._pax=Pv.decodePax(r.slice(0,v)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(v),n()},h=function(){var v=e._header.size;this._gnuLongPath=Pv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},E=function(){var v=e._header.size;this._gnuLongLinkPath=Pv.decodeLongPath(r.slice(0,v),t.filenameEncoding),r.consume(v),n()},I=function(){var v=e._offset,x;try{x=e._header=Pv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,I),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=ZBt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,I),e.emit("entry",x,XBt(e,v),a);return}e._stream=new YQ(e,v),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=I,this._parse(512,I)};U2e.inherits(op,_2e);op.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};op.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};op.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=q2e,this._overflow?this._write(this._overflow,void 0,t):t()}};op.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.lengthn&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};op.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};j2e.exports=op});var W2e=_((O$t,Y2e)=>{Y2e.exports=ve("fs").constants||ve("constants")});var X2e=_((M$t,z2e)=>{var iw=W2e(),K2e=LM(),KQ=F0(),$Bt=Buffer.alloc,V2e=tw().Readable,sw=tw().Writable,evt=ve("string_decoder").StringDecoder,WQ=nG(),tvt=parseInt("755",8),rvt=parseInt("644",8),J2e=$Bt(1024),sG=function(){},iG=function(t,e){e&=511,e&&t.push(J2e.slice(0,512-e))};function nvt(t){switch(t&iw.S_IFMT){case iw.S_IFBLK:return"block-device";case iw.S_IFCHR:return"character-device";case iw.S_IFDIR:return"directory";case iw.S_IFIFO:return"fifo";case iw.S_IFLNK:return"symlink"}return"file"}var VQ=function(t){sw.call(this),this.written=0,this._to=t,this._destroyed=!1};KQ(VQ,sw);VQ.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};VQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var JQ=function(){sw.call(this),this.linkname="",this._decoder=new evt("utf-8"),this._destroyed=!1};KQ(JQ,sw);JQ.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};JQ.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var bv=function(){sw.call(this),this._destroyed=!1};KQ(bv,sw);bv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};bv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var CA=function(t){if(!(this instanceof CA))return new CA(t);V2e.call(this,t),this._drain=sG,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};KQ(CA,V2e);CA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=sG);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=nvt(t.mode)),t.mode||(t.mode=t.type==="directory"?tvt:rvt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return iG(o,t.size),a?process.nextTick(r):this._drain=r,new bv}if(t.type==="symlink"&&!t.linkname){var n=new JQ;return K2e(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new bv;var u=new VQ(this);return this._stream=u,K2e(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));iG(o,t.size),o._finalizing&&o.finalize(),r()}),u}};CA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(J2e),this.push(null))};CA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};CA.prototype._encode=function(t){if(!t.pax){var e=WQ.encode(t);if(e){this.push(e);return}}this._encodePax(t)};CA.prototype._encodePax=function(t){var e=WQ.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(WQ.encode(r)),this.push(e),iG(this,e.length),r.size=t.size,r.type=t.type,this.push(WQ.encode(r))};CA.prototype._read=function(t){var e=this._drain;this._drain=sG,e()};z2e.exports=CA});var Z2e=_(oG=>{oG.extract=G2e();oG.pack=X2e()});var uBe=_((ier,cBe)=>{"use strict";var vm=class{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=aBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return fG(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):yvt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new vm(this.__specs,this.__opts,aBe(this.__providers).concat(e)),lBe)}};try{let t=ve("util");vm.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function dvt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function fG(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))dvt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=oBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=oBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function oBe(t,e){let r;return e.__isFiggyPudding?r=fG(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var lBe={has(t,e){return e in t.__specs&&fG(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in vm.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};cBe.exports=mvt;function mvt(t,e){function r(...o){return new Proxy(new vm(t,e,o),lBe)}return r}function aBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function yvt(t){return Object.keys(t).map(e=>[e,t[e]])}});var pBe=_((ser,BA)=>{"use strict";var kv=ve("crypto"),Evt=uBe(),Cvt=ve("stream").Transform,ABe=["sha256","sha384","sha512"],wvt=/^[a-z0-9+/]+(?:=?=?)$/i,Ivt=/^([^-]+)-([^?]+)([?\S*]*)$/,Bvt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,vvt=/^[\x21-\x7E]+$/,ia=Evt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>Fvt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),_0=class{get isHash(){return!0}constructor(e,r){r=ia(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?Bvt:Ivt);if(!a||o&&!ABe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=ia(e),e.strict&&!(ABe.some(o=>o===this.algorithm)&&this.digest.match(wvt)&&(this.options||[]).every(o=>o.match(vvt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Dm=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=ia(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>_0.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=ia(r);let o=typeof e=="string"?e:xv(e,r);return IA(`${this.toString(r)} ${o}`,r)}hexDigest(){return IA(this,{single:!0}).hexDigest()}match(e,r){r=ia(r);let o=IA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=ia(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};BA.exports.parse=IA;function IA(t,e){if(e=ia(e),typeof t=="string")return pG(t,e);if(t.algorithm&&t.digest){let r=new Dm;return r[t.algorithm]=[t],pG(xv(r,e),e)}else return pG(xv(t,e),e)}function pG(t,e){return e.single?new _0(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new _0(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new Dm)}BA.exports.stringify=xv;function xv(t,e){return e=ia(e),t.algorithm&&t.digest?_0.prototype.toString.call(t,e):typeof t=="string"?xv(IA(t,e),e):Dm.prototype.toString.call(t,e)}BA.exports.fromHex=Dvt;function Dvt(t,e,r){r=ia(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return IA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}BA.exports.fromData=Svt;function Svt(t,e){e=ia(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=kv.createHash(n).update(t).digest("base64"),A=new _0(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new Dm)}BA.exports.fromStream=Pvt;function Pvt(t,e){e=ia(e);let r=e.Promise||Promise,o=hG(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}BA.exports.checkData=bvt;function bvt(t,e,r){if(r=ia(r),e=IA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=kv.createHash(o).update(t).digest("base64"),n=IA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. Wanted: ${r.size} Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}BA.exports.checkStream=xvt;function xvt(t,e,r){r=ia(r);let o=r.Promise||Promise,a=hG(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}BA.exports.integrityStream=hG;function hG(t){t=ia(t);let e=t.integrity&&IA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(kv.createHash),A=0,p=new Cvt({transform(h,E,I){A+=h.length,u.forEach(v=>v.update(h,E)),I(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=IA(u.map((v,x)=>`${n[x]}-${v.digest("base64")}${h}`).join(" "),t),I=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let v=new Error(`stream size mismatch when checking ${e}. Wanted: ${t.size} Found: ${A}`);v.code="EBADSIZE",v.found=A,v.expected=t.size,v.sri=e,p.emit("error",v)}else if(t.integrity&&!I){let v=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);v.code="EINTEGRITY",v.found=E,v.expected=a,v.algorithm=o,v.sri=e,p.emit("error",v)}else p.emit("size",A),p.emit("integrity",E),I&&p.emit("verified",I)});return p}BA.exports.create=kvt;function kvt(t){t=ia(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(kv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new _0(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new Dm)}}}var Qvt=new Set(kv.getHashes()),fBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>Qvt.has(t));function Fvt(t,e){return fBe.indexOf(t.toLowerCase())>=fBe.indexOf(e.toLowerCase())?t:e}});var qBe=_((lir,HBe)=>{var FDt=lL();function RDt(t){return FDt(t)?void 0:t}HBe.exports=RDt});var GBe=_((cir,jBe)=>{var TDt=Hb(),NDt=x8(),LDt=R8(),ODt=jd(),MDt=dd(),UDt=qBe(),_Dt=v_(),HDt=b8(),qDt=1,jDt=2,GDt=4,YDt=_Dt(function(t,e){var r={};if(t==null)return r;var o=!1;e=TDt(e,function(n){return n=ODt(n,t),o||(o=n.length>1),n}),MDt(t,HDt(t),r),o&&(r=NDt(r,qDt|jDt|GDt,UDt));for(var a=e.length;a--;)LDt(r,e[a]);return r});jBe.exports=YDt});St();Ye();St();var JBe=ve("child_process"),zBe=$e(td());qt();var AC=new Map([]);var a2={};Vt(a2,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>rr,getCli:()=>$pe,getDynamicLibs:()=>Zpe,getPluginConfiguration:()=>pC,openWorkspace:()=>fC,pluginCommands:()=>AC,runExit:()=>nk});qt();var ut=class extends nt{constructor(){super(...arguments);this.cwd=ge.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new it("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ye();St();qt();var rr=class extends it{constructor(e,r){let o=V.relative(e,r),a=V.join(e,Ot.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ye();St();nA();Nl();k1();qt();var RAt=$e(zn());Za();var Zpe=()=>new Map([["@yarnpkg/cli",a2],["@yarnpkg/core",o2],["@yarnpkg/fslib",Vw],["@yarnpkg/libzip",x1],["@yarnpkg/parsers",rI],["@yarnpkg/shell",T1],["clipanion",hI],["semver",RAt],["typanion",Vo]]);Ye();async function fC(t,e){let{project:r,workspace:o}=await Pt.find(t,e);if(!o)throw new rr(r.cwd,e);return o}Ye();St();nA();Nl();k1();qt();var eSt=$e(zn());Za();var $8={};Vt($8,{AddCommand:()=>kh,BinCommand:()=>Qh,CacheCleanCommand:()=>Fh,ClipanionCommand:()=>Kd,ConfigCommand:()=>Lh,ConfigGetCommand:()=>Rh,ConfigSetCommand:()=>Th,ConfigUnsetCommand:()=>Nh,DedupeCommand:()=>Oh,EntryCommand:()=>mC,ExecCommand:()=>Mh,ExplainCommand:()=>Hh,ExplainPeerRequirementsCommand:()=>Uh,HelpCommand:()=>Vd,InfoCommand:()=>qh,LinkCommand:()=>Gh,NodeCommand:()=>Yh,PluginCheckCommand:()=>Wh,PluginImportCommand:()=>Jh,PluginImportSourcesCommand:()=>zh,PluginListCommand:()=>Kh,PluginRemoveCommand:()=>Xh,PluginRuntimeCommand:()=>Zh,RebuildCommand:()=>$h,RemoveCommand:()=>e0,RunCommand:()=>t0,RunIndexCommand:()=>Xd,SetResolutionCommand:()=>r0,SetVersionCommand:()=>_h,SetVersionSourcesCommand:()=>Vh,UnlinkCommand:()=>n0,UpCommand:()=>Jf,VersionCommand:()=>Jd,WhyCommand:()=>i0,WorkspaceCommand:()=>a0,WorkspacesListCommand:()=>o0,YarnCommand:()=>jh,dedupeUtils:()=>pk,default:()=>Sgt,suggestUtils:()=>zc});var kde=$e(td());Ye();Ye();Ye();qt();var _0e=$e(f2());Za();var zc={};Vt(zc,{Modifier:()=>B8,Strategy:()=>uk,Target:()=>p2,WorkspaceModifier:()=>N0e,applyModifier:()=>$ft,extractDescriptorFromPath:()=>v8,extractRangeModifier:()=>L0e,fetchDescriptorFrom:()=>D8,findProjectDescriptors:()=>U0e,getModifier:()=>h2,getSuggestedDescriptors:()=>g2,makeWorkspaceDescriptor:()=>M0e,toWorkspaceModifier:()=>O0e});Ye();Ye();St();var I8=$e(zn()),Xft="workspace:",p2=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(p2||{}),B8=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(B8||{}),N0e=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(N0e||{}),uk=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(uk||{});function h2(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Zft=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function L0e(t,{project:e}){let r=t.match(Zft);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function $ft(t,e){let{protocol:r,source:o,params:a,selector:n}=W.parseRange(t.range);return I8.default.valid(n)&&(n=`${e}${t.range}`),W.makeDescriptor(t,W.makeRange({protocol:r,source:o,params:a,selector:n}))}function O0e(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function M0e(t,e){return W.makeDescriptor(t.anchoredDescriptor,`${Xft}${O0e(e)}`)}async function U0e(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function v8(t,{cwd:e,workspace:r}){return await ept(async o=>{V.isAbsolute(t)||(t=V.relative(r.cwd,V.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await D8(W.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new Qi,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),I=W.convertDescriptorToLocator(E),v=await p.fetch(I,h),x=await Ot.find(v.prefixPath,{baseFs:v.packageFs});if(!x.name)throw new Error("Target path doesn't have a name");return W.makeDescriptor(x.name,t)})}async function g2(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||kr.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${W.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let I=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,v=[],x=[],C=async R=>{try{await R()}catch(L){x.push(L)}};for(let R of A){if(v.length>=p)break;switch(R){case"keep":await C(async()=>{I&&v.push({descriptor:I,name:`Keep ${W.prettyDescriptor(e.configuration,I)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:U}of(await U0e(t,{project:e,target:a})).values()){if(U.length===1&&U[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let J=`(originally used by ${W.prettyLocator(e.configuration,U[0])}`;J+=U.length>1?` and ${U.length-1} other${U.length>2?"s":""})`:")",v.push({descriptor:L,name:`Reuse ${W.prettyDescriptor(e.configuration,L)}`,reason:J})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&v.push({descriptor:L,name:`Reuse ${W.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let U=M0e(L,u);v.push({descriptor:U,name:`Attach ${W.prettyDescriptor(e.configuration,U)}`,reason:`(local workspace at ${de.pretty(e.configuration,L.relativeCwd,de.Type.PATH)})`})});break;case"latest":{let L=e.configuration.get("enableNetwork"),U=e.configuration.get("enableOfflineMode");await C(async()=>{if(a==="peerDependencies")v.push({descriptor:W.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!L&&!U)v.push({descriptor:null,name:"Resolve from latest",reason:de.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let J=await D8(t,E,{project:e,cache:o,workspace:r,modifier:u});J&&v.push({descriptor:J,name:`Use ${W.prettyDescriptor(e.configuration,J)}`,reason:`(resolved from ${U?"the cache":"latest"})`})}})}break}}return{suggestions:v.slice(0,p),rejections:x.slice(0,p)}}async function D8(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(W.makeDescriptor(t,e)),p=new Qi,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),I={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},v={...I,resolver:E,fetchOptions:I},x=E.bindDescriptor(A,a.anchoredLocator,v),C=await E.getCandidates(x,{},v);if(C.length===0)return null;let R=C[0],{protocol:L,source:U,params:J,selector:te}=W.parseRange(W.convertToManifestRange(R.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),I8.default.valid(te)){let ae=te;if(typeof u<"u")te=u+te;else if(n!==!1){let me=typeof n=="string"?n:A.range;te=L0e(me,{project:r})+te}let fe=W.makeDescriptor(R,W.makeRange({protocol:L,source:U,params:J,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(fe),{},v)).length!==1&&(te=ae)}return W.makeDescriptor(R,W.makeRange({protocol:L,source:U,params:J,selector:te}))}async function ept(t){return await oe.mktempPromise(async e=>{let r=Ke.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Lr(e,{configuration:r,check:!1,immutable:!1}))})}var kh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=ge.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=ge.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=ge.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=ge.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=ge.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=ge.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.silent=ge.Boolean("--silent",{hidden:!0});this.packages=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=A||r.get("preferReuse"),h=h2(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(U=>typeof U<"u"),I=A?1/0:1,v=await Promise.all(this.packages.map(async U=>{let J=U.match(/^\.{0,2}\//)?await v8(U,{cwd:this.context.cwd,workspace:a}):W.tryParseDescriptor(U),te=U.match(/^(https?:|git@github)/);if(te)throw new it(`It seems you are trying to add a package using a ${de.pretty(r,`${te[0]}...`,de.Type.RANGE)} url; we now require package names to be explicitly specified. Try running the command again with the package name prefixed: ${de.pretty(r,"yarn add",de.Type.CODE)} ${de.pretty(r,W.makeDescriptor(W.makeIdent(null,"my-package"),`${te[0]}...`),de.Type.DESCRIPTOR)}`);if(!J)throw new it(`The ${de.pretty(r,U,de.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let ae=tpt(a,J,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(ae.map(async ce=>{let me=await g2(J,{project:o,workspace:a,cache:n,fixed:u,target:ce,modifier:h,strategies:E,maxResults:I});return{request:J,suggestedDescriptors:me,target:ce}}))})).then(U=>U.flat()),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:J,suggestedDescriptors:{suggestions:te,rejections:ae}}of v)if(te.filter(ce=>ce.descriptor!==null).length===0){let[ce]=ae;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${W.prettyDescriptor(r,J)} can't be resolved to a satisfying range`):U.reportError(27,`${W.prettyDescriptor(r,J)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ce)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:J}of v){let te,ae=U.filter(he=>he.descriptor!==null),fe=ae[0].descriptor,ce=ae.every(he=>W.areDescriptorsEqual(he.descriptor,fe));ae.length===1||ce?te=fe:(C=!0,{answer:te}=await(0,_0e.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:he,name:Be,reason:we})=>he?{name:Be,hint:we,descriptor:he}:{name:Be,hint:we,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=a.manifest[J].get(te.identHash);(typeof me>"u"||me.descriptorHash!==te.descriptorHash)&&(a.manifest[J].set(te.identHash,te),this.optional&&(J==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:J==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof me>"u"?R.push([a,J,te,E]):L.push([a,J,me,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,R),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` `),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};kh.paths=[["add"]],kh.usage=nt.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"]]});function tpt(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest["dependencies"].has(e.identHash),A=t.manifest["devDependencies"].has(e.identHash),p=t.manifest["peerDependencies"].has(e.identHash);if((r||o)&&u)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new it(`Package "${W.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ye();Ye();qt();var Qh=class extends ut{constructor(){super(...arguments);this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=ge.String({required:!1})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Pt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await un.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new it(`Couldn't find a binary named "${this.name}" for package "${W.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} `),0}return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await un.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,I)=>Math.max(E,I.length),0);for(let[E,[I,v]]of A)u.reportJson({name:E,source:W.stringifyIdent(I),path:v});if(this.verbose)for(let[E,[I]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${W.prettyLocator(r,I)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Qh.paths=[["bin"]],Qh.usage=nt.Usage({description:"get the path to a binary script",details:` When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]});Ye();St();qt();var Fh=class extends ut{constructor(){super(...arguments);this.mirror=ge.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=ge.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Lr.find(r);return(await Nt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await oe.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await oe.removePromise(o.cwd)})).exitCode()}};Fh.paths=[["cache","clean"],["cache","clear"]],Fh.usage=nt.Usage({description:"remove the shared cache files",details:` This command will remove all the files from the cache. `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]});Ye();qt();var q0e=$e(d2()),S8=ve("util"),Rh=class extends ut{constructor(){super(...arguments);this.why=ge.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=ge.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new it(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=_e.convertMapsToIndexableObjects(u),p=a?(0,q0e.default)(A,a):A,h=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} `),h.exitCode();S8.inspect.styles.name="cyan",this.context.stdout.write(`${(0,S8.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} `)}return h.exitCode()}};Rh.paths=[["config","get"]],Rh.usage=nt.Usage({description:"read a configuration settings",details:` This command will print a configuration setting. Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]});Ye();qt();var Fge=$e(k8()),Rge=$e(d2()),Tge=$e(Q8()),F8=ve("util"),Th=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String();this.value=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new it("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>Ke.updateHomeConfiguration(C):C=>Ke.updateConfiguration(o(),C))(C=>{if(n){let R=(0,Fge.default)(C);return(0,Tge.default)(R,this.name,A),R}else return{...C,[a]:A}});let E=(await Ke.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),I=_e.convertMapsToIndexableObjects(E),v=n?(0,Rge.default)(I,n):I;return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{F8.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,F8.inspect)(v,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Th.paths=[["config","set"]],Th.usage=nt.Usage({description:"change a configuration settings",details:` This command will set a configuration setting. When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]});Ye();qt();var Yge=$e(k8()),Wge=$e(Mge()),Kge=$e(T8()),Nh=class extends ut{constructor(){super(...arguments);this.home=ge.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>Ke.updateHomeConfiguration(h):h=>Ke.updateConfiguration(o(),h);return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(I=>{if(!(0,Wge.default)(I,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,I;let v=n?(0,Yge.default)(I):{...I};return(0,Kge.default)(v,this.name),v}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Nh.paths=[["config","unset"]],Nh.usage=nt.Usage({description:"unset a configuration setting",details:` This command will unset a configuration setting. `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]});Ye();St();qt();var fk=ve("util"),Lh=class extends ut{constructor(){super(...arguments);this.noDefaults=ge.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=ge.Boolean("-v,--verbose",{hidden:!0});this.why=ge.Boolean("--why",{hidden:!0});this.names=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await LE({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),I=r.sources.get(p)??"",v=I&&I[0]!=="<"?ue.fromPortablePath(I):I;A.reportJson({key:p,effective:E,source:v,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let I of a){if(this.noDefaults&&!r.sources.has(I))continue;let v=r.settings.get(I),x=r.sources.get(I)??"",C=r.getSpecial(I,{hideSecrets:!0,getNativePaths:!0}),R={Description:{label:"Description",value:de.tuple(de.Type.MARKDOWN,{text:v.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:de.tuple(x[0]==="<"?de.Type.CODE:de.Type.PATH,x)}};h[I]={value:de.tuple(de.Type.CODE,I),children:R};let L=(U,J)=>{for(let[te,ae]of J)if(ae instanceof Map){let fe={};U[te]={children:fe},L(fe,ae)}else U[te]={label:te,value:de.tuple(de.Type.NO_HINT,(0,fk.inspect)(ae,p))}};C instanceof Map?L(R,C):R.Value={label:"Value",value:de.tuple(de.Type.NO_HINT,(0,fk.inspect)(C,p))}}a.length!==1&&(n=void 0),$s.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,fk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` `),this.context.stdout.write(`${p} `)}return u.exitCode()}};Lh.paths=[["config"]],Lh.usage=nt.Usage({description:"display the current configuration",details:` This command prints the current active configuration settings. `,examples:[["Print the active configuration settings","$0 config"]]});Ye();qt();Za();var pk={};Vt(pk,{Strategy:()=>m2,acceptedStrategies:()=>O0t,dedupe:()=>N8});Ye();Ye();var Vge=$e(Zo()),m2=(e=>(e.HIGHEST="highest",e))(m2||{}),O0t=new Set(Object.values(m2)),M0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);_e.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(_e.mapAndFilter(t.storedDescriptors.values(),p=>W.isVirtualDescriptor(p)?_e.mapAndFilter.skip:[p.descriptorHash,_e.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let I=t.originalPackages.get(E);if(typeof I>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let v=r.getResolutionDependencies(p,a),x=Object.fromEntries(await _e.allSettledSafe(Object.entries(v).map(async([te,ae])=>{let fe=A.get(ae.descriptorHash);if(typeof fe>"u")throw new Error(`Assertion failed: The descriptor (${ae.descriptorHash}) should have been registered`);let ce=await fe.promise;if(!ce)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ce.updatedPackage]})));if(e.length&&!Vge.default.isMatch(W.stringifyIdent(p),e)||!r.shouldPersistResolution(I,a))return I;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return I;let R=[...C].map(te=>{let ae=t.originalPackages.get(te);if(typeof ae>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return ae}),L=await r.getSatisfying(p,x,R,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return I;let J=t.originalPackages.get(U.locatorHash);if(typeof J>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return J}).then(async v=>{let x=await t.preparePackage(v,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:I,updatedPackage:v,resolvedPackage:x})}).catch(v=>{h.reject(v)})}return[...A.values()].map(p=>p.promise)}};async function N8(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new Qi,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let I=M0t[e],v=await I(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Xs.progressViaCounter(v.length);await a.reportProgress(x);let C=0;await Promise.all(v.map(U=>U.then(J=>{if(J===null||J.currentPackage.locatorHash===J.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:ae,updatedPackage:fe}=J;a.reportInfo(0,`${W.prettyDescriptor(n,te)} can be deduped from ${W.prettyLocator(n,ae)} to ${W.prettyLocator(n,fe)}`),a.reportJson({descriptor:W.stringifyDescriptor(te),currentResolution:W.stringifyLocator(ae),updatedResolution:W.stringifyLocator(fe)}),t.storedResolutions.set(te.descriptorHash,fe.locatorHash)}).finally(()=>x.tick())));let R;switch(C){case 0:R="No packages";break;case 1:R="One package";break;default:R=`${C} packages`}let L=de.pretty(n,e,de.Type.CODE);return a.reportInfo(0,`${R} can be deduped using the ${L} strategy`),C})}var Oh=class extends ut{constructor(){super(...arguments);this.strategy=ge.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:Ks(m2)});this.check=ge.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=await Lr.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await N8(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Oh.paths=[["dedupe"]],Oh.usage=nt.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]});Ye();qt();var Kd=class extends ut{async execute(){let{plugins:e}=await Ke.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=as.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=Jge()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} `)}};Kd.paths=[["--clipanion=definitions"]];var Vd=class extends ut{async execute(){this.context.stdout.write(this.cli.usage(null))}};Vd.paths=[["help"],["--help"],["-h"]];Ye();St();qt();var mC=class extends ut{constructor(){super(...arguments);this.leadingArgument=ge.String();this.args=ge.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!W.tryParseIdent(this.leadingArgument)){let r=V.resolve(this.context.cwd,ue.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ye();var Jd=class extends ut{async execute(){this.context.stdout.write(`${rn||""} `)}};Jd.paths=[["-v"],["--version"]];Ye();Ye();qt();var Mh=class extends ut{constructor(){super(...arguments);this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Pt.find(r,this.context.cwd);return await o.restoreInstallState(),await un.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Mh.paths=[["exec"]],Mh.usage=nt.Usage({description:"execute a shell script",details:` This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]});Ye();qt();Za();var Uh=class extends ut{constructor(){super(...arguments);this.hash=ge.String({validator:oS(Cy(),[oI(/^p[0-9a-f]{5}$/)])})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),await _0t(this.hash,o,{stdout:this.context.stdout})}};Uh.paths=[["explain","peer-requirements"]],Uh.usage=nt.Usage({description:"explain a set of peer requirements",details:` A set of peer requirements represents all peer requirements that a dependent must satisfy when providing a given peer request to a requester and its descendants. When the hash argument is specified, this command prints a detailed explanation of all requirements of the set corresponding to the hash and whether they're satisfied or not. When used without arguments, this command lists all sets of peer requirements and the corresponding hash that can be used to get detailed information about a given set. **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). `,examples:[["Explain the corresponding set of peer requirements for a hash","$0 explain peer-requirements p1a4ed"],["List all sets of peer requirements","$0 explain peer-requirements"]]});async function _0t(t,e,r){let o=e.peerWarnings.find(n=>n.hash===t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);return(await Nt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async n=>{let u=de.mark(e.configuration);switch(o.type){case 2:{n.reportInfo(0,`We have a problem with ${de.pretty(e.configuration,o.requested,de.Type.IDENT)}, which is provided with version ${W.prettyReference(e.configuration,o.version)}.`),n.reportInfo(0,"It is needed by the following direct dependencies of workspaces in your project:"),n.reportSeparator();for(let h of o.requesters.values()){let E=e.storedPackages.get(h.locatorHash);if(!E)throw new Error("Assertion failed: Expected the package to be registered");let I=E?.peerDependencies.get(o.requested.identHash);if(!I)throw new Error("Assertion failed: Expected the package to list the peer dependency");let v=kr.satisfiesWithPrereleases(o.version,I.range)?u.Check:u.Cross;n.reportInfo(null,` ${v} ${W.prettyLocator(e.configuration,h)} (via ${W.prettyRange(e.configuration,I.range)})`)}let A=[...o.links.values()].filter(h=>!o.requesters.has(h.locatorHash));if(A.length>0){n.reportSeparator(),n.reportInfo(0,`However, those packages themselves have more dependencies listing ${W.prettyIdent(e.configuration,o.requested)} as peer dependency:`),n.reportSeparator();for(let h of A){let E=e.storedPackages.get(h.locatorHash);if(!E)throw new Error("Assertion failed: Expected the package to be registered");let I=E?.peerDependencies.get(o.requested.identHash);if(!I)throw new Error("Assertion failed: Expected the package to list the peer dependency");let v=kr.satisfiesWithPrereleases(o.version,I.range)?u.Check:u.Cross;n.reportInfo(null,` ${v} ${W.prettyLocator(e.configuration,h)} (via ${W.prettyRange(e.configuration,I.range)})`)}}let p=Array.from(o.links.values(),h=>{let E=e.storedPackages.get(h.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: Expected the package to be registered");let I=E.peerDependencies.get(o.requested.identHash);if(typeof I>"u")throw new Error("Assertion failed: Expected the ident to be registered");return I.range});if(p.length>1){let h=kr.simplifyRanges(p);n.reportSeparator(),h===null?(n.reportInfo(0,"Unfortunately, put together, we found no single range that can satisfy all those peer requirements."),n.reportInfo(0,`Your best option may be to try to upgrade some dependencies with ${de.pretty(e.configuration,"yarn up",de.Type.CODE)}, or silence the warning via ${de.pretty(e.configuration,"logFilters",de.Type.CODE)}.`)):n.reportInfo(0,`Put together, the final range we computed is ${de.pretty(e.configuration,h,de.Type.RANGE)}`)}}break;default:n.reportInfo(0,`The ${de.pretty(e.configuration,"yarn explain peer-requirements",de.Type.CODE)} command doesn't support this warning type yet.`);break}})).exitCode()}Ye();qt();Za();Ye();Ye();St();qt();var zge=$e(zn()),_h=class extends ut{constructor(){super(...arguments);this.useYarnPath=ge.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=ge.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(V.contains(p,A))return 0}let o=()=>{if(typeof rn>"u")throw new it("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:rn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await y2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await y2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.version))a={url:`file://${V.resolve(ue.toPortablePath(this.version))}`,version:"file"};else if(kr.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(kr.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(kr.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await H0t(r,this.version));else throw new it(`Invalid version descriptor "${this.version}"`);return(await Nt.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${de.pretty(r,a.url,de.Type.PATH)}`),await oe.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${de.pretty(r,a.url,de.Type.URL)}`),await nn.get(a.url,{configuration:r}))};await L8(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};_h.paths=[["set","version"]],_h.usage=nt.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]});async function H0t(t,e){let o=(await nn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>kr.satisfiesWithPrereleases(a,e));if(o.length===0)throw new it(`No matching release found for range ${de.pretty(t,e,de.Type.RANGE)}.`);return o[0]}async function y2(t,e){let r=await nn.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new it(`Tag ${de.pretty(t,e,de.Type.RANGE)} not found`);return r.latest[e]}async function L8(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await u();await oe.mktempPromise(async ae=>{let fe=V.join(ae,"yarn.cjs");await oe.writeFilePromise(fe,te);let{stdout:ce}=await Ur.execvp(process.execPath,[ue.fromPortablePath(fe),"--version"],{cwd:ae,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ce.trim(),!zge.default.valid(e))throw new Error(`Invalid semver version. ${de.pretty(t,"yarn --version",de.Type.CODE)} returned: ${e}`)})}let A=t.projectCwd??t.startingCwd,p=V.resolve(A,".yarn/releases"),h=V.resolve(p,`yarn-${e}.cjs`),E=V.relative(t.startingCwd,h),I=_e.isTaggedYarnVersion(e),v=t.get("yarnPath"),x=!I,C=x||!!v||!!a;if(a===!1){if(x)throw new zt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${de.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${de.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${de.pretty(t,E,"magenta")}`),await oe.removePromise(V.dirname(h)),await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.writeFilePromise(h,te,{mode:493}),await Ke.updateConfiguration(A,{yarnPath:V.relative(A,h)})}else await oe.removePromise(V.dirname(h)),await Ke.updateConfiguration(A,{yarnPath:Ke.deleteProperty});let R=await Ot.tryFind(A)||new Ot;R.packageManager=`yarn@${I?e:await y2(t,"stable")}`;let L={};R.exportTo(L);let U=V.join(A,Ot.fileName),J=`${JSON.stringify(L,null,R.indent)} `;return await oe.changeFilePromise(U,J,{automaticNewlines:!0}),{bundleVersion:e}}function Xge(t){return wr[AS(t)]}var q0t=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function j0t(t){let r=`https://repo.yarnpkg.com/${_e.isTaggedYarnVersion(rn)?rn:await y2(t,"canary")}/packages/gatsby/content/advanced/error-codes.md`,o=await nn.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(q0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=Xge(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var Hh=class extends ut{constructor(){super(...arguments);this.code=ge.String({required:!1,validator:aI(Cy(),[oI(/^YN[0-9]{4}$/)])});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=Xge(this.code),a=de.pretty(r,o,de.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await j0t(r)).get(this.code),p=typeof A<"u"?de.jsonOrPretty(this.json,r,de.tuple(de.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. You can help us by editing this page on GitHub \u{1F642}: ${de.jsonOrPretty(this.json,r,de.tuple(de.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/gatsby/content/advanced/error-codes.md"))} `;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})} `):this.context.stdout.write(`${n} ${p} `)}else{let o={children:_e.mapAndFilter(Object.entries(wr),([a,n])=>Number.isNaN(Number(a))?_e.mapAndFilter.skip:{label:Wu(Number(a)),value:de.tuple(de.Type.CODE,n)})};$s.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Hh.paths=[["explain"]],Hh.usage=nt.Usage({description:"explain an error code",details:` When the code argument is specified, this command prints its name and its details. When used without arguments, this command lists all error codes and their names. `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]});Ye();St();qt();var Zge=$e(Zo()),qh=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=ge.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=ge.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=ge.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=ge.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=ge.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=ge.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a&&!this.all)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(ae,{recursive:fe})=>{let ce=ae.anchoredLocator.locatorHash,me=new Map,he=[ce];for(;he.length>0;){let Be=he.shift();if(me.has(Be))continue;let we=o.storedPackages.get(Be);if(typeof we>"u")throw new Error("Assertion failed: Expected the package to be registered");if(me.set(Be,we),W.isVirtualLocator(we)&&he.push(W.devirtualizeLocator(we).locatorHash),!(!fe&&Be!==ce))for(let g of we.dependencies.values()){let Ee=o.storedResolutions.get(g.descriptorHash);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the resolution to be registered");he.push(Ee)}}return me.values()},p=({recursive:ae})=>{let fe=new Map;for(let ce of o.workspaces)for(let me of A(ce,{recursive:ae}))fe.set(me.locatorHash,me);return fe.values()},h=({all:ae,recursive:fe})=>ae&&fe?o.storedPackages.values():ae?p({recursive:fe}):A(a,{recursive:fe}),E=({all:ae,recursive:fe})=>{let ce=h({all:ae,recursive:fe}),me=this.patterns.map(we=>{let g=W.parseLocator(we),Ee=Zge.default.makeRe(W.stringifyIdent(g)),Se=W.isVirtualLocator(g),le=Se?W.devirtualizeLocator(g):g;return ne=>{let ee=W.stringifyIdent(ne);if(!Ee.test(ee))return!1;if(g.reference==="unknown")return!0;let Ie=W.isVirtualLocator(ne),Fe=Ie?W.devirtualizeLocator(ne):ne;return!(Se&&Ie&&g.reference!==ne.reference||le.reference!==Fe.reference)}}),he=_e.sortMap([...ce],we=>W.stringifyLocator(we));return{selection:he.filter(we=>me.length===0||me.some(g=>g(we))),sortedLookup:he}},{selection:I,sortedLookup:v}=E({all:this.all,recursive:this.recursive});if(I.length===0)throw new it("No package matched your request");let x=new Map;if(this.dependents)for(let ae of v)for(let fe of ae.dependencies.values()){let ce=o.storedResolutions.get(fe.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: Expected the resolution to be registered");_e.getArrayWithDefault(x,ce).push(ae)}let C=new Map;for(let ae of v){if(!W.isVirtualLocator(ae))continue;let fe=W.devirtualizeLocator(ae);_e.getArrayWithDefault(C,fe.locatorHash).push(ae)}let R={},L={children:R},U=r.makeFetcher(),J={project:o,fetcher:U,cache:n,checksums:o.storedChecksums,report:new Qi,cacheOptions:{skipIntegrityCheck:!0}},te=[async(ae,fe,ce)=>{if(!fe.has("manifest"))return;let me=await U.fetch(ae,J),he;try{he=await Ot.find(me.prefixPath,{baseFs:me.packageFs})}finally{me.releaseFs?.()}ce("Manifest",{License:de.tuple(de.Type.NO_HINT,he.license),Homepage:de.tuple(de.Type.URL,he.raw.homepage??null)})},async(ae,fe,ce)=>{if(!fe.has("cache"))return;let me=o.storedChecksums.get(ae.locatorHash)??null,he=n.getLocatorPath(ae,me),Be;if(he!==null)try{Be=await oe.statPromise(he)}catch{}let we=typeof Be<"u"?[Be.size,de.Type.SIZE]:void 0;ce("Cache",{Checksum:de.tuple(de.Type.NO_HINT,me),Path:de.tuple(de.Type.PATH,he),Size:we})}];for(let ae of I){let fe=W.isVirtualLocator(ae);if(!this.virtuals&&fe)continue;let ce={},me={value:[ae,de.Type.LOCATOR],children:ce};if(R[W.stringifyLocator(ae)]=me,this.nameOnly){delete me.children;continue}let he=C.get(ae.locatorHash);typeof he<"u"&&(ce.Instances={label:"Instances",value:de.tuple(de.Type.NUMBER,he.length)}),ce.Version={label:"Version",value:de.tuple(de.Type.NO_HINT,ae.version)};let Be=(g,Ee)=>{let Se={};if(ce[g]=Se,Array.isArray(Ee))Se.children=Ee.map(le=>({value:le}));else{let le={};Se.children=le;for(let[ne,ee]of Object.entries(Ee))typeof ee>"u"||(le[ne]={label:ne,value:ee})}};if(!fe){for(let g of te)await g(ae,u,Be);await r.triggerHook(g=>g.fetchPackageInfo,ae,u,Be)}ae.bin.size>0&&!fe&&Be("Exported Binaries",[...ae.bin.keys()].map(g=>de.tuple(de.Type.PATH,g)));let we=x.get(ae.locatorHash);typeof we<"u"&&we.length>0&&Be("Dependents",we.map(g=>de.tuple(de.Type.LOCATOR,g))),ae.dependencies.size>0&&!fe&&Be("Dependencies",[...ae.dependencies.values()].map(g=>{let Ee=o.storedResolutions.get(g.descriptorHash),Se=typeof Ee<"u"?o.storedPackages.get(Ee)??null:null;return de.tuple(de.Type.RESOLUTION,{descriptor:g,locator:Se})})),ae.peerDependencies.size>0&&fe&&Be("Peer dependencies",[...ae.peerDependencies.values()].map(g=>{let Ee=ae.dependencies.get(g.identHash),Se=typeof Ee<"u"?o.storedResolutions.get(Ee.descriptorHash)??null:null,le=Se!==null?o.storedPackages.get(Se)??null:null;return de.tuple(de.Type.RESOLUTION,{descriptor:g,locator:le})}))}$s.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};qh.paths=[["info"]],qh.usage=nt.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]});Ye();St();Nl();var hk=$e(td());qt();var O8=$e(zn());Za();var G0t=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],jh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=ge.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=ge.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=ge.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=ge.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=ge.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=ge.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.cacheFolder=ge.String("--cache-folder",{hidden:!0});this.frozenLockfile=ge.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=ge.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=ge.Boolean("--non-interactive",{hidden:!0});this.preferOffline=ge.Boolean("--prefer-offline",{hidden:!0});this.production=ge.Boolean("--production",{hidden:!0});this.registry=ge.String("--registry",{hidden:!0});this.silent=ge.Boolean("--silent",{hidden:!0});this.networkTimeout=ge.String("--network-timeout",{hidden:!0})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await LE({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!hk.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!hk.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!o},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!hk.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new it(`${de.pretty(r,"--immutable",de.Type.CODE)} and ${de.pretty(r,"--immutable-cache",de.Type.CODE)} cannot be used with ${de.pretty(r,"--mode=update-lockfile",de.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let R=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U=!1;await K0t(r,u)&&(L.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await W0t(r,u)&&(L.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&L.reportSeparator()});if(R.hasErrors())return R.exitCode()}if(r.projectCwd!==null){let R=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{if(Ke.telemetry?.isNew)Ke.telemetry.commitTips(),L.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),L.reportInfo(65,`Run ${de.pretty(r,"yarn config set --home enableTelemetry 0",de.Type.CODE)} to disable`),L.reportSeparator();else if(Ke.telemetry?.shouldShowTips){let U=await nn.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let J=null;if(rn!==null){let ae=O8.default.prerelease(rn)?"canary":"stable",fe=U.latest[ae];O8.default.gt(fe,rn)&&(J=[ae,fe])}if(J)Ke.telemetry.commitTips(),L.reportInfo(88,`${de.applyStyle(r,`A new ${J[0]} version of Yarn is available:`,de.Style.BOLD)} ${W.prettyReference(r,J[1])}!`),L.reportInfo(88,`Upgrade now by running ${de.pretty(r,`yarn set version ${J[1]}`,de.Type.CODE)}`),L.reportSeparator();else{let te=Ke.telemetry.selectTip(U.tips);te&&(L.reportInfo(89,de.pretty(r,te.message,de.Type.MARKDOWN_INLINE)),te.url&&L.reportInfo(89,`Learn more at ${te.url}`),L.reportSeparator())}}}});if(R.hasErrors())return R.exitCode()}let{project:p,workspace:h}=await Pt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let R=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U={};for(let J of G0t)J.selector(E)&&typeof r.sources.get(J.name)>"u"&&(r.use("",{[J.name]:J.value},p.cwd,{overwrite:!0}),U[J.name]=J.value);Object.keys(U).length>0&&(await Ke.updateConfiguration(p.cwd,U),L.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),L.reportSeparator())});if(R.hasErrors())return R.exitCode()}let I=await Lr.find(r,{immutable:A,check:this.checkCache});if(!h)throw new rr(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let v=r.get("enableHardenedMode");v&&typeof r.sources.get("enableHardenedMode")>"u"&&await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async R=>{R.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),R.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${de.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),R.reportSeparator()}),(this.refreshLockfile??v)&&(p.lockfileNeedsRefresh=!0);let x=this.checkResolutions??v;return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async R=>{await p.install({cache:I,report:R,immutable:u,checkResolutions:x,mode:this.mode})})).exitCode()}};jh.paths=[["install"],nt.Default],jh.usage=nt.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]});var Y0t="<<<<<<<";async function W0t(t,e){if(!t.projectCwd)return!1;let r=V.join(t.projectCwd,dr.lockfile);if(!await oe.existsPromise(r)||!(await oe.readFilePromise(r,"utf8")).includes(Y0t))return!1;if(e)throw new zt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Ur.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Ur.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Ur.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new zt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Ur.execvp("git",["show",`${A}:./${dr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new zt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Ki(p.stdout)}catch{throw new zt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n){if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=W.parseDescriptor(p,!0),E=t.normalizeDependency(h),I=W.stringifyDescriptor(E);I!==p&&(A[I]=A[p],delete A[p])}for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=A[p].checksum;typeof h=="string"&&h.includes("/")||(A[p].checksum=`${A.__metadata.cacheKey}/${h}`)}}let u=Object.assign({},...n);u.__metadata.version=`${Math.min(...n.map(A=>parseInt(A.__metadata.version??0)))}`,u.__metadata.cacheKey="merged";for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await oe.changeFilePromise(r,Ba(u),{automaticNewlines:!0}),!0}async function K0t(t,e){if(!t.projectCwd)return!1;let r=[],o=V.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await Ke.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let u=n.filter(A=>{if(!A.path)return!0;let p=V.resolve(t.projectCwd,A.path),h=v1.has(A.spec)&&V.contains(o,p);return h&&r.push(p),!h});return u.length===0?Ke.deleteProperty:u.length===n.length?n:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await oe.removePromise(n)})),!0):!1}Ye();St();qt();var Gh=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=ge.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=ge.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let p of this.destinations){let h=V.resolve(this.context.cwd,ue.toPortablePath(p)),E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await Pt.find(E,h);if(o.cwd===I.cwd)throw new it(`Invalid destination '${p}'; Can't link the project to itself`);if(!v)throw new rr(I.cwd,h);if(this.all){let x=!1;for(let C of I.workspaces)C.manifest.name&&(!C.manifest.private||this.private)&&(A.push(C),x=!0);if(!x)throw new it(`No workspace found to be linked in the target project: ${p}`)}else{if(!v.manifest.name)throw new it(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(v.manifest.private&&!this.private)throw new it(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);A.push(v)}}for(let p of A){let h=W.stringifyIdent(p.anchoredLocator),E=this.relative?V.relative(o.cwd,p.cwd):p.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Gh.paths=[["link"]],Gh.usage=nt.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]});qt();var Yh=class extends ut{constructor(){super(...arguments);this.args=ge.Proxy()}async execute(){return this.cli.run(["exec","node",...this.args])}};Yh.paths=[["node"]],Yh.usage=nt.Usage({description:"run node with the hook already setup",details:` This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. `,examples:[["Run a Node script","$0 node ./my-script.js"]]});Ye();qt();var Wh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await Ke.findRcFiles(this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(!!u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await nn.get(A.spec,{configuration:r}),h=wn.makeHash(p);if(A.checksum===h)continue;let E=de.pretty(r,A.path,de.Type.PATH),I=de.pretty(r,A.spec,de.Type.URL),v=`${E} is different from the file provided by ${I}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,v)}})).exitCode()}};Wh.paths=[["plugin","check"]],Wh.usage=nt.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` Check only the plugins from https. If this command detects any plugin differences in the CI environment, it will throw an error. `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]});Ye();Ye();St();qt();var nde=ve("os");Ye();St();qt();var $ge=ve("os");Ye();Nl();qt();var V0t="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function zd(t,e){let r=await nn.get(V0t,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||kr.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var Kh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await zd(r,rn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};Kh.paths=[["plugin","list"]],Kh.usage=nt.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]});var J0t=/^[0-9]+$/,z0t=process.platform==="win32";function ede(t){return J0t.test(t)?`pull/${t}/head`:t}var X0t=({repository:t,branch:e},r)=>[["git","init",ue.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",ede(e)],["git","reset","--hard","FETCH_HEAD"]],Z0t=({branch:t})=>[["git","fetch","origin","--depth=1",ede(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],$0t=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",V.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[z0t?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",ue.fromPortablePath(r),"|"]],Vh=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=ge.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=ge.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,$ge.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{await M8(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Ur.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=V.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);oe.existsSync(p)||(await E2($0t(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await oe.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await L8(r,null,async()=>h,{report:u});this.skipPlugins||await egt(this,E,{project:o,report:u,target:a})}})).exitCode()}};Vh.paths=[["set","version","from","sources"]],Vh.usage=nt.Usage({description:"build Yarn from master",details:` This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. `,examples:[["Build Yarn from master","$0 set version from sources"]]});async function E2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Ur.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${de.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} `);try{await Ur.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function M8(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&oe.existsSync(V.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await E2(Z0t(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await oe.removePromise(o),await oe.mkdirPromise(o,{recursive:!0}),await E2(X0t(t,o),{configuration:e,context:t.context,target:o}))}async function egt(t,e,{project:r,report:o,target:a}){let n=await zd(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())!u.has(A)||await U8(A,t,{project:r,report:o,target:a})}Ye();Ye();St();qt();var tde=$e(zn()),rde=ve("vm");var Jh=class extends ut{constructor(){super(...arguments);this.name=ge.String();this.checksum=ge.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Pt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||ue.isAbsolute(this.name)){let p=V.resolve(this.context.cwd,ue.toPortablePath(this.name));a.reportInfo(0,`Reading ${de.pretty(r,p,de.Type.PATH)}`),u=V.relative(n.cwd,p),A=await oe.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new zt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=W.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!tde.default.valid(h.reference))throw new zt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=W.stringifyIdent(h),I=await zd(r,rn);if(!Object.hasOwn(I,E)){let v=`Couldn't find a plugin named ${W.prettyIdent(r,h)} on the remote registry. `;throw r.plugins.has(E)?v+=`A plugin named ${W.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:v+=`Note that only the plugins referenced on our website (${de.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",de.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${de.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",de.Type.URL)}).`,new zt(51,v)}u=E,p=I[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):rn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${rn}/`))}a.reportInfo(0,`Downloading ${de.pretty(r,p,"green")}`),A=await nn.get(p,{configuration:r})}await _8(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};Jh.paths=[["plugin","import"]],Jh.usage=nt.Usage({category:"Plugin-related commands",description:"download a plugin",details:` This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. Three types of plugin references are accepted: - If the plugin is stored within the Yarn repository, it can be referenced by name. - Third-party plugins can be referenced directly through their public urls. - Local plugins can be referenced by their path on the disk. If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]});async function _8(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,rde.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=V.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${de.pretty(n,h,"magenta")}`),await oe.mkdirPromise(V.dirname(E),{recursive:!0}),await oe.writeFilePromise(E,e);let I={path:h,spec:t};r&&(I.checksum=wn.makeHash(e)),await Ke.addPlugin(o.cwd,[I])}var tgt=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],zh=class extends ut{constructor(){super(...arguments);this.installPath=ge.String("--path",{description:"The path where the repository should be cloned to"});this.repository=ge.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=ge.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=ge.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=ge.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?V.resolve(this.context.cwd,ue.toPortablePath(this.installPath)):V.resolve(ue.toPortablePath((0,nde.tmpdir)()),"yarnpkg-sources",wn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await Pt.find(r,this.context.cwd),A=W.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=W.stringifyIdent(A),h=await zd(r,rn);if(!Object.hasOwn(h,p))throw new zt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await M8(this,{configuration:r,report:n,target:o}),await U8(E,this,{project:u,report:n,target:o})})).exitCode()}};zh.paths=[["plugin","import","from","sources"]],zh.usage=nt.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. The plugins can be referenced by their short name if sourced from the official Yarn repository. `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]});async function U8(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await E2(tgt({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=V.resolve(n,`packages/${u}/bundles/${t}.js`),h=await oe.readFilePromise(p);await _8(t,h,{project:o,report:a})}Ye();St();qt();var Xh=class extends ut{constructor(){super(...arguments);this.name=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=W.parseIdent(u);if(!r.plugins.has(u))throw new it(`${W.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=V.resolve(o.cwd,p);oe.existsSync(h)&&(n.reportInfo(0,`Removing ${de.pretty(r,p,de.Type.PATH)}...`),await oe.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await Ke.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let I=E.filter(v=>v.path!==p);return I.length===0?Ke.deleteProperty:I.length===E.length?E:I}})})).exitCode()}};Xh.paths=[["plugin","remove"]],Xh.usage=nt.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]});Ye();qt();var Zh=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Zh.paths=[["plugin","runtime"]],Zh.usage=nt.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. `,examples:[["List the currently active plugins","$0 plugin runtime"]]});Ye();Ye();qt();var $h=class extends ut{constructor(){super(...arguments);this.idents=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(W.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new Qi}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};$h.paths=[["rebuild"]],$h.usage=nt.Usage({description:"rebuild the project's native packages",details:` This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]});Ye();Ye();Ye();qt();var H8=$e(Zo());Za();var e0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let R=!1,L=W.parseIdent(C);for(let U of u){let J=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,H8.default)(J,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,R=!0;for(let te of A){let ae=U.manifest.getForScope(te),fe=[...ae.values()].map(ce=>W.stringifyIdent(ce));for(let ce of(0,H8.default)(fe,W.stringifyIdent(L))){let{identHash:me}=W.parseIdent(ce),he=ae.get(me);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(me),E.push([U,te,he]),h=!0,R=!0}}}R||p.push(C)}let I=p.length>1?"Patterns":"Pattern",v=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new it(`${I} ${de.prettyList(r,p,de.Type.CODE)} ${v} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};e0.paths=[["remove"]],e0.usage=nt.Usage({description:"remove dependencies from the project",details:` This command will remove the packages matching the specified patterns from the current workspace. If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]});Ye();Ye();qt();var ide=ve("util"),Xd=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=_e.sortMap(A.keys(),I=>I),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((I,v)=>Math.max(I,v.length),0);for(let[I,v]of A.entries())u.reportInfo(null,`${I.padEnd(E," ")} ${(0,ide.inspect)(v,h)}`),u.reportJson({name:I,script:v})})).exitCode()}};Xd.paths=[["run"]];Ye();Ye();qt();var t0=class extends ut{constructor(){super(...arguments);this.inspect=ge.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=ge.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=ge.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=ge.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=ge.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=ge.Boolean("--silent",{hidden:!0});this.scriptName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await Pt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await un.hasPackageScript(u,this.scriptName,{project:o}))return await un.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await un.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await un.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async I=>I.manifest.scripts.has(this.scriptName)?I:null))).filter(I=>I!==null);if(E.length===1)return await un.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${W.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${W.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new it("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,I]of AC)for(let v of I)if(h.length>=v.length&&JSON.stringify(h.slice(0,v.length))===JSON.stringify(v))throw new it(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new it(`Couldn't find a script named "${this.scriptName}".`)}}};t0.paths=[["run"]],t0.usage=nt.Usage({description:"run a script defined in the package.json",details:` This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]});Ye();Ye();qt();var r0=class extends ut{constructor(){super(...arguments);this.descriptor=ge.String();this.resolution=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new rr(o.cwd,this.context.cwd);let u=W.parseDescriptor(this.descriptor,!0),A=W.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};r0.paths=[["set","resolution"]],r0.usage=nt.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]});Ye();St();qt();var sde=$e(Zo()),n0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=V.resolve(this.context.cwd,ue.toPortablePath(p));if(_e.isPathLike(p)){let E=await Ke.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:I,workspace:v}=await Pt.find(E,h);if(!v)throw new rr(I.cwd,h);if(this.all){for(let x of I.workspaces)x.manifest.name&&A.add(W.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new it("No workspace found to be unlinked in the target project")}else{if(!v.manifest.name)throw new it("The target workspace doesn't have a name and thus cannot be unlinked");A.add(W.stringifyIdent(v.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:I})=>I.descriptor.fullName)];for(let I of(0,sde.default)(E,p))A.add(I)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};n0.paths=[["unlink"]],n0.usage=nt.Usage({description:"disconnect the local project from another one",details:` This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]});Ye();Ye();Ye();qt();var ode=$e(f2()),q8=$e(Zo());Za();var Jf=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=ge.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=ge.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=ge.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=ge.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=ge.String("--mode",{description:"Change what artifacts installs generate",validator:Ks(pl)});this.patterns=ge.Rest()}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(E=>W.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(W.parseDescriptor(E).range!=="unknown")throw new it("Ranges aren't allowed when using --recursive");for(let I of(0,q8.default)(A,E)){let v=W.parseIdent(I);p.add(v.identHash)}}let h=u.filter(E=>p.has(E.identHash));for(let E of h)o.storedDescriptors.delete(E.descriptorHash),o.storedResolutions.delete(E.descriptorHash);return await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=this.interactive??r.get("preferInteractive"),p=h2(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],I=[];for(let L of this.patterns){let U=!1,J=W.parseDescriptor(L),te=W.stringifyIdent(J);for(let ae of o.workspaces)for(let fe of["dependencies","devDependencies"]){let me=[...ae.manifest.getForScope(fe).values()].map(Be=>W.stringifyIdent(Be)),he=te==="*"?me:(0,q8.default)(me,te);for(let Be of he){let we=W.parseIdent(Be),g=ae.manifest[fe].get(we.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let Ee=W.makeDescriptor(we,J.range);E.push(Promise.resolve().then(async()=>[ae,fe,g,await g2(Ee,{project:o,workspace:ae,cache:n,target:fe,fixed:u,modifier:p,strategies:h})])),U=!0}}U||I.push(L)}if(I.length>1)throw new it(`Patterns ${de.prettyList(r,I,de.Type.CODE)} don't match any packages referenced by any workspace`);if(I.length>0)throw new it(`Pattern ${de.prettyList(r,I,de.Type.CODE)} doesn't match any packages referenced by any workspace`);let v=await Promise.all(E),x=await AA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async L=>{for(let[,,U,{suggestions:J,rejections:te}]of v){let ae=J.filter(fe=>fe.descriptor!==null);if(ae.length===0){let[fe]=te;if(typeof fe>"u")throw new Error("Assertion failed: Expected an error to have been set");let ce=this.cli.error(fe);o.configuration.get("enableNetwork")?L.reportError(27,`${W.prettyDescriptor(r,U)} can't be resolved to a satisfying range ${ce}`):L.reportError(27,`${W.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) ${ce}`)}else ae.length>1&&!A&&L.reportError(27,`${W.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,R=[];for(let[L,U,,{suggestions:J}]of v){let te,ae=J.filter(he=>he.descriptor!==null),fe=ae[0].descriptor,ce=ae.every(he=>W.areDescriptorsEqual(he.descriptor,fe));ae.length===1||ce?te=fe:(C=!0,{answer:te}=await(0,ode.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${W.prettyWorkspace(r,L)} \u276F ${U}?`,choices:J.map(({descriptor:he,name:Be,reason:we})=>he?{name:Be,hint:we,descriptor:he}:{name:Be,hint:we,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let me=L.manifest[U].get(te.identHash);if(typeof me>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(me.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),R.push([L,U,me,te]);else{let he=r.makeResolver(),Be={project:o,resolver:he},we=r.normalizeDependency(me),g=he.bindDescriptor(we,L.anchoredLocator,Be);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,R),C&&this.context.stdout.write(` `),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Jf.paths=[["up"]],Jf.usage=nt.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]}),Jf.schema=[cI("recursive",Gu.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})];Ye();Ye();Ye();qt();var i0=class extends ut{constructor(){super(...arguments);this.recursive=ge.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=ge.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=W.parseIdent(this.package).identHash,u=this.recursive?ngt(o,n,{configuration:r,peers:this.peers}):rgt(o,n,{configuration:r,peers:this.peers});$s.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};i0.paths=[["why"]],i0.usage=nt.Usage({description:"display the reason why a package is needed",details:` This command prints the exact reasons why a package appears in the dependency tree. If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]});function rgt(t,e,{configuration:r,peers:o}){let a=_e.sortMap(t.storedPackages.values(),A=>W.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let I=t.storedResolutions.get(E.descriptorHash);if(!I)throw new Error("Assertion failed: The resolution should have been registered");let v=t.storedPackages.get(I);if(!v)throw new Error("Assertion failed: The package should have been registered");if(v.identHash!==e)continue;{let C=W.stringifyLocator(A);n[C]={value:[A,de.Type.LOCATOR],children:p}}let x=W.stringifyLocator(v);p[x]={value:[{descriptor:E,locator:v},de.Type.DEPENDENT]}}}return u}function ngt(t,e,{configuration:r,peers:o}){let a=_e.sortMap(t.workspaces,v=>W.stringifyLocator(v.anchoredLocator)),n=new Set,u=new Set,A=v=>{if(n.has(v.locatorHash))return u.has(v.locatorHash);if(n.add(v.locatorHash),v.identHash===e)return u.add(v.locatorHash),!0;let x=!1;v.identHash===e&&(x=!0);for(let C of v.dependencies.values()){if(!o&&v.peerDependencies.has(C.identHash))continue;let R=t.storedResolutions.get(C.descriptorHash);if(!R)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(R);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(v.locatorHash),x};for(let v of a)A(v.anchoredPackage);let p=new Set,h={},E={children:h},I=(v,x,C)=>{if(!u.has(v.locatorHash))return;let R=C!==null?de.tuple(de.Type.DEPENDENT,{locator:v,descriptor:C}):de.tuple(de.Type.LOCATOR,v),L={},U={value:R,children:L},J=W.stringifyLocator(v);if(x[J]=U,!p.has(v.locatorHash)&&(p.add(v.locatorHash),!(C!==null&&t.tryWorkspaceByLocator(v))))for(let te of v.dependencies.values()){if(!o&&v.peerDependencies.has(te.identHash))continue;let ae=t.storedResolutions.get(te.descriptorHash);if(!ae)throw new Error("Assertion failed: The resolution should have been registered");let fe=t.storedPackages.get(ae);if(!fe)throw new Error("Assertion failed: The package should have been registered");I(fe,L,te)}};for(let v of a)I(v.anchoredPackage,h,null);return E}Ye();var Z8={};Vt(Z8,{GitFetcher:()=>w2,GitResolver:()=>I2,default:()=>vgt,gitUtils:()=>ra});Ye();St();var ra={};Vt(ra,{TreeishProtocols:()=>C2,clone:()=>X8,fetchBase:()=>bde,fetchChangedFiles:()=>xde,fetchChangedWorkspaces:()=>Igt,fetchRoot:()=>Pde,isGitUrl:()=>CC,lsRemote:()=>Sde,normalizeLocator:()=>wgt,normalizeRepoUrl:()=>yC,resolveUrl:()=>z8,splitRepoUrl:()=>s0,validateRepoUrl:()=>J8});Ye();St();qt();var Bde=$e(Cde()),vde=$e(mU()),EC=$e(ve("querystring")),K8=$e(zn());function W8(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function wde(t){try{return new URL(t)}catch{return}}function Egt(t){let e=W8(t,"@","#"),r=W8(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),W8(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Ide(t){return wde(t)||wde(Egt(t))}function yC(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Ide(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function Dde(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var Cgt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],C2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(C2||{});function CC(t){return t?Cgt.some(e=>!!t.match(e)):!1}function s0(t){t=yC(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=EC.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(C2).find(p=>Object.hasOwn(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(C2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function wgt(t){return W.makeLocator(t,yC(t.reference))}function J8(t,{configuration:e}){let r=yC(t,{git:!0});if(!nn.getNetworkSettings(`https://${(0,Bde.default)(r).resource}`,{configuration:e}).enableNetwork)throw new zt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function Sde(t,e){let r=J8(t,{configuration:e}),o=await V8("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:Dde()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function z8(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=s0(t),u=await Sde(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return EC.default.stringify({...n,commit:E})}case"head":{let I=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof I>"u")throw new Error(`Unknown head ("${E}")`);return EC.default.stringify({...n,commit:I})}case"tag":{let I=u.get(`refs/tags/${E}`);if(typeof I>"u")throw new Error(`Unknown tag ("${E}")`);return EC.default.stringify({...n,commit:I})}case"semver":{let I=kr.validRange(E);if(!I)throw new Error(`Invalid range ("${E}")`);let v=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,R])=>[K8.default.parse(C.slice(10)),R]).filter(C=>C[0]!==null)),x=K8.default.maxSatisfying([...v.keys()],I);if(x===null)throw new Error(`No matching range ("${E}")`);return EC.default.stringify({...n,commit:v.get(x)})}case null:{let I;if((I=p("commit",E))!==null||(I=p("tag",E))!==null||(I=p("head",E))!==null)return I;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return yC(`${r}#${A(o,a)}`)}async function X8(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=s0(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=J8(r,{configuration:e}),u=await oe.mktempPromise(),A={cwd:u,env:Dde()};return await V8("cloning the repository",["clone","-c core.autocrlf=false",n,ue.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await V8("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function Pde(t){let e,r=t;do{if(e=r,await oe.existsPromise(V.join(e,".git")))return e;r=V.dirname(e)}while(r!==e);return null}async function bde(t,{baseRefs:e}){if(e.length===0)throw new it("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Ur.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new it(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Ur.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Ur.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function xde(t,{base:e,project:r}){let o=_e.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Ur.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>V.resolve(t,ue.toPortablePath(h))),{stdout:u}=await Ur.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>V.resolve(t,ue.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!V.relative(r.cwd,h).match(o)):p}async function Igt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let r=[V.resolve(e.cwd,dr.lockfile),V.resolve(e.cwd,e.configuration.get("cacheFolder")),V.resolve(e.cwd,e.configuration.get("installStatePath")),V.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await Pde(e.configuration.projectCwd);if(o==null)throw new it("This command can only be run on Git repositories");let a=await bde(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await xde(o,{base:a.hash,project:e});return new Set(_e.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?_e.mapAndFilter.skip:r.some(p=>u.startsWith(p))?_e.mapAndFilter.skip:A}))}async function V8(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Ur.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Ur.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new zt(1,`Failed ${t}`,p=>{p.reportError(1,` ${de.prettyField(o,{label:"Repository URL",value:de.tuple(de.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,I]=h;E=E.toLowerCase();let v=E==="error"?"Error":`${(0,vde.default)(E)} Error`;p.reportError(1,` ${de.prettyField(o,{label:v,value:de.tuple(de.Type.NO_HINT,I)})}`)}u?.(p)})}}var w2=class{supports(e,r){return CC(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,o);let n={...r,checksums:a},u=await this.downloadHosted(e,n);if(u!==null)return u;let[A,p,h]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:A,releaseFs:p,prefixPath:W.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=await X8(e.reference,r.project.configuration),a=s0(e.reference),n=V.join(o,"package.tgz");await un.prepareExternalProject(o,n,{configuration:r.project.configuration,report:r.report,workspace:a.extra.workspace,locator:e});let u=await oe.readFilePromise(n);return await _e.releaseAfterUseAsync(async()=>await Xi.convertToZip(u,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1}))}};Ye();Ye();var I2=class{supportsDescriptor(e,r){return CC(e.range)}supportsLocator(e,r){return CC(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await z8(e.range,o.project.configuration);return[W.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=s0(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=s0(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var Bgt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[w2],resolvers:[I2]};var vgt=Bgt;qt();var o0=class extends ut{constructor(){super(...arguments);this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=ge.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=ge.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ra.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let I=new Set,v=new Set;for(let x of Ot.hardDependencies)for(let[C,R]of h.getForScope(x)){let L=o.tryWorkspaceByDescriptor(R);L===null?o.workspacesByIdent.has(C)&&v.add(R):I.add(L)}E={workspaceDependencies:Array.from(I).map(x=>x.relativeCwd),mismatchedWorkspaceDependencies:Array.from(v).map(x=>W.stringifyDescriptor(x))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?W.stringifyIdent(h.name):null,...E})}})).exitCode()}};o0.paths=[["workspaces","list"]],o0.usage=nt.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "});Ye();Ye();qt();var a0=class extends ut{constructor(){super(...arguments);this.workspaceName=ge.String();this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[W.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new it(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: - ${p.join(` - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};a0.paths=[["workspace"]],a0.usage=nt.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` This command will run a given sub-command on a single workspace. `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]});var Dgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:kde.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[Fh,Rh,Th,Nh,r0,Vh,_h,o0,Kd,Vd,mC,Jd,kh,Qh,Lh,Oh,Mh,Uh,Hh,qh,jh,Gh,n0,Yh,Wh,zh,Jh,Xh,Kh,Zh,$h,e0,Xd,t0,Jf,i0,a0]},Sgt=Dgt;var iH={};Vt(iH,{default:()=>bgt});Ye();var kt={optional:!0},eH=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{["supports-color"]:kt}}],["got@<11",{dependencies:{["@types/responselike"]:"^1.0.0",["@types/keyv"]:"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{["@types/keyv"]:"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{["vscode-jsonrpc"]:"^5.0.1",["vscode-languageserver-protocol"]:"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{["postcss-html"]:kt,["postcss-jsx"]:kt,["postcss-less"]:kt,["postcss-markdown"]:kt,["postcss-scss"]:kt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{["tiny-warning"]:"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:kt}}],["snowpack@>=3.3.0",{dependencies:{["node-gyp"]:"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:kt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:kt,"vue-template-compiler":kt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:kt,"utf-8-validate":kt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{["babel-polyfill"]:"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{["cross-spawn"]:"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{["prop-types"]:"^15.7.2"}}],["@rebass/forms@*",{dependencies:{["@styled-system/should-forward-prop"]:"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt,"vuetify-loader":kt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":kt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":kt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:kt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:kt,tinyliquid:kt,"liquid-node":kt,jade:kt,"then-jade":kt,dust:kt,"dustjs-helpers":kt,"dustjs-linkedin":kt,swig:kt,"swig-templates":kt,"razor-tmpl":kt,atpl:kt,liquor:kt,twig:kt,ejs:kt,eco:kt,jazz:kt,jqtpl:kt,hamljs:kt,hamlet:kt,whiskers:kt,"haml-coffee":kt,"hogan.js":kt,templayed:kt,handlebars:kt,underscore:kt,lodash:kt,pug:kt,"then-pug":kt,qejs:kt,walrus:kt,mustache:kt,just:kt,ect:kt,mote:kt,toffee:kt,dot:kt,"bracket-template":kt,ractive:kt,nunjucks:kt,htmling:kt,"babel-core":kt,plates:kt,"react-dom":kt,react:kt,"arc-templates":kt,vash:kt,slm:kt,marko:kt,teacup:kt,"coffee-script":kt,squirrelly:kt,twing:kt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":kt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":kt,vue:kt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:kt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:kt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":kt,"webpack-command":kt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":kt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":kt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:kt,jimp:kt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":kt,"eslint-import-resolver-typescript":kt,"eslint-import-resolver-webpack":kt,"@typescript-eslint/parser":kt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":kt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":kt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:kt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:kt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{["vue-template-compiler"]:"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{["@parcel/core"]:"*"}}],["parcel@*",{peerDependenciesMeta:{["@parcel/core"]:kt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:kt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:kt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:kt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":kt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}]];var tH;function Qde(){return typeof tH>"u"&&(tH=ve("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),tH}var rH;function Fde(){return typeof rH>"u"&&(rH=ve("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),rH}var nH;function Rde(){return typeof nH>"u"&&(nH=ve("zlib").brotliDecompressSync(Buffer.from("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","base64")).toString()),nH}var Tde=new Map([[W.makeIdent(null,"fsevents").identHash,Qde],[W.makeIdent(null,"resolve").identHash,Fde],[W.makeIdent(null,"typescript").identHash,Rde]]),Pgt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of eH)e(W.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let o=W.parseIdent(e.slice(r.length)),a=Tde.get(o.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof Tde.get(t.identHash)>"u"?t:W.makeDescriptor(t,W.makeRange({protocol:"patch:",source:W.stringifyDescriptor(t),selector:`optional!builtin`,params:null}))}},bgt=Pgt;var wH={};Vt(wH,{ConstraintsCheckCommand:()=>h0,ConstraintsQueryCommand:()=>f0,ConstraintsSourceCommand:()=>p0,default:()=>tdt});Ye();Ye();v2();var IC=class{constructor(e){this.project=e}createEnvironment(){let e=new wC(["cwd","ident"]),r=new wC(["workspace","type","ident"]),o=new wC(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,u=new Map;for(let A of this.project.storedPackages.values()){let p=Array.from(A.peerDependencies.values(),h=>[W.stringifyIdent(h),h.range]);n.set(A.locatorHash,{workspace:null,ident:W.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let p=n.get(A.locatorHash);p.dependencies=new Map(Array.from(A.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let I=n.get(E);if(typeof I>"u")throw new Error("Assertion failed: The package should have been registered");return[W.stringifyIdent(h),I]})),p.dependencies.delete(p.ident)}for(let A of this.project.workspaces){let p=W.stringifyIdent(A.anchoredLocator),h=A.manifest.exportTo({}),E=n.get(A.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let I=(R,L,{caller:U=Ji.getCaller()}={})=>{let J=B2(R),te=_e.getMapWithDefault(a.manifestUpdates,A.cwd),ae=_e.getMapWithDefault(te,J),fe=_e.getSetWithDefault(ae,L);U!==null&&fe.add(U)},v=R=>I(R,void 0,{caller:Ji.getCaller()}),x=R=>{_e.getArrayWithDefault(a.reportedErrors,A.cwd).push(R)},C=e.insert({cwd:A.relativeCwd,ident:p,manifest:h,pkg:E,set:I,unset:v,error:x});u.set(A,C);for(let R of Ot.allDependencies)for(let L of A.manifest[R].values()){let U=W.stringifyIdent(L),J=()=>{I([R,U],void 0,{caller:Ji.getCaller()})},te=fe=>{I([R,U],fe,{caller:Ji.getCaller()})},ae=null;if(R!=="peerDependencies"&&(R!=="dependencies"||!A.manifest.devDependencies.has(L.identHash))){let fe=A.anchoredPackage.dependencies.get(L.identHash);if(fe){if(typeof fe>"u")throw new Error("Assertion failed: The dependency should have been registered");let ce=this.project.storedResolutions.get(fe.descriptorHash);if(typeof ce>"u")throw new Error("Assertion failed: The resolution should have been registered");let me=n.get(ce);if(typeof me>"u")throw new Error("Assertion failed: The package should have been registered");ae=me}}r.insert({workspace:C,ident:U,range:L.range,type:R,resolution:ae,update:te,delete:J,error:x})}}for(let A of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(A);if(!p)continue;let h=u.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(A.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:o,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},o=await this.project.loadUserConfig();return o?.constraints?(await o.constraints(r),e.result):null}};Ye();Ye();qt();var f0=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=ge.String()}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(x2(),b2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await Pt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Nt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),I=E.length,v=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x(x2(),b2)),o=await Ke.find(this.context.cwd,this.context.plugins),{project:a}=await Pt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};p0.paths=[["constraints","source"]],p0.usage=nt.Usage({category:"Constraints-related commands",description:"print the source code for the constraints",details:"\n This command will print the Prolog source code used by the constraints engine. Adding the `-v,--verbose` flag will print the *full* source code, including the fact database automatically compiled from the workspace manifests.\n ",examples:[["Prints the source code","yarn constraints source"],["Print the source code and the fact database","yarn constraints source -v"]]});Ye();Ye();qt();v2();var h0=class extends ut{constructor(){super(...arguments);this.fix=ge.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new IC(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(x2(),b2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:I,remainingErrors:v}=gk(o,E,{fix:this.fix}),x=[];for(let[C,R]of I){let L=C.manifest.indent;C.manifest=new Ot,C.manifest.indent=L,C.manifest.load(R),x.push(C.persistManifest())}if(await Promise.all(x),!(I.size>0&&h>1)){u=Hde(v,{configuration:r}),A=!1,p=!0;for(let[,C]of v)for(let R of C)R.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${de.pretty(r,"yarn constraints --fix",de.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${de.pretty(r,"yarn constraints --fix",de.Type.CODE)}`;await Nt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=_e.sortMap(u.children,h=>h.value[1]),$s.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};h0.paths=[["constraints"]],h0.usage=nt.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]});v2();var edt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[f0,p0,h0],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new IC(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(x2(),b2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=gk(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${de.pretty(t.configuration,u.anchoredLocator,de.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${de.pretty(t.configuration,"yarn constraints",de.Type.CODE)} for more details`)}}},tdt=edt;var IH={};Vt(IH,{CreateCommand:()=>tm,DlxCommand:()=>g0,default:()=>ndt});Ye();qt();var tm=class extends ut{constructor(){super(...arguments);this.pkg=ge.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=W.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?W.makeIdent(a.scope,`create-${a.name}`):W.makeIdent(null,`create-${a.name}`),u=W.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};tm.paths=[["create"]];Ye();Ye();St();qt();var g0=class extends ut{constructor(){super(...arguments);this.packages=ge.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=ge.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=ge.String();this.args=ge.Proxy()}async execute(){return Ke.telemetry=null,await oe.mktempPromise(async r=>{let o=V.join(r,`dlx-${process.pid}`);await oe.mkdirPromise(o),await oe.writeFilePromise(V.join(o,"package.json"),`{} `),await oe.writeFilePromise(V.join(o,"yarn.lock"),"");let a=V.join(o,".yarnrc.yml"),n=await Ke.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await Ke.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Wu(68),level:de.LogLevel.Discard}]},p=n!==null?V.join(n,".yarnrc.yml"):null;p!==null&&oe.existsSync(p)?(await oe.copyFilePromise(p,a),await Ke.updateConfiguration(o,L=>{let U=_e.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(J=>{let te=typeof J=="string"?J:J.path,ae=ue.isAbsolute(te)?te:ue.resolve(ue.fromPortablePath(n),te);return typeof J=="string"?ae:{path:ae,spec:J.spec}})),U})):await oe.writeJsonPromise(a,A);let h=this.packages??[this.command],E=W.parseDescriptor(this.command).name,I=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(I!==0)return I;this.quiet||this.context.stdout.write(` `);let v=await Ke.find(o,this.context.plugins),{project:x,workspace:C}=await Pt.find(v,o);if(C===null)throw new rr(x.cwd,o);await x.restoreInstallState();let R=await un.getWorkspaceAccessibleBinaries(C);return R.has(E)===!1&&R.size===1&&typeof this.packages>"u"&&(E=Array.from(R)[0][0]),await un.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:R,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};g0.paths=[["dlx"]],g0.usage=nt.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]});var rdt={commands:[tm,g0]},ndt=rdt;var DH={};Vt(DH,{ExecFetcher:()=>Q2,ExecResolver:()=>F2,default:()=>odt,execUtils:()=>Ek});Ye();Ye();St();var fA="exec:";var Ek={};Vt(Ek,{loadGeneratorFile:()=>k2,makeLocator:()=>vH,makeSpec:()=>pme,parseSpec:()=>BH});Ye();St();function BH(t){let{params:e,selector:r}=W.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?W.parseLocator(e.locator):null,path:o}}function pme({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:W.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return W.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function vH(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return W.makeLocator(t,pme({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function k2(t,e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(t,{protocol:e}),n=V.isAbsolute(a)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var Q2=class{supports(e,r){return!!e.reference.startsWith(fA)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:fA});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await k2(e.reference,fA,r);return oe.mktempPromise(async a=>{let n=V.join(a,"generator.js");return await oe.writeFilePromise(n,o),oe.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!oe.existsSync(V.join(u,"build")))throw new Error("The script should have generated a build directory");return await Xi.makeArchiveFromDirectory(V.join(u,"build"),{prefixPath:W.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await oe.mktempPromise(async n=>{let u=await un.makeScriptEnv({project:a.project,binFolder:n}),A=V.join(e,"runtime.js");return await oe.mktempPromise(async p=>{let h=V.join(p,"buildfile.log"),E=V.join(e,"generator"),I=V.join(e,"build");await oe.mkdirPromise(E),await oe.mkdirPromise(I);let v={tempDir:ue.fromPortablePath(E),buildDir:ue.fromPortablePath(I),locator:W.stringifyLocator(r)};await oe.writeFilePromise(A,` // Expose 'Module' as a global variable Object.defineProperty(global, 'Module', { get: () => require('module'), configurable: true, enumerable: false, }); // Expose non-hidden built-in modules as global variables for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { Object.defineProperty(global, name, { get: () => require(name), configurable: true, enumerable: false, }); } // Expose the 'execEnv' global variable Object.defineProperty(global, 'execEnv', { value: { ...${JSON.stringify(v)}, }, enumerable: true, }); `);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:R,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${W.stringifyLocator(r)}) `,prefix:W.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Ur.pipevp(process.execPath,["--require",ue.fromPortablePath(A),ue.fromPortablePath(o),W.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:R,stderr:L});if(U!==0)throw oe.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${de.pretty(a.project.configuration,h,de.Type.PATH)})`)})})}};Ye();Ye();var idt=2,F2=class{supportsDescriptor(e,r){return!!e.range.startsWith(fA)}supportsLocator(e,r){return!!e.reference.startsWith(fA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=BH(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await k2(W.makeRange({protocol:fA,source:a,selector:a,params:{locator:W.stringifyLocator(n)}}),fA,o.fetchOptions),A=wn.makeHash(`${idt}`,u).slice(0,6);return[vH(e,{parentLocator:n,path:a,generatorHash:A,protocol:fA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var sdt={fetchers:[Q2],resolvers:[F2]},odt=sdt;var PH={};Vt(PH,{FileFetcher:()=>L2,FileResolver:()=>O2,TarballFileFetcher:()=>M2,TarballFileResolver:()=>U2,default:()=>cdt,fileUtils:()=>rm});Ye();St();var SC=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,R2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,Ui="file:";var rm={};Vt(rm,{fetchArchiveFromLocator:()=>N2,makeArchiveFromLocator:()=>Ck,makeBufferFromLocator:()=>SH,makeLocator:()=>PC,makeSpec:()=>hme,parseSpec:()=>T2});Ye();St();function T2(t){let{params:e,selector:r}=W.parseRange(t),o=ue.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?W.parseLocator(e.locator):null,path:o}}function hme({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:W.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return W.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function PC(t,{parentLocator:e,path:r,hash:o,protocol:a}){return W.makeLocator(t,hme({parentLocator:e,path:r,hash:o,protocol:a}))}async function N2(t,e){let{parentLocator:r,path:o}=W.parseFileStyleRange(t.reference,{protocol:Ui}),a=V.isAbsolute(o)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=V.join(n.prefixPath,o);return await _e.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function Ck(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=W.parseFileStyleRange(t.reference,{protocol:e}),u=V.isAbsolute(n)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=V.join(A.prefixPath,n);return await _e.releaseAfterUseAsync(async()=>await Xi.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:W.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function SH(t,{protocol:e,fetchOptions:r}){return(await Ck(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var L2=class{supports(e,r){return!!e.reference.startsWith(Ui)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:Ui});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return Ck(e,{protocol:Ui,fetchOptions:r})}};Ye();Ye();var adt=2,O2=class{supportsDescriptor(e,r){return e.range.match(SC)?!0:!!e.range.startsWith(Ui)}supportsLocator(e,r){return!!e.reference.startsWith(Ui)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return SC.test(e.range)&&(e=W.makeDescriptor(e,`${Ui}${e.range}`)),W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=T2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await SH(W.makeLocator(e,W.makeRange({protocol:Ui,source:a,selector:a,params:{locator:W.stringifyLocator(n)}})),{protocol:Ui,fetchOptions:o.fetchOptions}),A=wn.makeHash(`${adt}`,u).slice(0,6);return[PC(e,{parentLocator:n,path:a,hash:A,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ye();var M2=class{supports(e,r){return R2.test(e.reference)?!!e.reference.startsWith(Ui):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await N2(e,r);return await Xi.convertToZip(o,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}};Ye();Ye();Ye();var U2=class{supportsDescriptor(e,r){return R2.test(e.range)?!!(e.range.startsWith(Ui)||SC.test(e.range)):!1}supportsLocator(e,r){return R2.test(e.reference)?!!e.reference.startsWith(Ui):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return SC.test(e.range)&&(e=W.makeDescriptor(e,`${Ui}${e.range}`)),W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=T2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=PC(e,{parentLocator:n,path:a,hash:"",protocol:Ui}),A=await N2(u,o.fetchOptions),p=wn.makeHash(A).slice(0,6);return[PC(e,{parentLocator:n,path:a,hash:p,protocol:Ui})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ldt={fetchers:[M2,L2],resolvers:[U2,O2]},cdt=ldt;var kH={};Vt(kH,{GithubFetcher:()=>_2,default:()=>Adt,githubUtils:()=>wk});Ye();St();var wk={};Vt(wk,{invalidGithubUrlMessage:()=>mme,isGithubUrl:()=>bH,parseGithubUrl:()=>xH});var gme=$e(ve("querystring")),dme=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function bH(t){return t?dme.some(e=>!!t.match(e)):!1}function xH(t){let e;for(let A of dme)if(e=t.match(A),e)break;if(!e)throw new Error(mme(t));let[,r,o,a,n="master"]=e,{commit:u}=gme.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function mme(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var _2=class{supports(e,r){return!!bH(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await nn.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await oe.mktempPromise(async a=>{let n=new gn(a);await Xi.extractArchiveTo(o,n,{stripComponents:1});let u=ra.splitRepoUrl(e.reference),A=V.join(a,"package.tgz");await un.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await oe.readFilePromise(A);return await Xi.convertToZip(p,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=xH(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var udt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new _2;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},Adt=udt;var QH={};Vt(QH,{TarballHttpFetcher:()=>q2,TarballHttpResolver:()=>j2,default:()=>pdt});Ye();function H2(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var q2=class{supports(e,r){return H2(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await nn.get(e.reference,{configuration:r.project.configuration});return await Xi.convertToZip(o,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}};Ye();Ye();var j2=class{supportsDescriptor(e,r){return H2(e.range)}supportsLocator(e,r){return H2(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[W.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var fdt={fetchers:[q2],resolvers:[j2]},pdt=fdt;var FH={};Vt(FH,{InitCommand:()=>d0,default:()=>gdt});Ye();Ye();St();qt();var d0=class extends ut{constructor(){super(...arguments);this.private=ge.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=ge.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=ge.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=ge.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=ge.Boolean("-2",!1,{hidden:!0});this.yes=ge.Boolean("-y,--yes",{hidden:!0})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new it("Cannot use the --install flag from within a project subdirectory");oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=V.join(this.context.cwd,dr.lockfile);oe.existsSync(a)||await oe.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await oe.mktempPromise(async A=>{let{code:p}=await Ur.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await un.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await Pt.find(r,this.context.cwd)).project}catch{o=null}oe.existsSync(this.context.cwd)||await oe.mkdirPromise(this.context.cwd,{recursive:!0});let a=await Ot.tryFind(this.context.cwd),n=a??new Ot,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??W.makeIdent(r.get("initScope"),this.name??V.basename(this.context.cwd)),n.packageManager=rn&&_e.isTaggedYarnVersion(rn)?`yarn@${rn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await oe.mkdirPromise(V.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=V.join(this.context.cwd,Ot.fileName);await oe.changeFilePromise(p,`${JSON.stringify(A,null,2)} `,{automaticNewlines:!0});let h=[p],E=V.join(this.context.cwd,"README.md");if(oe.existsSync(E)||(await oe.writeFilePromise(E,`# ${W.stringifyIdent(n.name)} `),h.push(E)),!o||o.cwd===this.context.cwd){let I=V.join(this.context.cwd,dr.lockfile);oe.existsSync(I)||(await oe.writeFilePromise(I,""),h.push(I));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(fe=>`${fe} `).join(""),C=V.join(this.context.cwd,".gitignore");oe.existsSync(C)||(await oe.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(fe=>`${fe} `).join(""),U=V.join(this.context.cwd,".gitattributes");oe.existsSync(U)||(await oe.writeFilePromise(U,L),h.push(U));let J={["*"]:{endOfLine:"lf",insertFinalNewline:!0},["*.{js,json,yml}"]:{charset:"utf-8",indentStyle:"space",indentSize:2}};_e.mergeIntoTarget(J,r.get("initEditorConfig"));let te=`root = true `;for(let[fe,ce]of Object.entries(J)){te+=` [${fe}] `;for(let[me,he]of Object.entries(ce)){let Be=me.replace(/[A-Z]/g,we=>`_${we.toLowerCase()}`);te+=`${Be} = ${he} `}}let ae=V.join(this.context.cwd,".editorconfig");oe.existsSync(ae)||(await oe.writeFilePromise(ae,te),h.push(ae)),await this.cli.run(["install"],{quiet:!0}),oe.existsSync(V.join(this.context.cwd,".git"))||(await Ur.execvp("git",["init"],{cwd:this.context.cwd}),await Ur.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Ur.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};d0.paths=[["init"]],d0.usage=nt.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]});var hdt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[d0]},gdt=hdt;var Tq={};Vt(Tq,{SearchCommand:()=>w0,UpgradeInteractiveCommand:()=>B0,default:()=>nIt});Ye();var Eme=$e(ve("os"));function bC({stdout:t}){if(Eme.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}qt();var Qye=$e(zH()),XH={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},fyt=(0,Qye.default)(XH.appId,XH.apiKey).initIndex(XH.indexName),ZH=async(t,e=0)=>await fyt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var qB=["regular","dev","peer"],w0=class extends ut{async execute(){bC(this.context);let{Gem:e}=await Promise.resolve().then(()=>(cQ(),Bq)),{ScrollableItems:r}=await Promise.resolve().then(()=>(pQ(),fQ)),{useKeypress:o}=await Promise.resolve().then(()=>(UB(),Wwe)),{useMinistore:a}=await Promise.resolve().then(()=>(xq(),bq)),{renderForm:n}=await Promise.resolve().then(()=>(mQ(),dQ)),{default:u}=await Promise.resolve().then(()=>$e(rIe())),{Box:A,Text:p}=await Promise.resolve().then(()=>$e(ic())),{default:h,useEffect:E,useState:I}=await Promise.resolve().then(()=>$e(on())),v=await Ke.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),R=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:he,active:Be})=>{let[we,g]=a(he.name,null);o({active:Be},(le,ne)=>{if(ne.name!=="space")return;if(!we){g(qB[0]);return}let ee=qB.indexOf(we)+1;ee===qB.length?g(null):g(qB[ee])},[we,g]);let Ee=W.parseIdent(he.name),Se=W.prettyIdent(v,Ee);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Se)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},he.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},he.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,he.humanDownloadsLast30Days)))},U=({name:he,active:Be})=>{let[we]=a(he,null),g=W.parseIdent(he);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",W.prettyIdent(v,g))),qB.map(Ee=>h.createElement(A,{key:Ee,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:we===Ee})," ",h.createElement(p,{bold:!0},Ee)))))},J=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),ae=await n(({useSubmit:he})=>{let Be=a();he(Be);let we=Array.from(Be.keys()).filter(H=>Be.get(H)!==null),[g,Ee]=I(""),[Se,le]=I(0),[ne,ee]=I([]),Ie=H=>{H.match(/\t| /)||Ee(H)},Fe=async()=>{le(0);let H=await ZH(g);H.query===g&&ee(H.hits)},At=async()=>{let H=await ZH(g,Se+1);H.query===g&&H.page-1===Se&&(le(H.page),ee([...ne,...H.hits]))};return E(()=>{g?Fe():ee([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:Ie,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ne.length?h.createElement(r,{radius:2,loop:!1,children:ne.map(H=>h.createElement(L,{key:H.name,hit:H,active:!1})),willReachEnd:At}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(R,null)),we.length?we.map(H=>h.createElement(U,{key:H,name:H,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(J,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ae>"u")return 1;let fe=Array.from(ae.keys()).filter(he=>ae.get(he)==="regular"),ce=Array.from(ae.keys()).filter(he=>ae.get(he)==="dev"),me=Array.from(ae.keys()).filter(he=>ae.get(he)==="peer");return fe.length&&await this.cli.run(["add",...fe]),ce.length&&await this.cli.run(["add","--dev",...ce]),me&&await this.cli.run(["add","--peer",...me]),0}};w0.paths=[["search"]],w0.usage=nt.Usage({category:"Interactive commands",description:"open the search interface",details:` This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. `,examples:[["Open the search window","yarn search"]]});Ye();qt();E_();var cIe=$e(zn()),lIe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,uIe=(t,e)=>t.length>0?[t.slice(0,e)].concat(uIe(t.slice(e),e)):[],B0=class extends ut{async execute(){bC(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(aIe(),oIe)),{Pad:r}=await Promise.resolve().then(()=>(Rq(),sIe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(pQ(),fQ)),{useMinistore:a}=await Promise.resolve().then(()=>(xq(),bq)),{renderForm:n}=await Promise.resolve().then(()=>(mQ(),dQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>$e(ic())),{default:p,useEffect:h,useRef:E,useState:I}=await Promise.resolve().then(()=>$e(on())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Pt.find(v,this.context.cwd),R=await Lr.find(v);if(!C)throw new rr(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(Ee,Se)=>{let le=upe(Ee,Se),ne="";for(let ee of le)ee.added?ne+=de.pretty(v,ee.value,"green"):ee.removed||(ne+=ee.value);return ne},J=(Ee,Se)=>{if(Ee===Se)return Se;let le=W.parseRange(Ee),ne=W.parseRange(Se),ee=le.selector.match(lIe),Ie=ne.selector.match(lIe);if(!ee||!Ie)return U(Ee,Se);let Fe=["gray","red","yellow","green","magenta"],At=null,H="";for(let at=1;at{let ne=await zc.fetchDescriptorFrom(Ee,le,{project:x,cache:R,preserveModifier:Se,workspace:C});return ne!==null?ne.range:Ee.range},ae=async Ee=>{let Se=cIe.default.valid(Ee.range)?`^${Ee.range}`:Ee.range,[le,ne]=await Promise.all([te(Ee,Ee.range,Se).catch(()=>null),te(Ee,Ee.range,"latest").catch(()=>null)]),ee=[{value:null,label:Ee.range}];return le&&le!==Ee.range?ee.push({value:le,label:J(Ee.range,le)}):ee.push({value:null,label:""}),ne&&ne!==le&&ne!==Ee.range?ee.push({value:ne,label:J(Ee.range,ne)}):ee.push({value:null,label:""}),ee},fe=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),ce=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),me=({active:Ee,descriptor:Se,suggestions:le})=>{let[ne,ee]=a(Se.descriptorHash,null),Ie=W.stringifyIdent(Se),Fe=Math.max(0,45-Ie.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},W.prettyIdent(v,Se)),p.createElement(r,{active:Ee,length:Fe})),p.createElement(e,{active:Ee,options:le,value:ne,skewer:!0,onChange:ee,sizes:[17,17,17]})))},he=({dependencies:Ee})=>{let[Se,le]=I(Ee.map(()=>null)),ne=E(!0),ee=async Ie=>{let Fe=await ae(Ie);return Fe.filter(At=>At.label!=="").length<=1?null:{descriptor:Ie,suggestions:Fe}};return h(()=>()=>{ne.current=!1},[]),h(()=>{let Ie=Math.trunc(L*1.75),Fe=Ee.slice(0,Ie),At=Ee.slice(Ie),H=uIe(At,L),at=Fe.map(ee).reduce(async(Re,ke)=>{await Re;let xe=await ke;xe!==null&&(!ne.current||le(He=>{let Te=He.findIndex(qe=>qe===null),Je=[...He];return Je[Te]=xe,Je}))},Promise.resolve());H.reduce((Re,ke)=>Promise.all(ke.map(xe=>Promise.resolve().then(()=>ee(xe)))).then(async xe=>{xe=xe.filter(He=>He!==null),await Re,ne.current&&le(He=>{let Te=He.findIndex(Je=>Je===null);return He.slice(0,Te).concat(xe).concat(He.slice(Te+xe.length))})}),at).then(()=>{ne.current&&le(Re=>Re.filter(ke=>ke!==null))})},[]),Se.length?p.createElement(o,{radius:L>>1,children:Se.map((Ie,Fe)=>Ie!==null?p.createElement(me,{key:Fe,active:!1,descriptor:Ie.descriptor,suggestions:Ie.suggestions}):p.createElement(A,{key:Fe},"Loading..."))}):p.createElement(A,null,"No upgrades found")},we=await n(({useSubmit:Ee})=>{Ee(a());let Se=new Map;for(let ne of x.workspaces)for(let ee of["dependencies","devDependencies"])for(let Ie of ne.manifest[ee].values())x.tryWorkspaceByDescriptor(Ie)===null&&(Ie.range.startsWith("link:")||Se.set(Ie.descriptorHash,Ie));let le=_e.sortMap(Se.values(),ne=>W.stringifyDescriptor(ne));return p.createElement(u,{flexDirection:"column"},p.createElement(fe,null),p.createElement(ce,null),p.createElement(he,{dependencies:le}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof we>"u")return 1;let g=!1;for(let Ee of x.workspaces)for(let Se of["dependencies","devDependencies"]){let le=Ee.manifest[Se];for(let ne of le.values()){let ee=we.get(ne.descriptorHash);typeof ee<"u"&&ee!==null&&(le.set(ne.identHash,W.makeDescriptor(ne,ee)),g=!0)}}return g?await x.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:R}):0}};B0.paths=[["upgrade-interactive"]],B0.usage=nt.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]});var rIt={commands:[w0,B0]},nIt=rIt;var Nq={};Vt(Nq,{LinkFetcher:()=>GB,LinkResolver:()=>YB,PortalFetcher:()=>WB,PortalResolver:()=>KB,default:()=>sIt});Ye();St();var tp="portal:",rp="link:";var GB=class{supports(e,r){return!!e.reference.startsWith(rp)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:rp});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:rp}),n=V.isAbsolute(a)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new _u(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0}}};Ye();St();var YB=class{supportsDescriptor(e,r){return!!e.range.startsWith(rp)}supportsLocator(e,r){return!!e.reference.startsWith(rp)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(rp.length);return[W.makeLocator(e,`${rp}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ye();St();var WB=class{supports(e,r){return!!e.reference.startsWith(tp)}getLocalPath(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:tp});if(V.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:V.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=W.parseFileStyleRange(e.reference,{protocol:tp}),n=V.isAbsolute(a)?{packageFs:new gn(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=V.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new gn(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,localPath:p}:{packageFs:new _u(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot}}};Ye();Ye();St();var KB=class{supportsDescriptor(e,r){return!!e.range.startsWith(tp)}supportsLocator(e,r){return!!e.reference.startsWith(tp)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(tp.length);return[W.makeLocator(e,`${tp}${ue.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await _e.releaseAfterUseAsync(async()=>await Ot.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var iIt={fetchers:[GB,WB],resolvers:[YB,KB]},sIt=iIt;var yj={};Vt(yj,{NodeModulesLinker:()=>lv,NodeModulesMode:()=>hj,PnpLooseLinker:()=>cv,default:()=>w1t});St();Ye();St();St();var Oq=(t,e)=>`${t}@${e}`,AIe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Oq(t,o)};var hIe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=fIt(t,n),p=!1,h=0;do p=Mq(A,[A],new Set([A.locator]),new Map,n).anotherRoundNeeded,n.fastLookupPossible=!1,h++;while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=VB(A);if(Mq(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: ${E}, next tree: ${VB(A)}`);let v=gIe(A);if(v)throw new Error(`${v}, after hoisting finished: ${VB(A)}`)}return n.debugLevel>=2&&console.log(VB(A)),pIt(A)},oIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},aIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let I of t)E=I.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},fIe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:C,hoistedTo:R}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:I,hoistPriority:v,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(R)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},lIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);return A.hoistPriority!==u.hoistPriority?A.hoistPriority-u.hoistPriority:A.peerDependents.size!==u.peerDependents.size?A.peerDependents.size-u.peerDependents.size:A.dependents.size-u.dependents.size});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Lq=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Mq=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=hIt(u),p=lIt(u,A),h=t==u?new Map:a.fastLookupPossible?oIt(e):aIt(e),E,I=!1,v=!1,x=new Map(Array.from(p.entries()).map(([R,L])=>[R,L[0]])),C=new Map;do{let R=AIt(t,e,r,h,x,p,o,C,a);R.isGraphChanged&&(v=!0),R.anotherRoundNeeded&&(I=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let R of u.dependencies.values())if(!u.peerNames.has(R.name)&&!r.has(R.locator)){r.add(R.locator);let L=Mq(t,[...e,R],r,C,a);L.isGraphChanged&&(v=!0),L.anotherRoundNeeded&&(I=!0),r.delete(R.locator)}return{anotherRoundNeeded:I,isGraphChanged:v}},cIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},uIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,I=null,v=new Set;p&&(E=`${Array.from(e).map(L=>no(L)).join("\u2192")}`);let x=r[r.length-1],R=!(o.ident===x.ident);if(p&&!R&&(I="- self-reference"),R&&(R=o.dependencyKind!==1,p&&!R&&(I="- workspace")),R&&o.dependencyKind===2&&(R=!cIt(o),p&&!R&&(I="- external soft link with unhoisted dependencies")),R&&(R=x.dependencyKind!==1||x.hoistedFrom.has(o.name)||e.size===1,p&&!R&&(I=x.reasons.get(o.name))),R&&(R=!t.peerNames.has(o.name),p&&!R&&(I=`- cannot shadow peer: ${no(t.originalDependencies.get(o.name).locator)} at ${E}`)),R){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(I=`- filled by: ${no(U.locator)} at ${E}`),L)for(let J=r.length-1;J>=1;J--){let ae=r[J].dependencies.get(o.name);if(ae&&ae.ident!==o.ident){L=!1;let fe=A.get(x);fe||(fe=new Set,A.set(x,fe)),fe.add(o.name),p&&(I=`- filled by ${no(ae.locator)} at ${r.slice(0,J).map(ce=>no(ce.locator)).join("\u2192")}`);break}}R=L}if(R&&(R=n.get(o.name)===o.ident,p&&!R&&(I=`- filled by: ${no(u.get(o.name)[0])} at ${E}`)),R){let L=!0,U=new Set(o.peerNames);for(let J=r.length-1;J>=1;J--){let te=r[J];for(let ae of U){if(te.peerNames.has(ae)&&te.originalDependencies.has(ae))continue;let fe=te.dependencies.get(ae);fe&&t.dependencies.get(ae)!==fe&&(J===r.length-1?v.add(fe):(v=null,L=!1,p&&(I=`- peer dependency ${no(fe.locator)} from parent ${no(te.locator)} was not hoisted to ${E}`))),U.delete(ae)}if(!L)break}R=L}if(R&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){R=!1,p&&(I=`- previously hoisted dependency mismatch, needed: ${no(L.locator)}, available: ${no(U?.locator)}`);break}}return v!==null&&v.size>0?{isHoistable:2,dependsOn:v,reason:I}:{isHoistable:R?0:1,reason:I}},yQ=t=>`${t.name}@${t.locator}`,AIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,I=!1,v=!1,x=(U,J,te,ae,fe)=>{if(E.has(ae))return;let ce=[...J,yQ(ae)],me=[...te,yQ(ae)],he=new Map,Be=new Map;for(let le of Lq(ae)){let ne=uIt(h,r,[h,...U,ae],le,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(Be.set(le,ne),ne.isHoistable===2)for(let ee of ne.dependsOn){let Ie=he.get(ee.name)||new Set;Ie.add(le.name),he.set(ee.name,Ie)}}let we=new Set,g=(le,ne,ee)=>{if(!we.has(le)){we.add(le),Be.set(le,{isHoistable:1,reason:ee});for(let Ie of he.get(le.name)||[])g(ae.dependencies.get(Ie),ne,p.debugLevel>=2?`- peer dependency ${no(le.locator)} from parent ${no(ae.locator)} was not hoisted`:"")}};for(let[le,ne]of Be)ne.isHoistable===1&&g(le,ne,ne.reason);let Ee=!1;for(let le of Be.keys())if(!we.has(le)){v=!0;let ne=u.get(ae);ne&&ne.has(le.name)&&(I=!0),Ee=!0,ae.dependencies.delete(le.name),ae.hoistedDependencies.set(le.name,le),ae.reasons.delete(le.name);let ee=h.dependencies.get(le.name);if(p.debugLevel>=2){let Ie=Array.from(J).concat([ae.locator]).map(At=>no(At)).join("\u2192"),Fe=h.hoistedFrom.get(le.name);Fe||(Fe=[],h.hoistedFrom.set(le.name,Fe)),Fe.push(Ie),ae.hoistedTo.set(le.name,Array.from(e).map(At=>no(At.locator)).join("\u2192"))}if(!ee)h.ident!==le.ident&&(h.dependencies.set(le.name,le),fe.add(le));else for(let Ie of le.references)ee.references.add(Ie)}if(ae.dependencyKind===2&&Ee&&(I=!0),p.check){let le=gIe(t);if(le)throw new Error(`${le}, after hoisting dependencies of ${[h,...U,ae].map(ne=>no(ne.locator)).join("\u2192")}: ${VB(t)}`)}let Se=Lq(ae);for(let le of Se)if(we.has(le)){let ne=Be.get(le);if((a.get(le.name)===le.ident||!ae.reasons.has(le.name))&&ne.isHoistable!==0&&ae.reasons.set(le.name,ne.reason),!le.isHoistBorder&&me.indexOf(yQ(le))<0){E.add(ae);let Ie=fIe(ae,le);x([...U,ae],ce,me,Ie,R),E.delete(ae)}}},C,R=new Set(Lq(h)),L=Array.from(e).map(U=>yQ(U));do{C=R,R=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let J=fIe(h,U);x([],Array.from(r),L,J,R)}}while(R.size>0);return{anotherRoundNeeded:I,isGraphChanged:v}},gIe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),I=()=>`${Array.from(o).concat([n]).map(v=>no(v.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let v=u.get(h.name);(v!==E||!v||v.ident!==h.ident)&&e.push(`${I()} - broken peer promise: expected ${h.ident} but found ${v&&v.ident}`)}else{let v=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${v?` hoisted from ${v.join(", ")}`:""}`,R=`${x?` hoisted to ${x}`:""}`,L=`${I()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${R}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${R} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` `)},fIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Oq(r,a),ident:AIe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let I=A.get(h),v=!!I;if(!I){let{name:x,identName:C,reference:R,peerNames:L,hoistPriority:U,dependencyKind:J}=h,te=e.hoistingLimits.get(E.locator);I={name:x,references:new Set([R]),locator:Oq(C,R),ident:AIe(C,R),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:J||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,I)}if(E.dependencies.set(h.name,I),E.originalDependencies.set(h.name,I),v){let x=new Set,C=R=>{if(!x.has(R)){x.add(R),R.decoupled=!1;for(let L of R.dependencies.values())R.peerNames.has(L.name)||C(L)}};C(I)}else for(let x of h.dependencies)p(x,I)};for(let h of t.dependencies)p(h,u);return u},Uq=t=>t.substring(0,t.indexOf("@",1)),pIt=t=>{let e={name:t.name,identName:Uq(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:I}=a;p={name:h,identName:Uq(I),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},hIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let I=a(E);I.hoistPriority=Math.max(I.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?I.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},no=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`},pIe=5e4,VB=t=>{let e=0,r=(a,n,u="")=>{if(e>pIe||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h":"")+(v!==E.name?`a:${E.name}:`:"")+no(E.locator)+(I?` ${I}`:"")} `,p+=r(E,n,`${u}${hpIe?` Tree is too large, part of the tree has been dunped `:"")};var JB=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(JB||{}),dIe="node_modules",v0="$wsroot$";var zB=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=dIt(t,e),u=null;if(a.length===0){let A=hIe(r,{hoistingLimits:o});u=yIt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},gA=t=>`${t.name}@${t.reference}`,Hq=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(V.delimiter).length,u=a.split(V.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},mIe=(t,e)=>{let r=W.isVirtualLocator(t)?W.devirtualizeLocator(t):t,o=W.isVirtualLocator(e)?W.devirtualizeLocator(e):e;return W.areLocatorsEqual(r,o)},_q=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=ue.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return V.contains(o,a)===null},gIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=ue.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(v,x)=>{let C=gA(v);if(p.has(C))return;p.add(C);let R=t.getPackageInformation(v);if(R){let L=x?gA(x):"";if(gA(v)!==L&&R.linkType==="SOFT"&&!v.reference.startsWith("link:")&&!_q(R,v,t,o)){let U=yIe(R,v,t);(!A.get(U)||v.reference.startsWith("workspace:"))&&A.set(U,v)}for(let[U,J]of R.packageDependencies)J!==null&&(R.packagePeers.has(U)||h(t.getLocator(U,J),v))}};for(let v of u)h(v,null);let E=o.split(V.sep);for(let v of A.values()){let x=t.getPackageInformation(v),R=ue.toPortablePath(x.packageLocation.slice(0,-1)).split(V.sep).slice(E.length),L=n;for(let U of R){let J=L.children.get(U);J||(J={children:new Map},L.children.set(U,J)),L=J}L.workspaceLocator=v}let I=(v,x)=>{if(v.workspaceLocator){let C=gA(x),R=a.get(C);R||(R=new Set,a.set(C,R)),R.add(v.workspaceLocator)}for(let C of v.children.values())I(C,v.workspaceLocator||x)};for(let v of n.children.values())I(v,n.workspaceLocator);return a},dIt=(t,e)=>{let r=[],o=!1,a=new Map,n=gIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=ue.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,I=(x,C)=>`${gA(C)}:${x}`,v=(x,C,R,L,U,J,te,ae)=>{let fe=I(x,R),ce=E.get(fe),me=!!ce;!me&&R.name===A.name&&R.reference===A.reference&&(ce=h,E.set(fe,h));let he=_q(C,R,t,p);if(!ce){let le=0;he?le=2:C.linkType==="SOFT"&&R.name.endsWith(v0)&&(le=1),ce={name:x,identName:R.name,reference:R.reference,dependencies:new Set,peerNames:le===1?new Set:C.packagePeers,dependencyKind:le},E.set(fe,ce)}let Be;if(he?Be=2:U.linkType==="SOFT"?Be=1:Be=0,ce.hoistPriority=Math.max(ce.hoistPriority||0,Be),ae&&!he){let le=gA({name:L.identName,reference:L.reference}),ne=a.get(le)||new Set;a.set(le,ne),ne.add(ce.name)}let we=new Map(C.packageDependencies);if(e.project){let le=e.project.workspacesByCwd.get(ue.toPortablePath(C.packageLocation.slice(0,-1)));if(le){let ne=new Set([...Array.from(le.manifest.peerDependencies.values(),ee=>W.stringifyIdent(ee)),...Array.from(le.manifest.peerDependenciesMeta.keys())]);for(let ee of ne)we.has(ee)||(we.set(ee,J.get(ee)||null),ce.peerNames.add(ee))}}let g=gA({name:R.name.replace(v0,""),reference:R.reference}),Ee=n.get(g);if(Ee)for(let le of Ee)we.set(`${le.name}${v0}`,le.reference);(C!==U||C.linkType!=="SOFT"||!he&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ce);let Se=R!==A&&C.linkType==="SOFT"&&!R.name.endsWith(v0)&&!he;if(!me&&!Se){let le=new Map;for(let[ne,ee]of we)if(ee!==null){let Ie=t.getLocator(ne,ee),Fe=t.getLocator(ne.replace(v0,""),ee),At=t.getPackageInformation(Fe);if(At===null)throw new Error("Assertion failed: Expected the package to have been registered");let H=_q(At,Ie,t,p);if(e.validateExternalSoftLinks&&e.project&&H){At.packageDependencies.size>0&&(o=!0);for(let[He,Te]of At.packageDependencies)if(Te!==null){let Je=W.parseLocator(Array.isArray(Te)?`${Te[0]}@${Te[1]}`:`${He}@${Te}`);if(gA(Je)!==gA(Ie)){let qe=we.get(He);if(qe){let b=W.parseLocator(Array.isArray(qe)?`${qe[0]}@${qe[1]}`:`${He}@${qe}`);mIe(b,Je)||r.push({messageName:71,text:`Cannot link ${W.prettyIdent(e.project.configuration,W.parseIdent(Ie.name))} into ${W.prettyLocator(e.project.configuration,W.parseLocator(`${R.name}@${R.reference}`))} dependency ${W.prettyLocator(e.project.configuration,Je)} conflicts with parent dependency ${W.prettyLocator(e.project.configuration,b)}`})}else{let b=le.get(He);if(b){let w=b.target,P=W.parseLocator(Array.isArray(w)?`${w[0]}@${w[1]}`:`${He}@${w}`);mIe(P,Je)||r.push({messageName:71,text:`Cannot link ${W.prettyIdent(e.project.configuration,W.parseIdent(Ie.name))} into ${W.prettyLocator(e.project.configuration,W.parseLocator(`${R.name}@${R.reference}`))} dependency ${W.prettyLocator(e.project.configuration,Je)} conflicts with dependency ${W.prettyLocator(e.project.configuration,P)} from sibling portal ${W.prettyIdent(e.project.configuration,W.parseIdent(b.portal.name))}`})}else le.set(He,{target:Je.reference,portal:Ie})}}}}let at=e.hoistingLimitsByCwd?.get(te),Re=H?te:V.relative(p,ue.toPortablePath(At.packageLocation))||Bt.dot,ke=e.hoistingLimitsByCwd?.get(Re);v(ne,At,Ie,ce,C,we,Re,at==="dependencies"||ke==="dependencies"||ke==="workspaces")}}};return v(A.name,u,A,h,u,u.packageDependencies,Bt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function yIe(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return ue.toPortablePath(o||t.packageLocation)}function mIt(t,e,r){let o=e.getLocator(t.name.replace(v0,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:ue.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:yIe(a,t,e)}}var yIt=(t,e,r)=>{let o=new Map,a=(E,I,v)=>{let{linkType:x,target:C}=mIt(E,t,r);return{locator:gA(E),nodePath:I,target:C,linkType:x,aliases:v}},n=E=>{let[I,v]=E.split("/");return v?{scope:I,name:v}:{scope:null,name:I}},u=new Set,A=(E,I,v)=>{if(u.has(E))return;u.add(E);let x=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let R=Array.from(C.references).sort().join("#");if(C.identName===E.identName.replace(v0,"")&&R===x)continue;let L=Array.from(C.references).sort(),U={name:C.identName,reference:L[0]},{name:J,scope:te}=n(C.name),ae=te?[te,J]:[J],fe=V.join(I,dIe),ce=V.join(fe,...ae),me=`${v}/${U.name}`,he=a(U,v,L.slice(1)),Be=!1;if(he.linkType==="SOFT"&&r.project){let we=r.project.workspacesByCwd.get(he.target.slice(0,-1));Be=!!(we&&!we.manifest.name)}if(!C.name.endsWith(v0)&&!Be){let we=o.get(ce);if(we){if(we.dirList)throw new Error(`Assertion failed: ${ce} cannot merge dir node with leaf node`);{let Se=W.parseLocator(we.locator),le=W.parseLocator(he.locator);if(we.linkType!==he.linkType)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different link types ${we.nodePath}/${W.stringifyLocator(Se)} and ${v}/${W.stringifyLocator(le)}`);if(Se.identHash!==le.identHash)throw new Error(`Assertion failed: ${ce} cannot merge nodes with different idents ${we.nodePath}/${W.stringifyLocator(Se)} and ${v}/s${W.stringifyLocator(le)}`);he.aliases=[...he.aliases,...we.aliases,W.parseLocator(we.locator).reference]}}o.set(ce,he);let g=ce.split("/"),Ee=g.indexOf(dIe);for(let Se=g.length-1;Ee>=0&&Se>Ee;Se--){let le=ue.toPortablePath(g.slice(0,Se).join(V.sep)),ne=g[Se],ee=o.get(le);if(!ee)o.set(le,{dirList:new Set([ne])});else if(ee.dirList){if(ee.dirList.has(ne))break;ee.dirList.add(ne)}}}A(C,he.linkType==="SOFT"?he.target:ce,me)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ye();Ye();St();St();nA();Nl();var oj={};Vt(oj,{PnpInstaller:()=>mm,PnpLinker:()=>P0,UnplugCommand:()=>x0,default:()=>VIt,getPnpPath:()=>b0,jsInstallUtils:()=>yA,pnpUtils:()=>av,quotePathIfNeeded:()=>r1e});St();var t1e=ve("url");Ye();Ye();St();St();var EIe={["DEFAULT"]:{collapsed:!1,next:{["*"]:"DEFAULT"}},["TOP_LEVEL"]:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA",["*"]:"DEFAULT"}},["FALLBACK_EXCLUSION_LIST"]:{collapsed:!1,next:{["*"]:"FALLBACK_EXCLUSION_ENTRIES"}},["FALLBACK_EXCLUSION_ENTRIES"]:{collapsed:!0,next:{["*"]:"FALLBACK_EXCLUSION_DATA"}},["FALLBACK_EXCLUSION_DATA"]:{collapsed:!0,next:{["*"]:"DEFAULT"}},["PACKAGE_REGISTRY_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_REGISTRY_ENTRIES"}},["PACKAGE_REGISTRY_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_STORE_DATA"}},["PACKAGE_STORE_DATA"]:{collapsed:!1,next:{["*"]:"PACKAGE_STORE_ENTRIES"}},["PACKAGE_STORE_ENTRIES"]:{collapsed:!0,next:{["*"]:"PACKAGE_INFORMATION_DATA"}},["PACKAGE_INFORMATION_DATA"]:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES",["*"]:"DEFAULT"}},["PACKAGE_DEPENDENCIES"]:{collapsed:!1,next:{["*"]:"PACKAGE_DEPENDENCY"}},["PACKAGE_DEPENDENCY"]:{collapsed:!0,next:{["*"]:"DEFAULT"}}};function EIt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=EQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function IIt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ `;let u=0;for(let A=0,p=o.length;A"u"||(u!==0&&(n+=",",n+=` `),n+=a,n+=JSON.stringify(h),n+=": ",n+=EQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` `),n+=r,n+="}",n}function EQ(t,e,r,o){let{next:a}=EIe[r],n=a[t]||a["*"];return CIe(e,n,o)}function CIe(t,e,r){let{collapsed:o}=EIe[e];return Array.isArray(t)?o?EIt(t,e,r):CIt(t,e,r):typeof t=="object"&&t!==null?o?wIt(t,e,r):IIt(t,e,r):JSON.stringify(t)}function wIe(t){return CIe(t,"TOP_LEVEL","")}function XB(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function BIt(t){let e=new Map,r=XB(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function vIt(t){return XB(t.fallbackPool||[],([e])=>e)}function DIt(t){let e=[];for(let[r,o]of XB(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of XB(o,([I])=>I===null?"0":`1${I}`)){let I=[];r!==null&&n!==null&&!A.has(r)&&I.push([r,n]);for(let[C,R]of XB(A.entries(),([L])=>L))I.push([C,R]);let v=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:I,packagePeers:v,linkType:h,discardFromLookup:x}])}}return e}function ZB(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:BIt(t),fallbackPool:vIt(t),packageRegistryData:DIt(t)}}var vIe=$e(BIe());function DIe(t,e){return[t?`${t} `:"",`/* eslint-disable */ `,`"use strict"; `,` `,e,` `,(0,vIe.default)()].join("")}function SIt(t){return JSON.stringify(t,null,2)}function PIt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ `)}'`}function bIt(t){return[`const RAW_RUNTIME_STATE = `,`${PIt(wIe(t))}; `,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); `,`} `].join("")}function xIt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { `,` const fs = require('fs'); `,` const path = require('path'); `,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(dr.pnpData)}); `,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); `,`} `].join("")}function SIe(t){let e=ZB(t),r=bIt(e);return DIe(t.shebang,r)}function PIe(t){let e=ZB(t),r=xIt(),o=DIe(t.shebang,r);return{dataFile:SIt(e),loaderFile:o}}St();function jq(t,{basePath:e}){let r=ue.toPortablePath(e),o=V.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([I,v])=>[I,new Map(v.map(([x,C])=>{if(I===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let R=C.discardFromLookup??!1,L={name:I,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&R,R||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:R});let J=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:R,get packageLocation(){return J||(J=V.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([I,v])=>[I,new Set(v)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}St();St();var np=ve("module"),dm=ve("url"),$q=ve("util");var Mo=ve("url");var QIe=$e(ve("assert"));var Gq=Array.isArray,$B=JSON.stringify,ev=Object.getOwnPropertyNames,hm=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),Yq=(t,e)=>RegExp.prototype.exec.call(t,e),Wq=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),D0=(t,...e)=>String.prototype.endsWith.apply(t,e),Kq=(t,...e)=>String.prototype.includes.apply(t,e),Vq=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),tv=(t,...e)=>String.prototype.indexOf.apply(t,e),bIe=(t,...e)=>String.prototype.replace.apply(t,e),S0=(t,...e)=>String.prototype.slice.apply(t,e),dA=(t,...e)=>String.prototype.startsWith.apply(t,e),xIe=Map,kIe=JSON.parse;function rv(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var FIe=rv("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Jq=rv("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),RIe=rv("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!dA(r,"./");return e==="."?((0,QIe.default)(o===!1),`Invalid "exports" main target ${$B(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${$B(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),nv=rv("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),TIe=rv("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var wQ=ve("url");function NIe(t,e){let r=Object.create(null);for(let o=0;oe):t+e}iv(r,t,o,u,a)}Yq(OIe,S0(t,2))!==null&&iv(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(dA(h,E)||iv(r,t,o,u,a),e==="")return p;if(Yq(OIe,e)!==null){let I=n?bIe(r,"*",()=>e):r+e;FIt(I,o,u,a)}return n?new URL(Wq(MIe,p.href,()=>e)):new URL(e,p)}function TIt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function GC(t,e,r,o,a,n,u,A){if(typeof e=="string")return RIt(e,r,o,t,a,n,u,A);if(Gq(e)){if(e.length===0)return null;let p;for(let h=0;hn?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function NIt(t,e,r){if(typeof t=="string"||Gq(t))return!0;if(typeof t!="object"||t===null)return!1;let o=ev(t),a=!1,n=0;for(let u=0;u=h.length&&D0(e,I)&&_Ie(n,h)===1&&Vq(h,"*")===E&&(n=h,u=S0(e,E,e.length-I.length))}}if(n){let p=r[n],h=GC(t,p,u,n,o,!0,!1,a);return h==null&&zq(e,t,o),h}zq(e,t,o)}function qIe({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||dA(t,"#/")||D0(t,"/")){let u="is not a valid internal imports specifier name";throw new Jq(t,u,(0,Mo.fileURLToPath)(e))}let a,n=LIe(e,o);if(n.exists){a=(0,Mo.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(hm(u,t)&&!Kq(t,"*")){let A=GC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=ev(u);for(let E=0;E=I.length&&D0(t,x)&&_Ie(A,I)===1&&Vq(I,"*")===v&&(A=I,p=S0(t,v,t.length-x.length))}}if(A){let E=u[A],I=GC(a,E,p,A,e,!0,!0,r);if(I!=null)return I}}}QIt(t,a,e)}St();var OIt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function $i(t,e,r={},o){o??=OIt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function au(t){return ue.normalize(ue.fromPortablePath(t))}var WIe=$e(GIe());function KIe(t){return MIt(),Zq[t]}var Zq;function MIt(){Zq||(Zq={"--conditions":[],...YIe(UIt()),...YIe(process.execArgv)})}function YIe(t){return(0,WIe.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function UIt(){let t=[],e=_It(process.env.NODE_OPTIONS||"",t);return t.length,e}function _It(t,e){let r=[],o=!1,a=!0;for(let n=0;nparseInt(t,10)),VIe=mA>19||mA===19&&gm>=2||mA===18&&gm>=13,Bzt=mA===20&&gm<6||mA===19&&gm>=3,vzt=mA>19||mA===19&&gm>=6,Dzt=mA>=21||mA===20&&gm>=10||mA===18&&gm>=19;function JIe(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>ue.fromPortablePath(mi.resolveVirtual(ue.toPortablePath(e)))),VIe)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function ej(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Re of["react-scripts","gatsby"]){let ke=t.packageRegistry.get(Re);if(ke)for(let xe of ke.keys()){if(xe===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Re,reference:xe})}}let{ignorePattern:I,packageRegistry:v,packageLocatorsByLocations:x}=t;function C(Re,ke){return{fn:Re,args:ke,error:null,result:null}}function R(Re){let ke=process.stderr?.hasColors?.()??process.stdout.isTTY,xe=(Je,qe)=>`\x1B[${Je}m${qe}\x1B[0m`,He=Re.error;console.error(He?xe("31;1",`\u2716 ${Re.error?.message.replace(/\n.*/s,"")}`):xe("33;1","\u203C Resolution")),Re.args.length>0&&console.error();for(let Je of Re.args)console.error(` ${xe("37;1","In \u2190")} ${(0,$q.inspect)(Je,{colors:ke,compact:!0})}`);Re.result&&(console.error(),console.error(` ${xe("37;1","Out \u2192")} ${(0,$q.inspect)(Re.result,{colors:ke,compact:!0})}`));let Te=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(Te.length>0){console.error();for(let Je of Te)console.error(` ${xe("38;5;244",Je)}`)}console.error()}function L(Re,ke){if(e.allowDebug===!1)return ke;if(Number.isFinite(o)){if(o>=2)return(...xe)=>{let He=C(Re,xe);try{return He.result=ke(...xe)}catch(Te){throw He.error=Te}finally{R(He)}};if(o>=1)return(...xe)=>{try{return ke(...xe)}catch(He){let Te=C(Re,xe);throw Te.error=He,R(Te),He}}}return ke}function U(Re){let ke=g(Re);if(!ke)throw $i("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return ke}function J(Re){if(Re.name===null)return!0;for(let ke of t.dependencyTreeRoots)if(ke.name===Re.name&&ke.reference===Re.reference)return!0;return!1}let te=new Set(["node","require",...KIe("--conditions")]);function ae(Re,ke=te,xe){let He=le(V.join(Re,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(He===null)throw $i("INTERNAL",`The locator that owns the "${Re}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:Te}=U(He),Je=V.join(Te,dr.manifest);if(!e.fakeFs.existsSync(Je))return null;let qe=JSON.parse(e.fakeFs.readFileSync(Je,"utf8"));if(qe.exports==null)return null;let b=V.contains(Te,Re);if(b===null)throw $i("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");b!=="."&&!A.test(b)&&(b=`./${b}`);try{let w=HIe({packageJSONUrl:(0,dm.pathToFileURL)(ue.fromPortablePath(Je)),packageSubpath:b,exports:qe.exports,base:xe?(0,dm.pathToFileURL)(ue.fromPortablePath(xe)):null,conditions:ke});return ue.toPortablePath((0,dm.fileURLToPath)(w))}catch(w){throw $i("EXPORTS_RESOLUTION_FAILED",w.message,{unqualifiedPath:au(Re),locator:He,pkgJson:qe,subpath:au(b),conditions:ke},w.code)}}function fe(Re,ke,{extensions:xe}){let He;try{ke.push(Re),He=e.fakeFs.statSync(Re)}catch{}if(He&&!He.isDirectory())return e.fakeFs.realpathSync(Re);if(He&&He.isDirectory()){let Te;try{Te=JSON.parse(e.fakeFs.readFileSync(V.join(Re,dr.manifest),"utf8"))}catch{}let Je;if(Te&&Te.main&&(Je=V.resolve(Re,Te.main)),Je&&Je!==Re){let qe=fe(Je,ke,{extensions:xe});if(qe!==null)return qe}}for(let Te=0,Je=xe.length;Te{let b=JSON.stringify(qe.name);if(He.has(b))return;He.add(b);let w=Ee(qe);for(let P of w)if(U(P).packagePeers.has(Re))Te(P);else{let F=xe.get(P.name);typeof F>"u"&&xe.set(P.name,F=new Set),F.add(P.reference)}};Te(ke);let Je=[];for(let qe of[...xe.keys()].sort())for(let b of[...xe.get(qe)].sort())Je.push({name:qe,reference:b});return Je}function le(Re,{resolveIgnored:ke=!1,includeDiscardFromLookup:xe=!1}={}){if(he(Re)&&!ke)return null;let He=V.relative(t.basePath,Re);He.match(n)||(He=`./${He}`),He.endsWith("/")||(He=`${He}/`);do{let Te=x.get(He);if(typeof Te>"u"||Te.discardFromLookup&&!xe){He=He.substring(0,He.lastIndexOf("/",He.length-2)+1);continue}return Te.locator}while(He!=="");return null}function ne(Re){try{return e.fakeFs.readFileSync(ue.toPortablePath(Re),"utf8")}catch(ke){if(ke.code==="ENOENT")return;throw ke}}function ee(Re,ke,{considerBuiltins:xe=!0}={}){if(Re.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Re==="pnpapi")return ue.toPortablePath(e.pnpapiResolution);if(xe&&(0,np.isBuiltin)(Re))return null;let He=au(Re),Te=ke&&au(ke);if(ke&&he(ke)&&(!V.isAbsolute(Re)||le(Re)===null)){let b=me(Re,ke);if(b===!1)throw $i("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) Require request: "${He}" Required by: ${Te} `,{request:He,issuer:Te});return ue.toPortablePath(b)}let Je,qe=Re.match(a);if(qe){if(!ke)throw $i("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:He,issuer:Te});let[,b,w]=qe,P=le(ke);if(!P){let Ne=me(Re,ke);if(Ne===!1)throw $i("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). Require path: "${He}" Required by: ${Te} `,{request:He,issuer:Te});return ue.toPortablePath(Ne)}let F=U(P).packageDependencies.get(b),z=null;if(F==null&&P.name!==null){let Ne=t.fallbackExclusionList.get(P.name);if(!Ne||!Ne.has(P.reference)){for(let dt=0,jt=h.length;dtJ(ot))?X=$i("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${b} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. Required package: ${b}${b!==He?` (via "${He}")`:""} Required by: ${P.name}@${P.reference} (via ${Te}) ${Ne.map(ot=>`Ancestor breaking the chain: ${ot.name}@${ot.reference} `).join("")} `,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b,brokenAncestors:Ne}):X=$i("MISSING_PEER_DEPENDENCY",`${P.name} tried to access ${b} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. Required package: ${b}${b!==He?` (via "${He}")`:""} Required by: ${P.name}@${P.reference} (via ${Te}) ${Ne.map(ot=>`Ancestor breaking the chain: ${ot.name}@${ot.reference} `).join("")} `,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b,brokenAncestors:Ne})}else F===void 0&&(!xe&&(0,np.isBuiltin)(Re)?J(P)?X=$i("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. Required package: ${b}${b!==He?` (via "${He}")`:""} Required by: ${Te} `,{request:He,issuer:Te,dependencyName:b}):X=$i("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in ${P.name}'s dependencies, this makes the require call ambiguous and unsound. Required package: ${b}${b!==He?` (via "${He}")`:""} Required by: ${Te} `,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b}):J(P)?X=$i("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. Required package: ${b}${b!==He?` (via "${He}")`:""} Required by: ${Te} `,{request:He,issuer:Te,dependencyName:b}):X=$i("UNDECLARED_DEPENDENCY",`${P.name} tried to access ${b}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. Required package: ${b}${b!==He?` (via "${He}")`:""} Required by: ${P.name}@${P.reference} (via ${Te}) `,{request:He,issuer:Te,issuerLocator:Object.assign({},P),dependencyName:b}));if(F==null){if(z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");F=z;let Ne=X.message.replace(/\n.*/g,"");X.message=Ne,!E.has(Ne)&&o!==0&&(E.add(Ne),process.emitWarning(X))}let Z=Array.isArray(F)?{name:F[0],reference:F[1]}:{name:b,reference:F},ie=U(Z);if(!ie.packageLocation)throw $i("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. Required package: ${Z.name}@${Z.reference}${Z.name!==He?` (via "${He}")`:""} Required by: ${P.name}@${P.reference} (via ${Te}) `,{request:He,issuer:Te,dependencyLocator:Object.assign({},Z)});let Pe=ie.packageLocation;w?Je=V.join(Pe,w):Je=Pe}else if(V.isAbsolute(Re))Je=V.normalize(Re);else{if(!ke)throw $i("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:He,issuer:Te});let b=V.resolve(ke);ke.match(u)?Je=V.normalize(V.join(b,Re)):Je=V.normalize(V.join(V.dirname(b),Re))}return V.normalize(Je)}function Ie(Re,ke,xe=te,He){if(n.test(Re))return ke;let Te=ae(ke,xe,He);return Te?V.normalize(Te):ke}function Fe(Re,{extensions:ke=Object.keys(np.Module._extensions)}={}){let xe=[],He=fe(Re,xe,{extensions:ke});if(He)return V.normalize(He);{JIe(xe.map(qe=>ue.fromPortablePath(qe)));let Te=au(Re),Je=le(Re);if(Je){let{packageLocation:qe}=U(Je),b=!0;try{e.fakeFs.accessSync(qe)}catch(w){if(w?.code==="ENOENT")b=!1;else{let P=(w?.message??w??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw $i("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${P}). Missing package: ${Je.name}@${Je.reference} Expected package location: ${au(qe)} `,{unqualifiedPath:Te,extensions:ke})}}if(!b){let w=qe.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw $i("QUALIFIED_PATH_RESOLUTION_FAILED",`${w} Missing package: ${Je.name}@${Je.reference} Expected package location: ${au(qe)} `,{unqualifiedPath:Te,extensions:ke})}}throw $i("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. Source path: ${Te} ${xe.map(qe=>`Not found: ${au(qe)} `).join("")}`,{unqualifiedPath:Te,extensions:ke})}}function At(Re,ke,xe){if(!ke)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let He=qIe({name:Re,base:(0,dm.pathToFileURL)(ue.fromPortablePath(ke)),conditions:xe.conditions??te,readFileSyncFn:ne});if(He instanceof URL)return Fe(ue.toPortablePath((0,dm.fileURLToPath)(He)),{extensions:xe.extensions});if(He.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return H(He,ke,xe)}function H(Re,ke,xe={}){try{if(Re.startsWith("#"))return At(Re,ke,xe);let{considerBuiltins:He,extensions:Te,conditions:Je}=xe,qe=ee(Re,ke,{considerBuiltins:He});if(Re==="pnpapi")return qe;if(qe===null)return null;let b=()=>ke!==null?he(ke):!1,w=(!He||!(0,np.isBuiltin)(Re))&&!b()?Ie(Re,qe,Je,ke):qe;return Fe(w,{extensions:Te})}catch(He){throw Object.hasOwn(He,"pnpCode")&&Object.assign(He.data,{request:au(Re),issuer:ke&&au(ke)}),He}}function at(Re){let ke=V.normalize(Re),xe=mi.resolveVirtual(ke);return xe!==ke?xe:null}return{VERSIONS:Be,topLevel:we,getLocator:(Re,ke)=>Array.isArray(ke)?{name:ke[0],reference:ke[1]}:{name:Re,reference:ke},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Re=[];for(let[ke,xe]of v)for(let He of xe.keys())ke!==null&&He!==null&&Re.push({name:ke,reference:He});return Re},getPackageInformation:Re=>{let ke=g(Re);if(ke===null)return null;let xe=ue.fromPortablePath(ke.packageLocation);return{...ke,packageLocation:xe}},findPackageLocator:Re=>le(ue.toPortablePath(Re)),resolveToUnqualified:L("resolveToUnqualified",(Re,ke,xe)=>{let He=ke!==null?ue.toPortablePath(ke):null,Te=ee(ue.toPortablePath(Re),He,xe);return Te===null?null:ue.fromPortablePath(Te)}),resolveUnqualified:L("resolveUnqualified",(Re,ke)=>ue.fromPortablePath(Fe(ue.toPortablePath(Re),ke))),resolveRequest:L("resolveRequest",(Re,ke,xe)=>{let He=ke!==null?ue.toPortablePath(ke):null,Te=H(ue.toPortablePath(Re),He,xe);return Te===null?null:ue.fromPortablePath(Te)}),resolveVirtual:L("resolveVirtual",Re=>{let ke=at(ue.toPortablePath(Re));return ke!==null?ue.fromPortablePath(ke):null})}}St();var zIe=(t,e,r)=>{let o=ZB(t),a=jq(o,{basePath:e}),n=ue.join(e,dr.pnpCjs);return ej(a,{fakeFs:r,pnpapiResolution:n})};var rj=$e(ZIe());qt();var yA={};Vt(yA,{checkManifestCompatibility:()=>$Ie,extractBuildRequest:()=>IQ,getExtractHint:()=>nj,hasBindingGyp:()=>ij});Ye();St();function $Ie(t){return W.isPackageCompatible(t,Ji.getArchitectureSet())}function IQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${W.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${W.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${W.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:$Ie(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${W.prettyLocator(o,t)} The ${Ji.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var qIt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function nj(t){return t.packageFs.getExtractHint({relevantExtensions:qIt})}function ij(t){let e=V.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var av={};Vt(av,{getUnpluggedPath:()=>ov});Ye();St();function ov(t,{configuration:e}){return V.resolve(e.get("pnpUnpluggedFolder"),W.slugifyLocator(t))}var jIt=new Set([W.makeIdent(null,"open").identHash,W.makeIdent(null,"opn").identHash]),P0=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=b0(r.project).cjs;if(!oe.existsSync(o))throw new it(`The project in ${de.pretty(r.project.configuration,`${r.project.cwd}/package.json`,de.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=_e.getFactoryWithDefault(this.pnpCache,o,()=>_e.dynamicRequire(o,{cachingStrategy:_e.CachingStrategy.FsTime})),n={name:W.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new it(`Couldn't find ${W.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return ue.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=b0(r.project).cjs;if(!oe.existsSync(o))return null;let n=_e.getFactoryWithDefault(this.pnpCache,o,()=>_e.dynamicRequire(o,{cachingStrategy:_e.CachingStrategy.FsTime})).findPackageLocator(ue.fromPortablePath(e));return n?W.makeLocator(W.parseIdent(n.name),n.reference):null}makeInstaller(e){return new mm(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},mm=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new _e.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=W.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=W.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",I,v;if(h||E){let te=A?W.devirtualizeLocator(e):e;I=this.customData.store.get(te.locatorHash),typeof I>"u"&&(I=await GIt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,I)),I.manifest.type==="module"&&(this.isESMLoaderRequired=!0),v=this.opts.project.getDependencyMeta(te,e.version)}let x=h?IQ(e,I,v,{configuration:this.opts.project.configuration}):null,C=E?await this.unplugPackageIfNeeded(e,I,r,v,o):r.packageFs;if(V.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let R=V.resolve(C.getRealPath(),r.prefixPath),L=sj(this.opts.project.cwd,R),U=new Map,J=new Set;if(A){for(let te of e.peerDependencies.values())U.set(W.stringifyIdent(te),null),J.add(W.stringifyIdent(te));if(!u){let te=W.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:sj(this.opts.project.cwd,mi.resolveVirtual(R)),locator:te})}}return _e.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:U,packagePeers:J,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:R,buildRequest:x}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=W.areIdentsEqual(a,n)?n.reference:[W.stringifyIdent(n),n.reference];o.packageDependencies.set(W.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(W.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=b0(this.opts.project);if(this.isEsmEnabled()||await oe.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await oe.removePromise(e.cjs),await oe.removePromise(e.data),await oe.removePromise(e.esmLoader),await oe.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:I}of this.virtualTemplates.values())_e.getMapWithDefault(this.packageRegistry,W.stringifyIdent(E)).set(E.reference,{packageLocation:I,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:W.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=_e.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:W.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=b0(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await oe.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=SIe(e);await oe.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await oe.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=PIe(e);await oe.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await oe.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await oe.changeFilePromise(r.esmLoader,(0,rj.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await oe.removePromise(a);else for(let n of await oe.readdirPromise(a)){let u=V.resolve(a,n);this.unpluggedPaths.has(u)||await oe.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=V.join(a.cwd,"node_modules");if(o&&o.test(V.relative(this.opts.project.cwd,a.cwd))||!oe.existsSync(n))continue;let u=await oe.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(V.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:jIt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(IQ(e,r,o,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,o){let a=ov(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new Uu(a,{baseFs:r.packageFs,pathUtils:V}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=V.join(a,r.prefixPath,".ready");await oe.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await oe.mkdirPromise(a,{recursive:!0}),await oe.copyPromise(a,Bt.dot,{baseFs:r.packageFs,overwrite:!1}),await oe.writeFilePromise(n,""))})),new gn(a))}getPackageInformation(e){let r=W.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${W.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${W.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=_e.getMapWithDefault(this.packageRegistry,"@@disk"),o=sj(this.opts.project.cwd,e);return _e.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function sj(t,e){let r=V.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function GIt(t){let e=await Ot.tryFind(t.prefixPath,{baseFs:t.packageFs})??new Ot,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:nj(t),hasBindingGyp:ij(t)}}}Ye();Ye();qt();var e1e=$e(Zo());var x0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new it("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(x=>{let C=W.parseDescriptor(x),R=C.range!=="unknown"?C:W.makeDescriptor(C,"*");if(!kr.validRange(R.range))throw new it(`The range of the descriptor patterns must be a valid semver range (${W.prettyDescriptor(r,R)})`);return L=>{let U=W.stringifyIdent(L);return!e1e.default.isMatch(U,W.stringifyIdent(R))||L.version&&!kr.satisfiesWithPrereleases(L.version,R.range)?!1:(u.delete(x),!0)}}),p=()=>{let x=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!W.isVirtualLocator(C)&&A.some(R=>R(C))&&x.push(C);return x},h=x=>{let C=new Set,R=[],L=(U,J)=>{if(C.has(U.locatorHash))return;let te=!!o.tryWorkspaceByLocator(U);if(!(J>0&&!this.recursive&&te)&&(C.add(U.locatorHash),!o.tryWorkspaceByLocator(U)&&A.some(ae=>ae(U))&&R.push(U),!(J>0&&!this.recursive)))for(let ae of U.dependencies.values()){let fe=o.storedResolutions.get(ae.descriptorHash);if(!fe)throw new Error("Assertion failed: The resolution should have been registered");let ce=o.storedPackages.get(fe);if(!ce)throw new Error("Assertion failed: The package should have been registered");L(ce,J+1)}};for(let U of x)L(U.anchoredPackage,0);return R},E,I;if(this.all&&this.recursive?(E=p(),I="the project"):this.all?(E=h(o.workspaces),I="any workspace"):(E=h([a]),I="this workspace"),u.size>1)throw new it(`Patterns ${de.prettyList(r,u,de.Type.CODE)} don't match any packages referenced by ${I}`);if(u.size>0)throw new it(`Pattern ${de.prettyList(r,u,de.Type.CODE)} doesn't match any packages referenced by ${I}`);E=_e.sortMap(E,x=>W.stringifyLocator(x));let v=await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async x=>{for(let C of E){let R=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(W.makeDescriptor(C,R));L.unplugged=!0,x.reportInfo(0,`Will unpack ${W.prettyLocator(r,C)} to ${de.pretty(r,ov(C,{configuration:r}),de.Type.PATH)}`),x.reportJson({locator:W.stringifyLocator(C),version:R})}await o.topLevelWorkspace.persistManifest(),this.json||x.reportSeparator()});return v.hasErrors()?v.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};x0.paths=[["unplug"]],x0.usage=nt.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]});var b0=t=>({cjs:V.join(t.cwd,dr.pnpCjs),data:V.join(t.cwd,dr.pnpData),esmLoader:V.join(t.cwd,dr.pnpEsmLoader)}),r1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function YIt(t,e,r){let o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(o," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n;return}let u=b0(t),A=`--require ${r1e(ue.fromPortablePath(u.cjs))}`;oe.existsSync(u.esmLoader)&&(A=`${A} --experimental-loader ${(0,t1e.pathToFileURL)(ue.fromPortablePath(u.esmLoader)).href}`),oe.existsSync(u.cjs)&&(e.NODE_OPTIONS=n?`${A} ${n}`:A)}async function WIt(t,e){let r=b0(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var KIt={hooks:{populateYarnPaths:WIt,setupScriptEnvironment:YIt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[P0],commands:[x0]},VIt=KIt;var u1e=$e(a1e());qt();var pj=$e(ve("crypto")),A1e=$e(ve("fs")),f1e=1,Si="node_modules",BQ=".bin",p1e=".yarn-state.yml",A1t=1e3,hj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(hj||{}),lv=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await _e.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await fj(r.project,{unrollAliases:!0}));if(a===null)throw new it("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(W.stringifyLocator(e));if(!n){let p=new it(`Couldn't find ${W.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(V.sep).length-h.split(V.sep).length),A=V.join(r.project.configuration.startingCwd,Si);return u.find(p=>V.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await _e.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await fj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=vQ(V.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return W.parseLocator(A)}makeInstaller(e){return new Aj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},Aj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=V.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await f1t(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!W.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,u=new Set;n.has(W.stringifyIdent(e))||n.set(W.stringifyIdent(e),e.reference);let A=e;if(W.isVirtualLocator(e)){A=W.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(W.stringifyIdent(E),null),u.add(W.stringifyIdent(E))}let p={packageLocation:`${ue.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildRequest:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=W.areIdentsEqual(a,n)?n.reference:[W.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(W.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new mi({baseFs:new Jl({maxOpenFiles:80,readOnlyArchives:!0})}),r=await fj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmHoistingLimits");try{x=_e.validateEnum(JB,v.manifest.installConfig?.hoistingLimits??x)}catch{let R=W.prettyWorkspace(this.opts.project.configuration,v);this.opts.report.reportWarning(57,`${R}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(JB).join(", ")}, using default: "${x}"`)}return[v.relativeCwd,x]})),n=new Map(this.opts.project.workspaces.map(v=>{let x=this.opts.project.configuration.get("nmSelfReferences");return x=v.manifest.installConfig?.selfReferences??x,[v.relativeCwd,x]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(v,x)=>Array.isArray(x)?{name:x[0],reference:x[1]}:{name:v,reference:x},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(v=>{let x=v.anchoredLocator;return{name:W.stringifyIdent(x),reference:x.reference}}),getPackageInformation:v=>{let x=v.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:W.makeLocator(W.parseIdent(v.name),v.reference),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:v=>{let x=this.opts.project.tryWorkspaceByCwd(ue.toPortablePath(v));if(x!==null){let C=x.anchoredLocator;return{name:W.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:v=>ue.fromPortablePath(mi.resolveVirtual(ue.toPortablePath(v)))},{tree:A,errors:p,preserveSymlinksRequired:h}=zB(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:v,text:x}of p)this.opts.report.reportError(v,x);return}let E=Hq(A);await y1t(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async v=>{let x=W.parseLocator(v),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let I=[];for(let[v,x]of E.entries()){if(m1e(v))continue;let C=W.parseLocator(v),R=this.localStore.get(C.locatorHash);if(typeof R>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(R.pkg))continue;let L=yA.extractBuildRequest(R.pkg,R.customPackageData,R.dependencyMeta,{configuration:this.opts.project.configuration});!L||I.push({buildLocations:x.locations,locator:C,buildRequest:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${de.pretty(this.opts.project.configuration,"--preserve-symlinks",de.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:I}}};async function f1t(t,e){let r=await Ot.tryFind(e.prefixPath,{baseFs:e.packageFs})??new Ot,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:yA.hasBindingGyp(e)}}}async function p1t(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will `,n+=`# cause your node_modules installation to become invalidated. `,n+=` `,n+=`__metadata: `,n+=` version: ${f1e} `,n+=` nmMode: ${o.value} `;let u=Array.from(e.keys()).sort(),A=W.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let I=e.get(E);n+=` `,n+=`${JSON.stringify(E)}: `,n+=` locations: `;for(let v of I.locations){let x=V.contains(t.cwd,v);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` - ${JSON.stringify(x)} `}if(I.aliases.length>0){n+=` aliases: `;for(let v of I.aliases)n+=` - ${JSON.stringify(v)} `}if(E===A&&r.size>0){n+=` bin: `;for(let[v,x]of r){let C=V.contains(t.cwd,v);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${v})`);n+=` ${JSON.stringify(C)}: `;for(let[R,L]of x){let U=V.relative(V.join(v,Si),L);n+=` ${JSON.stringify(R)}: ${JSON.stringify(U)} `}}}}let p=t.cwd,h=V.join(p,Si,p1e);a&&await oe.removePromise(h),await oe.changeFilePromise(h,n,{automaticNewlines:!0})}async function fj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=V.join(r,Si,p1e),a;try{a=await oe.statPromise(o)}catch{}if(!a)return null;let n=Ki(await oe.readFilePromise(o,"utf8"));if(n.__metadata.version>f1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let I=E.locations.map(x=>V.join(r,x)),v=E.bin;if(v)for(let[x,C]of Object.entries(v)){let R=V.join(r,ue.toPortablePath(x)),L=_e.getMapWithDefault(p,R);for(let[U,J]of Object.entries(C))L.set(U,ue.toPortablePath([R,Si,J].join(V.sep)))}if(A.set(h,{target:Bt.dot,linkType:"HARD",locations:I,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:R}=W.parseLocator(h),L=W.makeLocator(W.makeIdent(C,R),x),U=W.stringifyLocator(L);A.set(U,{target:Bt.dot,linkType:"HARD",locations:I,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:h1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var WC=async(t,e)=>{if(t.split(V.sep).indexOf(Si)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{if(!e.innerLoop){let o=e.allowSymlink?await oe.statPromise(t):await oe.lstatPromise(t);if(e.allowSymlink&&!o.isDirectory()||!e.allowSymlink&&o.isSymbolicLink()){await oe.unlinkPromise(t);return}}let r=await oe.readdirPromise(t,{withFileTypes:!0});for(let o of r){let a=V.join(t,o.name);o.isDirectory()?(o.name!==Si||e&&e.innerLoop)&&await WC(a,{innerLoop:!0,contentsOnly:!1}):await oe.unlinkPromise(a)}e.contentsOnly||await oe.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},l1e=4,vQ=(t,{skipPrefix:e})=>{let r=V.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(V.sep).filter(p=>p!==""),a=o.indexOf(Si),n=o.slice(0,a).join(V.sep),u=V.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},h1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&V.contains(e,n.target)!==null){let A=_e.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=vQ(u,{skipPrefix:e}),h=_e.getFactoryWithDefault(r,A,o);for(let E=0;E{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await oe.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await oe.symlinkPromise(t,e,"junction");return}}await oe.symlinkPromise(V.relative(V.dirname(e),t),e)};async function g1e(t,e,r){let o=V.join(t,`${pj.default.randomBytes(16).toString("hex")}.tmp`);try{await oe.writeFilePromise(o,r);try{await oe.linkPromise(o,e)}catch{}}finally{await oe.unlinkPromise(o)}}async function h1t({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind===d1e.FILE){if(n.value==="hardlinks-global"&&o&&r.digest){let A=V.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await oe.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs(o.FILE="file",o.DIRECTORY="directory",o.SYMLINK="symlink",o))(d1e||{}),g1t=async(t,e,{baseFs:r,globalHardlinksStore:o,nmMode:a,windowsLinkType:n,packageChecksum:u})=>{await oe.mkdirPromise(t,{recursive:!0});let A=async(E=Bt.dot)=>{let I=V.join(e,E),v=await r.readdirPromise(I,{withFileTypes:!0}),x=new Map;for(let C of v){let R=V.join(E,C.name),L,U=V.join(I,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let J=await wn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=J}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(R,L),C.isDirectory()&&R!==Si){let J=await A(R);for(let[te,ae]of J)x.set(te,ae)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=V.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await oe.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,I]of p){let v=V.join(e,E),x=V.join(t,E);if(I.kind==="directory")await oe.mkdirPromise(x,{recursive:!0});else if(I.kind==="file"){let C=I.mtimeMs;await h1t({srcPath:v,dstPath:x,entry:I,nmMode:a,baseFs:r,globalHardlinksStore:o}),I.mtimeMs!==C&&(h=!0)}else I.kind==="symlink"&&await gj(V.resolve(V.dirname(x),I.symlinkTo),x,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=V.join(o,u.substring(0,2),`${u.substring(2)}.json`);await oe.removePromise(E),await g1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function d1t(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,I,v,x)=>{let C=!0,R=V.join(h,E),L=new Set;if(E===Si||E.startsWith("@")){let J;try{J=oe.statSync(R)}catch{}C=!!J,J?J.mtimeMs>r?(A=!0,L=new Set(oe.readdirSync(R))):L=new Set(I.children.get(E).children.keys()):A=!0;let te=e.get(h);if(te){let ae=V.join(h,Si,BQ),fe;try{fe=oe.statSync(ae)}catch{}if(!fe)A=!0;else if(fe.mtimeMs>r){A=!0;let ce=new Set(oe.readdirSync(ae)),me=new Map;n.set(h,me);for(let[he,Be]of te)ce.has(he)&&me.set(he,Be)}else n.set(h,te)}}else C=x.has(E);let U=I.children.get(E);if(C){let{linkType:J,locator:te}=U,ae={children:new Map,linkType:J,locator:te};if(v.children.set(E,ae),te){let fe=_e.getSetWithDefault(u,te);fe.add(R),u.set(te,fe)}for(let fe of U.children.keys())p(R,fe,U,ae,L)}else U.locator&&o.storedBuildState.delete(W.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:I,locator:v}=E,x={children:new Map,linkType:I,locator:v};if(a.set(h,x),v){let C=_e.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(Si)&&p(h,Si,E,x,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function m1e(t){let e=W.parseDescriptor(t);return W.isVirtualDescriptor(e)&&(e=W.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function m1t(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=m1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[I,v]of h.bin){let x=V.join(p[0],v);v!==""&&oe.existsSync(x)&&E.set(I,v)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,I=V.contains(r,A);if(h.locator&&I!==null){let v=a.get(h.locator);for(let[x,C]of v){let R=V.join(A,ue.toPortablePath(C));E.set(x,R)}for(let[x,C]of h.children){let R=V.join(A,x),L=u(R,R,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[v,x]of h.children){let C=u(V.join(A,v),p,x);for(let[R,L]of C)E.set(R,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var c1e=(t,e)=>{if(!t||!e)return t===e;let r=W.parseLocator(t);W.isVirtualLocator(r)&&(r=W.devirtualizeLocator(r));let o=W.parseLocator(e);return W.isVirtualLocator(o)&&(o=W.devirtualizeLocator(o)),W.areLocatorsEqual(r,o)};function dj(t){return V.join(t.get("globalFolder"),"store")}async function y1t(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=V.join(o.cwd,Si),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:I}=d1t(t.locationTree,t.binSymlinks,t.mtimeMs,o),v=h1e(e,{skipPrefix:o.cwd}),x=[],C=async({srcDir:Be,dstDir:we,linkType:g,globalHardlinksStore:Ee,nmMode:Se,windowsLinkType:le,packageChecksum:ne})=>{let ee=(async()=>{try{g==="SOFT"?(await oe.mkdirPromise(V.dirname(we),{recursive:!0}),await gj(V.resolve(Be),we,le)):await g1t(we,Be,{baseFs:r,globalHardlinksStore:Ee,nmMode:Se,windowsLinkType:le,packageChecksum:ne})}catch(Ie){throw Ie.message=`While persisting ${Be} -> ${we} ${Ie.message}`,Ie}finally{ae.tick()}})().then(()=>x.splice(x.indexOf(ee),1));x.push(ee),x.length>l1e&&await Promise.race(x)},R=async(Be,we,g)=>{let Ee=(async()=>{let Se=async(le,ne,ee)=>{try{ee.innerLoop||await oe.mkdirPromise(ne,{recursive:!0});let Ie=await oe.readdirPromise(le,{withFileTypes:!0});for(let Fe of Ie){if(!ee.innerLoop&&Fe.name===BQ)continue;let At=V.join(le,Fe.name),H=V.join(ne,Fe.name);Fe.isDirectory()?(Fe.name!==Si||ee&&ee.innerLoop)&&(await oe.mkdirPromise(H,{recursive:!0}),await Se(At,H,{...ee,innerLoop:!0})):me.value==="hardlinks-local"||me.value==="hardlinks-global"?await oe.linkPromise(At,H):await oe.copyFilePromise(At,H,A1e.default.constants.COPYFILE_FICLONE)}}catch(Ie){throw ee.innerLoop||(Ie.message=`While cloning ${le} -> ${ne} ${Ie.message}`),Ie}finally{ee.innerLoop||ae.tick()}};await Se(Be,we,g)})().then(()=>x.splice(x.indexOf(Ee),1));x.push(Ee),x.length>l1e&&await Promise.race(x)},L=async(Be,we,g)=>{if(g)for(let[Ee,Se]of we.children){let le=g.children.get(Ee);await L(V.join(Be,Ee),Se,le)}else{we.children.has(Si)&&await WC(V.join(Be,Si),{contentsOnly:!1});let Ee=V.basename(Be)===Si&&v.has(V.join(V.dirname(Be),V.sep));await WC(Be,{contentsOnly:Be===A,allowSymlink:Ee})}};for(let[Be,we]of p){let g=v.get(Be);for(let[Ee,Se]of we.children){if(Ee===".")continue;let le=g&&g.children.get(Ee),ne=V.join(Be,Ee);await L(ne,Se,le)}}let U=async(Be,we,g)=>{if(g){c1e(we.locator,g.locator)||await WC(Be,{contentsOnly:we.linkType==="HARD"});for(let[Ee,Se]of we.children){let le=g.children.get(Ee);await U(V.join(Be,Ee),Se,le)}}else{we.children.has(Si)&&await WC(V.join(Be,Si),{contentsOnly:!0});let Ee=V.basename(Be)===Si&&v.has(V.join(V.dirname(Be),V.sep));await WC(Be,{contentsOnly:we.linkType==="HARD",allowSymlink:Ee})}};for(let[Be,we]of v){let g=p.get(Be);for(let[Ee,Se]of we.children){if(Ee===".")continue;let le=g&&g.children.get(Ee);await U(V.join(Be,Ee),Se,le)}}let J=new Map,te=[];for(let[Be,we]of E)for(let g of we){let{locationRoot:Ee,segments:Se}=vQ(g,{skipPrefix:o.cwd}),le=v.get(Ee),ne=Ee;if(le){for(let ee of Se)if(ne=V.join(ne,ee),le=le.children.get(ee),!le)break;if(le){let ee=c1e(le.locator,Be),Ie=e.get(le.locator),Fe=Ie.target,At=ne,H=Ie.linkType;if(ee)J.has(Fe)||J.set(Fe,At);else if(Fe!==At){let at=W.parseLocator(le.locator);W.isVirtualLocator(at)&&(at=W.devirtualizeLocator(at)),te.push({srcDir:Fe,dstDir:At,linkType:H,realLocatorHash:at.locatorHash})}}}}for(let[Be,{locations:we}]of e.entries())for(let g of we){let{locationRoot:Ee,segments:Se}=vQ(g,{skipPrefix:o.cwd}),le=p.get(Ee),ne=v.get(Ee),ee=Ee,Ie=e.get(Be),Fe=W.parseLocator(Be);W.isVirtualLocator(Fe)&&(Fe=W.devirtualizeLocator(Fe));let At=Fe.locatorHash,H=Ie.target,at=g;if(H===at)continue;let Re=Ie.linkType;for(let ke of Se)ne=ne.children.get(ke);if(!le)te.push({srcDir:H,dstDir:at,linkType:Re,realLocatorHash:At});else for(let ke of Se)if(ee=V.join(ee,ke),le=le.children.get(ke),!le){te.push({srcDir:H,dstDir:at,linkType:Re,realLocatorHash:At});break}}let ae=Xs.progressViaCounter(te.length),fe=a.reportProgress(ae),ce=o.configuration.get("nmMode"),me={value:ce},he=o.configuration.get("winLinkType");try{let Be=me.value==="hardlinks-global"?`${dj(o.configuration)}/v1`:null;if(Be&&!await oe.existsPromise(Be)){await oe.mkdirpPromise(Be);for(let g=0;g<256;g++)await oe.mkdirPromise(V.join(Be,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!J.has(g.srcDir))&&(J.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:Be,nmMode:me,windowsLinkType:he,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(x),x.length=0;for(let g of te){let Ee=J.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==Ee&&await R(Ee,g.dstDir,{nmMode:me})}await Promise.all(x),await oe.mkdirPromise(A,{recursive:!0});let we=await m1t(e,v,o.cwd,{loadManifest:n});await E1t(h,we,o.cwd,he),await p1t(o,e,we,me,{installChangedByUser:I}),ce=="hardlinks-global"&&me.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{fe.stop()}}async function E1t(t,e,r,o){for(let a of t.keys()){if(V.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=V.join(a,Si,BQ);await oe.removePromise(n)}}for(let[a,n]of e){if(V.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=V.join(a,Si,BQ),A=t.get(a)||new Map;await oe.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await oe.removePromise(V.join(u,p)),process.platform==="win32"&&await oe.removePromise(V.join(u,`${p}.cmd`)));for(let[p,h]of n){let E=A.get(p),I=V.join(u,p);E!==h&&(process.platform==="win32"?await(0,u1e.default)(ue.fromPortablePath(h),ue.fromPortablePath(I),{createPwshFile:!1}):(await oe.removePromise(I),await gj(h,I,o),V.contains(r,await oe.realpathPromise(h))!==null&&await oe.chmodPromise(h,493)))}}}Ye();St();nA();var cv=class extends P0{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new mj(r)}},mj=class extends mm{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new mi({baseFs:new Jl({maxOpenFiles:80,readOnlyArchives:!0})}),a=zIe(r,this.opts.project.cwd,o),{tree:n,errors:u}=zB(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:I,text:v}of u)this.opts.report.reportError(I,v);return}let A=new Map;r.fallbackPool=A;let p=(I,v)=>{let x=W.parseLocator(v.locator),C=W.stringifyIdent(x);C===I?A.set(I,x.reference):A.set(I,[C,x.reference])},h=V.join(this.opts.project.cwd,dr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let I of E.dirList){let v=V.join(h,I),x=n.get(v);if(typeof x>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in x)p(I,x);else for(let C of x.dirList){let R=V.join(v,C),L=n.get(R);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${I}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var C1t={hooks:{cleanGlobalArtifacts:async t=>{let e=dj(t);await oe.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[lv,cv]},w1t=C1t;var dG={};Vt(dG,{NpmHttpFetcher:()=>fv,NpmRemapResolver:()=>pv,NpmSemverFetcher:()=>dl,NpmSemverResolver:()=>hv,NpmTagResolver:()=>gv,default:()=>Lvt,npmConfigUtils:()=>Zn,npmHttpUtils:()=>Zr,npmPublishUtils:()=>ow});Ye();var D1e=$e(zn());var Wn="npm:";var Zr={};Vt(Zr,{AuthType:()=>I1e,customPackageError:()=>ym,del:()=>R1t,get:()=>Em,getIdentUrl:()=>DQ,getPackageMetadata:()=>JC,handleInvalidAuthenticationError:()=>k0,post:()=>Q1t,put:()=>F1t});Ye();Ye();St();var wj=$e(f2()),C1e=$e(D_()),w1e=$e(zn());var Zn={};Vt(Zn,{RegistryType:()=>y1e,getAuditRegistry:()=>I1t,getAuthConfiguration:()=>Cj,getDefaultRegistry:()=>uv,getPublishRegistry:()=>B1t,getRegistryConfiguration:()=>E1e,getScopeConfiguration:()=>Ej,getScopeRegistry:()=>KC,normalizeRegistry:()=>oc});var y1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))(y1e||{});function oc(t){return t.replace(/\/$/,"")}function I1t({configuration:t}){return uv({configuration:t,type:"npmAuditRegistry"})}function B1t(t,{configuration:e}){return t.publishConfig?.registry?oc(t.publishConfig.registry):t.name?KC(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):uv({configuration:e,type:"npmPublishRegistry"})}function KC(t,{configuration:e,type:r="npmRegistryServer"}){let o=Ej(t,{configuration:e});if(o===null)return uv({configuration:e,type:r});let a=o.get(r);return a===null?uv({configuration:e,type:r}):oc(a)}function uv({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return oc(r!==null?r:t.get("npmRegistryServer"))}function E1e(t,{configuration:e}){let r=e.get("npmRegistries"),o=oc(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function Ej(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function Cj(t,{configuration:e,ident:r}){let o=r&&Ej(r.scope,{configuration:e});return o?.get("npmAuthIdent")||o?.get("npmAuthToken")?o:E1e(t,{configuration:e})||e}var I1e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(I1e||{});async function k0(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){if(PQ(t))throw new zt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new zt(41,`Invalid authentication (${typeof e!="string"?`as ${await N1t(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function ym(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${de.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function DQ(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var B1e=new Map,v1t=new Map;async function D1t(t){return await _e.getFactoryWithDefault(B1e,t,async()=>{let e=null;try{e=await oe.readJsonPromise(t)}catch{}return e})}async function S1t(t,e,{configuration:r,cached:o,registry:a,headers:n,version:u,...A}){return await _e.getFactoryWithDefault(v1t,t,async()=>await Em(DQ(e),{...A,customErrorMessage:ym,configuration:r,registry:a,ident:e,headers:{...n,["If-None-Match"]:o?.etag,["If-Modified-Since"]:o?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(o===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:o.metadata}}let E=P1t(JSON.parse(h.body.toString())),I={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return B1e.set(t,Promise.resolve(I)),Promise.resolve().then(async()=>{let v=`${t}-${process.pid}.tmp`;await oe.mkdirPromise(V.dirname(v),{recursive:!0}),await oe.writeJsonPromise(v,I,{compact:!0}),await oe.renamePromise(v,t)}).catch(()=>{}),{...h,body:E}}}))}async function JC(t,{cache:e,project:r,registry:o,headers:a,version:n,...u}){let{configuration:A}=r;o=Av(A,{ident:t,registry:o});let p=x1t(A,o),h=V.join(p,`${W.slugifyIdent(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await D1t(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(A.get("enableOfflineMode")){let I=structuredClone(E.metadata),v=new Set;if(e){for(let C of Object.keys(I.versions)){let R=W.makeLocator(t,`npm:${C}`),L=e.getLocatorMirrorPath(R);(!L||!oe.existsSync(L))&&(delete I.versions[C],v.add(C))}let x=I["dist-tags"].latest;if(v.has(x)){let C=Object.keys(E.metadata.versions).sort(w1e.default.compare),R=C.indexOf(x);for(;v.has(C[R])&&R>=0;)R-=1;R>=0?I["dist-tags"].latest=C[R]:delete I["dist-tags"].latest}}return I}}return await S1t(h,t,{...u,configuration:A,cached:E,registry:o,headers:a,version:n})}var v1e=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function P1t(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,C1e.default)(r,v1e)]))}}var b1t=wn.makeHash(...v1e).slice(0,6);function x1t(t,e){let r=k1t(t),o=new URL(e);return V.join(r,b1t,o.hostname)}function k1t(t){return V.join(t.get("globalFolder"),"metadata/npm")}async function Em(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){n=Av(e,{ident:o,registry:n}),o&&o.scope&&typeof a>"u"&&(a=1);let A=await SQ(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await nn.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await k0(p,{registry:n,configuration:e,headers:r}),p}}async function Q1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=Av(o,{ident:n,registry:A});let E=await SQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...VC(p)});try{return await nn.post(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!PQ(I)||p)throw await k0(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await Ij(I,{configuration:o});let v={...a,...VC(p)};try{return await nn.post(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await k0(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function F1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=Av(o,{ident:n,registry:A});let E=await SQ(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...VC(p)});try{return await nn.put(A+t,e,{configuration:o,headers:a,...h})}catch(I){if(!PQ(I))throw await k0(I,{attemptedAs:r,registry:A,configuration:o,headers:a}),I;p=await Ij(I,{configuration:o});let v={...a,...VC(p)};try{return await nn.put(`${A}${t}`,e,{configuration:o,headers:v,...h})}catch(x){throw await k0(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function R1t(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){u=Av(r,{ident:a,registry:u});let h=await SQ(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...VC(A)});try{return await nn.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!PQ(E)||A)throw await k0(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await Ij(E,{configuration:r});let I={...o,...VC(A)};try{return await nn.del(`${u}${t}`,{configuration:r,headers:I,...p})}catch(v){throw await k0(v,{attemptedAs:e,registry:u,configuration:r,headers:o}),v}}}function Av(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return KC(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return oc(r)}async function SQ(t,{authType:e=2,configuration:r,ident:o}){let a=Cj(t,{configuration:r,ident:o}),n=T1t(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new zt(33,"No authentication configured for request");return null}function T1t(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function N1t(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await nn.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function Ij(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Nt.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,de.pretty(e,"$1",de.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&Ji.openUrl){let{openNow:u}=await(0,wj.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});u&&(await Ji.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` `)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,wj.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` `),o}function PQ(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function VC(t){return{["npm-otp"]:t}}var fv=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o,params:a}=W.parseRange(e.reference);return!(!D1e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=W.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await Em(o.__archiveUrl,{customErrorMessage:ym,configuration:r.project.configuration,ident:e});return await Xi.convertToZip(a,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}};Ye();var pv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!W.tryParseDescriptor(e.range.slice(Wn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(W.parseDescriptor(e.range.slice(Wn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(W.parseDescriptor(e.range.slice(Wn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(W.parseDescriptor(e.range.slice(Wn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ye();Ye();var S1e=$e(zn());var dl=class{supports(e,r){if(!e.reference.startsWith(Wn))return!1;let o=new URL(e.reference);return!(!S1e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await Em(dl.getLocatorUrl(e),{customErrorMessage:ym,configuration:r.project.configuration,ident:e})}catch{o=await Em(dl.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:ym,configuration:r.project.configuration,ident:e})}return await Xi.convertToZip(o,{configuration:r.project.configuration,prefixPath:W.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=KC(e.scope,{configuration:o}),n=dl.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=kr.clean(e.reference.slice(Wn.length));if(r===null)throw new zt(10,"The npm semver resolver got selected, but the version isn't semver");return`${DQ(e)}/-/${e.name}-${r}.tgz`}};Ye();Ye();Ye();var Bj=$e(zn());var bQ=W.makeIdent(null,"node-gyp"),L1t=/\b(node-gyp|prebuild-install)\b/,hv=class{supportsDescriptor(e,r){return e.range.startsWith(Wn)?!!kr.validRange(e.range.slice(Wn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Wn))return!1;let{selector:o}=W.parseRange(e.reference);return!!Bj.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=kr.validRange(e.range.slice(Wn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);let n=await JC(e,{cache:o.fetchOptions?.cache,project:o.project,version:Bj.default.valid(a.raw)?a.raw:void 0}),u=_e.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new kr.SemVer(h);if(a.test(E))return E}catch{}return _e.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=W.makeLocator(e,`${Wn}${h.raw}`),I=n.versions[h.raw].dist.tarball;return dl.isConventionalTarballUrl(E,I,{configuration:o.project.configuration})?E:W.bindLocator(E,{__archiveUrl:I})})}async getSatisfying(e,r,o,a){let n=kr.validRange(e.range.slice(Wn.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Wn.length)}`);return{locators:_e.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return _e.mapAndFilter.skip;let h=W.tryParseRange(p.reference,{requireProtocol:Wn});if(!h)return _e.mapAndFilter.skip;let E=new kr.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:_e.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=W.parseRange(e.reference),a=kr.clean(o);if(a===null)throw new zt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await JC(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new zt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new zt(16,`Registry failed to return reference "${a}"`);let u=new Ot;if(u.load(n.versions[a]),!u.dependencies.has(bQ.identHash)&&!u.peerDependencies.has(bQ.identHash)){for(let A of u.scripts.values())if(A.match(L1t)){u.dependencies.set(bQ.identHash,W.makeDescriptor(bQ,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ye();Ye();var P1e=$e(zn());var gv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Wn)||!FE.test(e.range.slice(Wn.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Wn.length),n=await JC(e,{cache:o.fetchOptions?.cache,project:o.project});if(!Object.hasOwn(n,"dist-tags"))throw new zt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.hasOwn(u,a))throw new zt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=W.makeLocator(e,`${Wn}${A}`),h=n.versions[A].dist.tarball;return dl.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[W.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){let n=[];for(let u of o){if(u.identHash!==e.identHash)continue;let A=W.tryParseRange(u.reference,{requireProtocol:Wn});if(!(!A||!P1e.default.valid(A.selector))){if(A.params?.__archiveUrl){let p=W.makeRange({protocol:Wn,selector:A.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(W.makeDescriptor(e,p),r,a);if(u.reference!==h.reference)continue}n.push(u)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var ow={};Vt(ow,{getGitHead:()=>Tvt,getPublishAccess:()=>dBe,getReadmeContent:()=>mBe,makePublishBody:()=>Rvt});Ye();Ye();St();var AG={};Vt(AG,{PackCommand:()=>U0,default:()=>gvt,packUtils:()=>wA});Ye();Ye();Ye();St();qt();var wA={};Vt(wA,{genPackList:()=>XQ,genPackStream:()=>uG,genPackageManifest:()=>iBe,hasPackScripts:()=>lG,prepareForPack:()=>cG});Ye();St();var aG=$e(Zo()),rBe=$e(Z2e()),nBe=ve("zlib"),ivt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],svt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function lG(t){return!!(un.hasWorkspaceScript(t,"prepack")||un.hasWorkspaceScript(t,"postpack"))}async function cG(t,{report:e},r){await un.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=V.join(t.cwd,Ot.fileName);await oe.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:oe}),await r()}finally{await un.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function uG(t,e){typeof e>"u"&&(e=await XQ(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(V.normalize(n));for(let n of t.manifest.bin.values())r.add(V.normalize(n));let o=rBe.default.pack();process.nextTick(async()=>{for(let n of e){let u=V.normalize(n),A=V.resolve(t.cwd,u),p=V.join("package",u),h=await oe.lstatPromise(A),E={name:p,mtime:new Date(vi.SAFE_TIME*1e3)},I=r.has(u)?493:420,v,x,C=new Promise((L,U)=>{v=L,x=U}),R=L=>{L?x(L):v()};if(h.isFile()){let L;u==="package.json"?L=Buffer.from(JSON.stringify(await iBe(t),null,2)):L=await oe.readFilePromise(A),o.entry({...E,mode:I,type:"file"},L,R)}else h.isSymbolicLink()?o.entry({...E,mode:I,type:"symlink",linkname:await oe.readlinkPromise(A)},R):R(new Error(`Unsupported file type ${h.mode} for ${ue.fromPortablePath(u)}`));await C}o.finalize()});let a=(0,nBe.createGzip)();return o.pipe(a),a}async function iBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function XQ(t){let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let I of svt)o.reject.push(I);for(let I of ivt)o.accept.push(I);o.reject.push(r.get("rcFilename"));let a=I=>{if(I===null||!I.startsWith(`${t.cwd}/`))return;let v=V.relative(t.cwd,I),x=V.resolve(Bt.root,v);o.reject.push(x)};a(V.resolve(e.cwd,dr.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(I=>I.populateYarnPaths,e,I=>{a(I)});for(let I of e.workspaces){let v=V.relative(t.cwd,I.cwd);v!==""&&!v.match(/^(\.\.)?\//)&&o.reject.push(`/${v}`)}let n={accept:[],reject:[]},u=t.manifest.publishConfig?.main??t.manifest.main,A=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;u!=null&&n.accept.push(V.resolve(Bt.root,u)),A!=null&&n.accept.push(V.resolve(Bt.root,A)),typeof p=="string"&&n.accept.push(V.resolve(Bt.root,p));for(let I of h.values())n.accept.push(V.resolve(Bt.root,I));if(p instanceof Map)for(let[I,v]of p.entries())n.accept.push(V.resolve(Bt.root,I)),typeof v=="string"&&n.accept.push(V.resolve(Bt.root,v));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let I of t.manifest.files)sBe(n.accept,I,{cwd:Bt.root})}return await ovt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function ovt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new _u(t),u=[[Bt.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!eBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),I=!1,v=!1;if(!e||A!==Bt.root)for(let R of E)I=I||R===".gitignore",v=v||R===".npmignore";let x=v?await $2e(n,A,".npmignore"):I?await $2e(n,A,".gitignore"):null,C=x!==null?[x].concat(p):p;eBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let R of E)u.push([V.resolve(A,R),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(V.relative(Bt.root,A))}return a.sort()}async function $2e(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(V.join(e,r),"utf8");for(let n of a.split(/\n/g))sBe(o.reject,n,{cwd:e});return o}function avt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=V.resolve(e,t)),r&&(t=`!${t}`),t}function sBe(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(avt(o,{cwd:r}))}function eBe(t,{globalList:e,ignoreLists:r}){let o=zQ(t,e.accept);if(o!==0)return o===2;let a=zQ(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=zQ(t,n.accept);if(u!==0)return u===2;let A=zQ(t,n.reject);if(A!==0)return A===1}return!1}function zQ(t,e){let r=e,o=[];for(let a=0;a{await cG(a,{report:p},async()=>{p.reportJson({base:ue.fromPortablePath(a.cwd)});let h=await XQ(a);for(let E of h)p.reportInfo(null,ue.fromPortablePath(E)),p.reportJson({location:ue.fromPortablePath(E)});if(!this.dryRun){let E=await uG(a,h),I=oe.createWriteStream(u);E.pipe(I),await new Promise(v=>{I.on("finish",v)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${de.pretty(r,u,de.Type.PATH)}`),p.reportJson({output:ue.fromPortablePath(u)}))})).exitCode()}};U0.paths=[["pack"]],U0.usage=nt.Usage({description:"generate a tarball from the active workspace",details:"\n This command will turn the active workspace into a compressed archive suitable for publishing. The archive will by default be stored at the root of the workspace (`package.tgz`).\n\n If the `-o,---out` is set the archive will be created at the specified path. The `%s` and `%v` variables can be used within the path and will be respectively replaced by the package name and version.\n ",examples:[["Create an archive from the active workspace","yarn pack"],["List the files that would be made part of the workspace's archive","yarn pack --dry-run"],["Name and output the archive in a dedicated folder","yarn pack --out /artifacts/%s-%v.tgz"]]});function lvt(t,{workspace:e}){let r=t.replace("%s",cvt(e)).replace("%v",uvt(e));return ue.toPortablePath(r)}function cvt(t){return t.manifest.name!==null?W.slugifyIdent(t.manifest.name):"package"}function uvt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var Avt=["dependencies","devDependencies","peerDependencies"],fvt="workspace:",pvt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of Avt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=W.parseRange(a.range);if(u.protocol===fvt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new zt(21,`${W.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;W.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?W.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][W.stringifyIdent(a)]=A}}},hvt={hooks:{beforeWorkspacePacking:pvt},commands:[U0]},gvt=hvt;var hBe=ve("crypto"),gBe=$e(pBe());async function Rvt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=W.stringifyIdent(u),h=(0,hBe.createHash)("sha1").update(e).digest("hex"),E=gBe.default.fromData(e).toString(),I=r??dBe(t,u),v=await mBe(t),x=await wA.genPackageManifest(t),C=`${p}-${A}.tgz`,R=new URL(`${oc(a)}/${p}/-/${C}`);return{_id:p,_attachments:{[C]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:I,["dist-tags"]:{[o]:A},versions:{[A]:{...x,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:E,tarball:R.toString()}}},readme:v}}async function Tvt(t){try{let{stdout:e}=await Ur.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function dBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function mBe(t){let e=ue.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${W.stringifyIdent(r)} `;try{a=await oe.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var gG={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},yBe={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},Nvt={configuration:{...gG,...yBe,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...gG,...yBe}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:oc,valueDefinition:{description:"",type:"SHAPE",properties:{...gG}}}},fetchers:[fv,dl],resolvers:[pv,hv,gv]},Lvt=Nvt;var DG={};Vt(DG,{NpmAuditCommand:()=>H0,NpmInfoCommand:()=>q0,NpmLoginCommand:()=>j0,NpmLogoutCommand:()=>G0,NpmPublishCommand:()=>Y0,NpmTagAddCommand:()=>K0,NpmTagListCommand:()=>W0,NpmTagRemoveCommand:()=>V0,NpmWhoamiCommand:()=>J0,default:()=>jvt,npmAuditTypes:()=>Rv,npmAuditUtils:()=>ZQ});Ye();Ye();qt();var wG=$e(Zo());Za();var Rv={};Vt(Rv,{Environment:()=>Qv,Severity:()=>Fv});var Qv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(Qv||{}),Fv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(Fv||{});var ZQ={};Vt(ZQ,{allSeverities:()=>aw,getPackages:()=>CG,getReportTree:()=>yG,getSeverityInclusions:()=>mG,getTopLevelDependencies:()=>EG});Ye();var EBe=$e(zn());var aw=["info","low","moderate","high","critical"];function mG(t){if(typeof t>"u")return new Set(aw);let e=aw.indexOf(t),r=aw.slice(e);return new Set(r)}function yG(t){let e={},r={children:e};for(let[o,a]of _e.sortMap(Object.entries(t),n=>n[0]))for(let n of _e.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:de.tuple(de.Type.IDENT,W.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:de.tuple(de.Type.ID,n.id)},Issue:{label:"Issue",value:de.tuple(de.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:de.tuple(de.Type.URL,n.url)},Severity:{label:"Severity",value:de.tuple(de.Type.NO_HINT,n.severity)},["Vulnerable Versions"]:{label:"Vulnerable Versions",value:de.tuple(de.Type.RANGE,n.vulnerable_versions)},["Tree Versions"]:{label:"Tree Versions",children:[...n.versions].sort(EBe.default.compare).map(u=>({value:de.tuple(de.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:_e.sortMap(n.dependents,u=>W.stringifyLocator(u)).map(u=>({value:de.tuple(de.Type.LOCATOR,u)}))}}};return r}function EG(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function CG(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(W.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let v=W.stringifyIdent(E),x=_e.getMapWithDefault(o,v);_e.getArrayWithDefault(x,E.version).push(A)}if(r)for(let v of E.dependencies.values())n.push([E,v])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var H0=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=ge.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=ge.String("--environment","all",{description:"Which environments to cover",validator:Ks(Qv)});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=ge.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=ge.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:Ks(Fv)});this.excludes=ge.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=ge.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=EG(o,a,{all:this.all,environment:this.environment}),u=CG(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(J=>wG.default.isMatch(L,J))||(p[L]=[...U.keys()]);let h=Zn.getAuditRegistry({configuration:r}),E,I=await AA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=Zr.post("/-/npm/v1/security/advisories/bulk",p,{authType:Zr.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,ae])=>{let fe=await Zr.getPackageMetadata(W.parseIdent(te),{project:o});return _e.mapAndFilter(ae,ce=>{let{deprecated:me}=fe.versions[ce];return me?[te,ce,me]:_e.mapAndFilter.skip})})),J=await L;for(let[te,ae,fe]of U.flat(1))Object.hasOwn(J,te)&&J[te].some(ce=>kr.satisfiesWithPrereleases(ae,ce.vulnerable_versions))||(J[te]??=[],J[te].push({id:`${te} (deprecation)`,title:fe.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:ae}));E=J});if(I.hasErrors())return I.exitCode();let v=mG(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let J=U.filter(te=>!wG.default.isMatch(`${te.id}`,x)&&v.has(te.severity));J.length>0&&(C[L]=J.map(te=>{let ae=u.get(L);if(typeof ae>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let fe=[...ae.keys()].filter(me=>kr.satisfiesWithPrereleases(me,te.vulnerable_versions)),ce=new Map;for(let me of fe)for(let he of ae.get(me))ce.set(he.locatorHash,he);return{...te,versions:fe,dependents:[...ce.values()]}}))}let R=Object.keys(C).length>0;return R?($s.emitTree(yG(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),R?1:0)}};H0.paths=[["npm","audit"]],H0.usage=nt.Usage({description:"perform a vulnerability audit against the installed packages",details:` This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${aw.map(r=>`\`${r}\``).join(", ")}. If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]});Ye();Ye();St();qt();var IG=$e(zn()),BG=ve("util"),q0=class extends ut{constructor(){super(...arguments);this.fields=ge.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let ae=o.topLevelWorkspace;if(!ae.manifest.name)throw new it(`Missing ${de.pretty(r,"name",de.Type.CODE)} field in ${ue.fromPortablePath(V.join(ae.cwd,dr.manifest))}`);E=W.makeDescriptor(ae.manifest.name,"unknown")}else E=W.parseDescriptor(h);let I=Zr.getIdentUrl(E),v=vG(await Zr.get(I,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:Zr.customPackageError})),x=Object.keys(v.versions).sort(IG.default.compareLoose),R=v["dist-tags"].latest||x[x.length-1],L=kr.validRange(E.range);if(L){let ae=IG.default.maxSatisfying(x,L);ae!==null?R=ae:(p.reportWarning(0,`Unmet range ${W.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.hasOwn(v["dist-tags"],E.range)?R=v["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${W.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let U=v.versions[R],J={...v,...U,version:R,versions:x},te;if(a!==null){te={};for(let ae of a){let fe=J[ae];if(typeof fe<"u")te[ae]=fe;else{p.reportWarning(1,`The ${de.pretty(r,ae,de.Type.CODE)} field doesn't exist inside ${W.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete J.dist,delete J.readme,delete J.users),te=J;p.reportJson(te),this.json||n.push(te)}});BG.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` `),this.context.stdout.write(`${(0,BG.inspect)(p,{depth:1/0,colors:!0,compact:!1})} `);return A.exitCode()}};q0.paths=[["npm","info"]],q0.usage=nt.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]});function vG(t){if(Array.isArray(t)){let e=[];for(let r of t)r=vG(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=vG(t[r]);o&&(e[r]=o)}return e}else return t||null}Ye();Ye();qt();var CBe=$e(f2()),j0=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=ge.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=await $Q({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Nt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Uvt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await Ovt(o,u,r);return await Mvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};j0.paths=[["npm","login"]],j0.usage=nt.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]});async function $Q({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?Zn.getScopeRegistry(t,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):t?Zn.getScopeRegistry(t,{configuration:r}):e?Zn.getPublishRegistry((await fC(r,o)).manifest,{configuration:r}):Zn.getDefaultRegistry({configuration:r})}async function Ovt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:Zr.AuthType.NO_AUTH};try{return(await Zr.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:Zr.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await Zr.get(o,u);for(let[E,I]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=I);let p=`${o}/-rev/${a._rev}`;return(await Zr.put(p,a,u)).token}async function Mvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=_e.isIndexableObject(A)?A:{},h=p[u],E=_e.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await Ke.updateHomeConfiguration(n)}async function Uvt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${de.pretty(t,e,de.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,CBe.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ye();Ye();qt();var lw=new Set(["npmAuthIdent","npmAuthToken"]),G0=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=ge.Boolean("-A,--all",!1,{description:"Logout of all registries"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await $Q({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await Ke.find(this.context.cwd,this.context.plugins),A=W.makeIdent(this.scope??null,"pkg");return!Zn.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await Hvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await wBe("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await $Q({configuration:r,cwd:this.context.cwd,publish:this.publish});await wBe("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};G0.paths=[["npm","logout"]],G0.usage=nt.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]});function _vt(t,e){let r=t[e];if(!_e.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...lw].every(n=>!o.has(n)))return!1;for(let n of lw)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of lw)delete a[n];return t[e]=a,!0}async function Hvt(){let t=e=>{let r=!1,o=_e.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))_vt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await Ke.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function wBe(t,e){return await Ke.updateHomeConfiguration({[t]:r=>{let o=_e.isIndexableObject(r)?r:{};if(!Object.hasOwn(o,e))return r;let a=o[e],n=_e.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...lw].every(p=>!u.has(p)))return r;for(let p of lw)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of lw)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ye();qt();var Y0=class extends ut{constructor(){super(...arguments);this.access=ge.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=ge.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=ge.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=ge.String("--otp",{description:"The OTP token to use with the command"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);if(a.manifest.private)throw new it("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new it("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=Zn.getPublishRegistry(a.manifest,{configuration:r});return(await Nt.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await Zr.get(Zr.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new zt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await un.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await wA.prepareForPack(a,{report:h},async()=>{let E=await wA.genPackList(a);for(let R of E)h.reportInfo(null,R);let I=await wA.genPackStream(a,E),v=await _e.bufferStream(I),x=await ow.getGitHead(a.cwd),C=await ow.makePublishBody(a,v,{access:this.access,tag:this.tag,registry:A,gitHead:x});await Zr.put(Zr.getIdentUrl(n),C,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Y0.paths=[["npm","publish"]],Y0.usage=nt.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overriden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]});Ye();qt();var IBe=$e(zn());Ye();St();qt();var W0=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String({required:!1})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=W.parseIdent(this.package);else{if(!a)throw new rr(o.cwd,this.context.cwd);if(!a.manifest.name)throw new it(`Missing 'name' field in ${ue.fromPortablePath(V.join(a.cwd,dr.manifest))}`);n=a.manifest.name}let u=await Tv(n,r),p={children:_e.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:de.tuple(de.Type.RESOLUTION,{descriptor:W.makeDescriptor(n,h),locator:W.makeLocator(n,E)})}))};return $s.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};W0.paths=[["npm","tag","list"]],W0.usage=nt.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` This command will list all tags of a package from the npm registry. If the package is not specified, Yarn will default to the current workspace. `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]});async function Tv(t,e){let r=`/-/package${Zr.getIdentUrl(t)}/dist-tags`;return Zr.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:Zr.customPackageError})}var K0=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=W.parseDescriptor(this.package,!0),u=n.range;if(!IBe.default.valid(u))throw new it(`The range ${de.pretty(r,n.range,de.Type.RANGE)} must be a valid semver version`);let A=Zn.getPublishRegistry(a.manifest,{configuration:r}),p=de.pretty(r,n,de.Type.IDENT),h=de.pretty(r,u,de.Type.RANGE),E=de.pretty(r,this.tag,de.Type.CODE);return(await Nt.start({configuration:r,stdout:this.context.stdout},async v=>{let x=await Tv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&v.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),v.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};K0.paths=[["npm","tag","add"]],K0.usage=nt.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]});Ye();qt();var V0=class extends ut{constructor(){super(...arguments);this.package=ge.String();this.tag=ge.String()}async execute(){if(this.tag==="latest")throw new it("The 'latest' tag cannot be removed.");let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=W.parseIdent(this.package),u=Zn.getPublishRegistry(a.manifest,{configuration:r}),A=de.pretty(r,this.tag,de.Type.CODE),p=de.pretty(r,n,de.Type.IDENT),h=await Tv(n,r);if(!Object.hasOwn(h,this.tag))throw new it(`${A} is not a tag of package ${p}`);return(await Nt.start({configuration:r,stdout:this.context.stdout},async I=>{let v=`/-/package${Zr.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await Zr.del(v,{configuration:r,registry:u,ident:n,jsonResponse:!0}),I.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};V0.paths=[["npm","tag","remove"]],V0.usage=nt.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` This command will remove a tag from a package from the npm registry. `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]});Ye();Ye();qt();var J0=class extends ut{constructor(){super(...arguments);this.scope=ge.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=ge.Boolean("--publish",!1,{description:"Print username for the publish registry"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=Zn.getScopeRegistry(this.scope,{configuration:r,type:Zn.RegistryType.PUBLISH_REGISTRY}):this.scope?o=Zn.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=Zn.getPublishRegistry((await fC(r,this.context.cwd)).manifest,{configuration:r}):o=Zn.getDefaultRegistry({configuration:r}),(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await Zr.get("/-/whoami",{configuration:r,registry:o,authType:Zr.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?W.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};J0.paths=[["npm","whoami"]],J0.usage=nt.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]});var qvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[H0,q0,j0,G0,Y0,K0,W0,V0,J0]},jvt=qvt;var FG={};Vt(FG,{PatchCommand:()=>Z0,PatchCommitCommand:()=>X0,PatchFetcher:()=>Uv,PatchResolver:()=>_v,default:()=>aDt,patchUtils:()=>Sm});Ye();Ye();St();nA();var Sm={};Vt(Sm,{applyPatchFile:()=>tF,diffFolders:()=>kG,ensureUnpatchedDescriptor:()=>SG,ensureUnpatchedLocator:()=>nF,extractPackageToDisk:()=>xG,extractPatchFlags:()=>xBe,isParentRequired:()=>bG,isPatchDescriptor:()=>rF,isPatchLocator:()=>z0,loadPatchFiles:()=>Mv,makeDescriptor:()=>iF,makeLocator:()=>PG,makePatchHash:()=>QG,parseDescriptor:()=>Lv,parseLocator:()=>Ov,parsePatchFile:()=>Nv,unpatchDescriptor:()=>iDt,unpatchLocator:()=>sDt});Ye();St();Ye();St();var Gvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function cw(t){return V.relative(Bt.root,V.resolve(Bt.root,ue.toPortablePath(t)))}function Yvt(t){let e=t.trim().match(Gvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var Wvt=420,Kvt=493;var BBe=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),Vvt=t=>({header:Yvt(t),parts:[]}),Jvt={["@"]:"header",["-"]:"deletion",["+"]:"insertion",[" "]:"context",["\\"]:"pragma",undefined:"context"};function zvt(t){let e=[],r=BBe(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=BBe()}for(let p=0;p0?"patch":"mode change",J=null;switch(U){case"rename":{if(!E||!I)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:cw(E),toPath:cw(I)}),J=I}break;case"file deletion":{let te=a||C;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:cw(te),mode:eF(p),hash:v})}break;case"file creation":{let te=n||R;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:cw(te),mode:eF(h),hash:x})}break;case"patch":case"mode change":J=R||n;break;default:_e.assertNever(U);break}J&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:cw(J),oldMode:eF(u),newMode:eF(A)}),J&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:cw(J),hunks:L,beforeHash:v,afterHash:x})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function eF(t){let e=parseInt(t,8)&511;if(e!==Wvt&&e!==Kvt)throw new Error(`Unexpected file mode string: ${t}`);return e}function Nv(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),Xvt(zvt(e))}function Zvt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:_e.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ye();St();var uw=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function Aw(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function tF(t,{baseFs:e=new Tn,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!kr.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await Aw(e,V.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await Aw(e,V.dirname(a.fromPath),async()=>{await Aw(e,V.dirname(a.toPath),async()=>{await Aw(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` `)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` `):"";await e.mkdirpPromise(V.dirname(a.path),{chmod:493,utimes:[vi.SAFE_TIME,vi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,vi.SAFE_TIME,vi.SAFE_TIME)}break;case"patch":await Aw(e,a.path,async()=>{await tDt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(vBe(a.newMode)!==vBe(u))continue;await Aw(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:_e.assertNever(a);break}}function vBe(t){return(t&64)>0}function DBe(t){return t.replace(/\s+$/,"")}function eDt(t,e){return DBe(t)===DBe(e)}async function tDt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let I of t){let v=Math.max(h,I.header.patched.start+p),x=Math.max(0,v-h),C=Math.max(0,u.length-v-I.header.original.length),R=Math.max(x,C),L=0,U=0,J=null;for(;L<=R;){if(L<=x&&(U=v-L,J=SBe(I,u,U),J!==null)){L=-L;break}if(L<=C&&(U=v+L,J=SBe(I,u,U),J!==null))break;L+=1}if(J===null)throw new uw(t.indexOf(I),I);A.push(J),p+=L,h=U+I.header.original.length}if(o)return;let E=0;for(let I of A)for(let v of I)switch(v.type){case"splice":{let x=v.index+E;u.splice(x,v.numToDelete,...v.linesToInsert),E+=v.linesToInsert.length-v.numToDelete}break;case"pop":u.pop();break;case"push":u.push(v.line);break;default:_e.assertNever(v);break}await r.writeFilePromise(e,u.join(` `),{mode:a})}function SBe(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!eDt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:_e.assertNever(a.type);break}return o}var nDt=/^builtin<([^>]+)>$/;function fw(t,e){let{protocol:r,source:o,selector:a,params:n}=W.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>ue.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?W.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function rF(t){return t.range.startsWith("patch:")}function z0(t){return t.reference.startsWith("patch:")}function Lv(t){let{sourceItem:e,...r}=fw(t.range,W.parseDescriptor);return{...r,sourceDescriptor:e}}function Ov(t){let{sourceItem:e,...r}=fw(t.reference,W.parseLocator);return{...r,sourceLocator:e}}function iDt(t){let{sourceItem:e}=fw(t.range,W.parseDescriptor);return e}function sDt(t){let{sourceItem:e}=fw(t.reference,W.parseLocator);return e}function SG(t){if(!rF(t))return t;let{sourceItem:e}=fw(t.range,W.parseDescriptor);return e}function nF(t){if(!z0(t))return t;let{sourceItem:e}=fw(t.reference,W.parseLocator);return e}function PBe({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:W.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return W.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function iF(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return W.makeDescriptor(t,PBe({parentLocator:e,sourceItem:r,patchPaths:o},W.stringifyDescriptor))}function PG(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return W.makeLocator(t,PBe({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},W.stringifyLocator))}function bBe({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(nDt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):V.isAbsolute(a)?t(a):e(a)}function xBe(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function bG(t){return bBe({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function Mv(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new gn(Bt.root),prefixPath:V.relative(Bt.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await _e.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=xBe(u),p=await bBe({onAbsolute:async h=>await oe.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(V.join(a.prefixPath,h),"utf8")},onProject:async h=>await oe.readFilePromise(V.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` `));return n}async function xG(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=nF(t),n=r.storedChecksums,u=new Qi,A=await oe.mktempPromise(),p=V.join(A,"source"),h=V.join(A,"user"),E=V.join(A,".yarn-patch.json"),I=r.configuration.makeFetcher(),v=[];try{let x,C;if(t.locatorHash===a.locatorHash){let R=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u});v.push(()=>R.releaseFs?.()),x=R,C=R}else x=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>x.releaseFs?.()),C=await I.fetch(t,{cache:e,project:r,fetcher:I,checksums:n,report:u}),v.push(()=>C.releaseFs?.());await Promise.all([oe.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),oe.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),oe.writeJsonPromise(E,{locator:W.stringifyLocator(t),version:o.version})])}finally{for(let x of v)x()}return oe.detachTemp(A),h}async function kG(t,e){let r=ue.fromPortablePath(t).replace(/\\/g,"/"),o=ue.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Ur.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:ue.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. The following error was reported by 'git': ${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${_e.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${_e.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(_e.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(_e.escapeRegExp(`${o}/`),"g"),"")}function QG(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=Nv(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!kr.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return wn.makeHash(`${3}`,...r).slice(0,6)}Ye();function kBe(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${de.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${de.pretty(e,a,de.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${de.pretty(e,a,de.Type.ADDED)}`);break;default:_e.assertNever(o.type)}}var Uv=class{supports(e,r){return!!z0(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${W.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:W.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=Ov(e),A=await Mv(o,u,r),p=await oe.mktempPromise(),h=V.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),I=W.getIdentVendorPath(e),v=new zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await _e.releaseAfterUseAsync(async()=>{await v.copyPromise(I,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),v.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let R=new zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new gn(V.resolve(Bt.root,I),{baseFs:R});try{await tF(Nv(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof uw))throw U;let J=r.project.configuration.get("enableInlineHunks"),te=!J&&!C?" (set enableInlineHunks for details)":"",ae=`${W.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,fe=ce=>{!J||kBe(U.hunk,{configuration:r.project.configuration,report:ce})};if(R.discardAndClose(),C){r.report.reportWarningOnce(66,ae,{reportExtra:fe});continue}else throw new zt(66,ae,fe)}R.saveAndClose()}return new zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ye();var _v=class{supportsDescriptor(e,r){return!!rF(e)}supportsLocator(e,r){return!!z0(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=Lv(e);return a.every(n=>!bG(n))?e:W.bindDescriptor(e,{locator:W.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=Lv(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=Lv(e),u=await Mv(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=QG(u,A.version);return[PG(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=Ov(e);return{...await r.resolver.resolve(o,r),...e}}};Ye();St();qt();var X0=class extends ut{constructor(){super(...arguments);this.save=ge.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=V.resolve(this.context.cwd,ue.toPortablePath(this.patchFolder)),u=V.join(n,"../source"),A=V.join(n,"../.yarn-patch.json");if(!oe.existsSync(u))throw new it("The argument folder didn't get created by 'yarn patch'");let p=await kG(u,n),h=await oe.readJsonPromise(A),E=W.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new it("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let I=r.get("patchFolder"),v=V.join(I,`${W.slugifyLocator(E)}.patch`);await oe.mkdirPromise(I,{recursive:!0}),await oe.writeFilePromise(v,p);let x=[],C=new Map;for(let R of o.storedPackages.values()){if(W.isVirtualLocator(R))continue;let L=R.dependencies.get(E.identHash);if(!L)continue;let U=W.ensureDevirtualizedDescriptor(L),J=SG(U),te=o.storedResolutions.get(J.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let fe=o.tryWorkspaceByLocator(R);if(fe)x.push(fe);else{let ce=o.originalPackages.get(R.locatorHash);if(!ce)throw new Error("Assertion failed: Expected the original package to have been registered");let me=ce.dependencies.get(L.identHash);if(!me)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(me.descriptorHash,me)}}for(let R of x)for(let L of Ot.hardDependencies){let U=R.manifest[L].get(E.identHash);if(!U)continue;let J=iF(U,{parentLocator:null,sourceDescriptor:W.convertLocatorToDescriptor(E),patchPaths:[V.join(dr.home,V.relative(o.cwd,v))]});R.manifest[L].set(U.identHash,J)}for(let R of C.values()){let L=iF(R,{parentLocator:null,sourceDescriptor:W.convertLocatorToDescriptor(E),patchPaths:[V.join(dr.home,V.relative(o.cwd,v))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:W.stringifyIdent(L),description:R.range}},reference:L.range})}await o.persist()}};X0.paths=[["patch-commit"]],X0.usage=nt.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "});Ye();St();qt();var Z0=class extends ut{constructor(){super(...arguments);this.update=ge.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let u=W.parseLocator(this.package);if(u.reference==="unknown"){let A=_e.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?_e.mapAndFilter.skip:W.isVirtualLocator(p)?_e.mapAndFilter.skip:z0(p)!==this.update?_e.mapAndFilter.skip:p);if(A.length===0)throw new it("No package found in the project for the given locator");if(A.length>1)throw new it(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): ${A.map(p=>` - ${W.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new it("No package found in the project for the given locator");await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=nF(u),h=await xG(u,{cache:n,project:o});A.reportJson({locator:W.stringifyLocator(p),path:ue.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${W.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${de.pretty(r,ue.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${de.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${ue.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};Z0.paths=[["patch"]],Z0.usage=nt.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "});var oDt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[X0,Z0],fetchers:[Uv],resolvers:[_v]},aDt=oDt;var NG={};Vt(NG,{PnpmLinker:()=>Hv,default:()=>fDt});Ye();St();qt();var Hv=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${de.pretty(r.project.configuration,`${r.project.cwd}/package.json`,de.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new it(`Couldn't find ${W.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${de.pretty(r.project.configuration,`${r.project.cwd}/package.json`,de.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=V.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new RG(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},RG=class{constructor(e){this.opts=e;this.asyncActions=new _e.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=SD(oe,{indexPath:V.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=V.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?V.join(a,dr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=lDt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,W.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await oe.mkdirPromise(n,{recursive:!0}),await oe.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=W.isVirtualLocator(e)?W.devirtualizeLocator(e):e,p={manifest:await Ot.tryFind(r.prefixPath,{baseFs:r.packageFs})??new Ot,misc:{hasBindingGyp:yA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=yA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!QBe(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${W.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;!a||this.asyncActions.reduce(e.locatorHash,async n=>{await oe.mkdirPromise(a,{recursive:!0});let u=await cDt(a),A=new Map(u),p=[n],h=(I,v)=>{let x=v;QBe(v,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=W.devirtualizeLocator(v));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${W.stringifyLocator(v)})`);let R=W.stringifyIdent(I),L=V.join(a,R),U=V.relative(V.dirname(L),C.packageLocation),J=A.get(R);A.delete(R),p.push(Promise.resolve().then(async()=>{if(J){if(J.isSymbolicLink()&&await oe.readlinkPromise(L)===U)return;await oe.removePromise(L)}await oe.mkdirpPromise(V.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await oe.symlinkPromise(C.packageLocation,L,"junction"):await oe.symlinkPromise(U,L)}))},E=!1;for(let[I,v]of r)I.identHash===e.identHash&&(E=!0),h(I,v);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(W.convertLocatorToDescriptor(e),e),p.push(uDt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=RBe(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await oe.removePromise(e);else{let r;try{r=new Set(await oe.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=V.contains(e,o);if(a===null)continue;let[n]=a.split(V.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await oe.removePromise(V.join(e,o))}))}return await this.asyncActions.wait(),await TG(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await TG(FBe(this.opts.project)),{customData:this.customData}}};function FBe(t){return V.join(t.cwd,dr.nodeModules)}function RBe(t){return V.join(FBe(t),".store")}function lDt(t,{project:e}){let r=W.slugifyLocator(t),o=RBe(e),a=V.join(o,r,"package"),n=V.join(o,r,dr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function QBe(t,{project:e}){return!W.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function cDt(t){let e=new Map,r=[];try{r=await oe.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await oe.readdirPromise(V.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function uDt(t,e){let r=[],o=new Set;for(let a of e.keys()){r.push(oe.removePromise(V.join(t,a)));let n=W.tryParseIdent(a)?.scope;n&&o.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...o].map(a=>TG(V.join(t,a)))))}async function TG(t){try{await oe.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var ADt={linkers:[Hv]},fDt=ADt;var qG={};Vt(qG,{StageCommand:()=>$0,default:()=>BDt,stageUtils:()=>oF});Ye();St();qt();Ye();St();var oF={};Vt(oF,{ActionType:()=>LG,checkConsensus:()=>sF,expandDirectory:()=>UG,findConsensus:()=>_G,findVcsRoot:()=>OG,genCommitMessage:()=>HG,getCommitPrefix:()=>TBe,isYarnFile:()=>MG});St();var LG=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(LG||{});async function OG(t,{marker:e}){do if(!oe.existsSync(V.join(t,e)))t=V.dirname(t);else return t;while(t!=="/");return null}function MG(t,{roots:e,names:r}){if(r.has(V.basename(t)))return!0;do if(!e.has(t))t=V.dirname(t);else return!0;while(t!=="/");return!1}function UG(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=oe.readdirSync(o);for(let n of a){let u=V.resolve(o,n);oe.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function sF(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function _G(t){let e=sF(t,/^(\w\(\w+\):\s*)?\w+s/),r=sF(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=sF(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function TBe(t){return t.useComponent?"chore(yarn): ":""}var pDt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function HG(t,e){let r=TBe(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=pDt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var hDt="Commit generated via `yarn stage`",gDt=11;async function NBe(t){let{code:e,stdout:r}=await Ur.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function dDt(t,e){let r=[],o=e.filter(h=>V.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let I=V.relative(t,E);if(h===4){let v=await NBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ot.fromText(x),R=await Ot.fromFile(E),L=new Map([...R.dependencies,...R.devDependencies]),U=new Map([...C.dependencies,...C.devDependencies]);for(let[J,te]of U){let ae=W.stringifyIdent(te),fe=L.get(J);fe?fe.range!==te.range&&r.push([4,`${ae} to ${fe.range}`]):r.push([3,ae])}for(let[J,te]of L)U.has(J)||r.push([2,W.stringifyIdent(te)])}else if(h===0){let v=await Ot.fromFile(E);v.name?r.push([0,W.stringifyIdent(v.name)]):r.push([0,"a package"])}else if(h===1){let v=await NBe(t),{stdout:x}=await Ur.execvp("git",["show",`${v}:${I}`],{cwd:t,strict:!0}),C=await Ot.fromText(x);C.name?r.push([1,W.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Ur.execvp("git",["log",`-${gDt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=_G(u);return HG(A,r)}var mDt={[0]:[" A ","?? "],[4]:[" M "],[1]:[" D "]},yDt={[0]:["A "],[4]:["M "],[1]:["D "]},LBe={async findRoot(t){return await OG(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Ur.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o?.staged?yDt:mDt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=V.resolve(t,p.slice(3));if(!o?.staged&&h==="?? "&&p.endsWith("/"))return UG(E).map(I=>({action:0,path:I}));{let v=[0,4,1].find(x=>u[x].includes(h));return v!==void 0?[{action:v,path:E}]:[]}})).filter(p=>MG(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await dDt(t,e)},async makeStage(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>ue.fromPortablePath(a.path));await Ur.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Ur.execvp("git",["commit","-m",`${r} ${hDt} `,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>ue.fromPortablePath(o.path));await Ur.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var EDt=[LBe],$0=class extends ut{constructor(){super(...arguments);this.commit=ge.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=ge.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=ge.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=ge.Boolean("-u,--update",!1,{hidden:!0})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o}=await Pt.find(r,this.context.cwd),{driver:a,root:n}=await CDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(I=>I.populateYarnPaths,o,I=>{u.push(I)});let A=new Set;for(let I of u)for(let v of wDt(n,I))A.add(v);let p=new Set([r.get("rcFilename"),dr.lockfile,dr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} `);else for(let I of h)this.context.stdout.write(`${ue.fromPortablePath(I.path)} `);else if(this.reset){let I=await a.filterChanges(n,A,p,{staged:!0});I.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,I)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};$0.paths=[["stage"]],$0.usage=nt.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]});async function CDt(t){let e=null,r=null;for(let o of EDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new it("No stage driver has been found for your current project");return{driver:e,root:r}}function wDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=oe.statSync(e)}catch{break}if(o.isSymbolicLink())e=V.resolve(V.dirname(e),oe.readlinkSync(e));else break}return r}var IDt={commands:[$0]},BDt=IDt;var jG={};Vt(jG,{default:()=>QDt});Ye();Ye();St();var UBe=$e(zn());Ye();var OBe=$e(zH()),vDt="e8e1bd300d860104bb8c58453ffa1eb4",DDt="OFCNCOG2CU",MBe=async(t,e)=>{let r=W.stringifyIdent(t),a=SDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},SDt=t=>(0,OBe.default)(DDt,vDt,{requester:{async send(r){try{let o=await nn.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var _Be=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,PDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??oe.existsSync(V.join(a.cwd,"tsconfig.json"))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new Qi};if(!await MBe(r,n))return;let E=_Be(r),I=W.parseRange(r.range).selector;if(!kr.validRange(I)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);I=W.parseRange(U[0].reference).selector}let v=UBe.default.coerce(I);if(v===null)return;let x=`${zc.Modifier.CARET}${v.major}`,C=W.makeDescriptor(W.makeIdent("types",E),x),R=_e.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,J=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&J!==r.descriptorHash)return _e.mapAndFind.skip;let te=[];for(let ae of Ot.allDependencies){let fe=L.manifest[ae].get(C.identHash);typeof fe>"u"||te.push([ae,fe])}return te.length===0?_e.mapAndFind.skip:te});if(typeof R<"u")for(let[L,U]of R)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[zc.Target.DEVELOPMENT].set(C.identHash,C)}},bDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??oe.existsSync(V.join(o.cwd,"tsconfig.json"))))return;let u=_Be(r),A=W.makeIdent("types",u);for(let p of Ot.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},xDt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},kDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:PDt,afterWorkspaceDependencyRemoval:bDt,beforeWorkspacePacking:xDt}},QDt=kDt;var VG={};Vt(VG,{VersionApplyCommand:()=>eg,VersionCheckCommand:()=>tg,VersionCommand:()=>rg,default:()=>zDt,versionUtils:()=>dw});Ye();Ye();qt();var dw={};Vt(dw,{Decision:()=>hw,applyPrerelease:()=>WBe,applyReleases:()=>KG,applyStrategy:()=>lF,clearVersionFiles:()=>GG,getUndecidedDependentWorkspaces:()=>jv,getUndecidedWorkspaces:()=>aF,openVersionFile:()=>gw,requireMoreDecisions:()=>KDt,resolveVersionFiles:()=>qv,suggestStrategy:()=>WG,updateVersionFiles:()=>YG,validateReleaseDecision:()=>pw});Ye();St();Nl();qt();var YBe=$e(GBe()),vA=$e(zn()),WDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,hw=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(hw||{});function pw(t){let e=vA.default.valid(t);return e||_e.validateEnum((0,YBe.default)(hw,"UNDECIDED"),t)}async function qv(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return r;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let I=W.parseIdent(h),v=t.tryWorkspaceByIdent(I);if(v===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${V.basename(u)} references ${h})`);if(v.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${W.prettyLocator(t.configuration,v.anchoredLocator)})`);let x=v.manifest.raw.stableVersion??v.manifest.version,C=r.get(v),R=lF(x,pw(E));if(R===null)throw new Error(`Assertion failed: Expected ${x} to support being bumped via strategy ${E}`);let L=typeof C<"u"?vA.default.gt(R,C)?R:C:R;r.set(v,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,WBe(u,{current:n.manifest.version,prerelease:e})]))),r}async function GG(t){let e=t.configuration.get("deferredVersionFolder");!oe.existsSync(e)||await oe.removePromise(e)}async function YG(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!oe.existsSync(o))return;let a=await oe.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=V.join(o,n),A=await oe.readFilePromise(u,"utf8"),p=Ki(A),h=p?.releases;if(!!h){for(let E of Object.keys(h)){let I=W.parseIdent(E),v=t.tryWorkspaceByIdent(I);(v===null||r.has(v))&&delete p.releases[E]}Object.keys(p.releases).length>0?await oe.changeFilePromise(u,Ba(new Ba.PreserveOrdering(p))):await oe.unlinkPromise(u)}}}async function gw(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let o=await ra.fetchRoot(r.projectCwd),a=o!==null?await ra.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ra.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(x=>V.contains(u,x)!==null);if(A.length>1)throw new it(`Your current branch contains multiple versioning files; this isn't supported: - ${A.map(x=>ue.fromPortablePath(x)).join(` - `)}`);let p=new Set(_e.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?_e.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:V.join(u,`${wn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=oe.existsSync(h)?await oe.readFilePromise(h,"utf8"):"{}",I=Ki(E),v=new Map;for(let x of I.declined||[]){let C=W.parseIdent(x),R=t.getWorkspaceByIdent(C);v.set(R,"decline")}for(let[x,C]of Object.entries(I.releases||{})){let R=W.parseIdent(x),L=t.getWorkspaceByIdent(R);v.set(L,pw(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:v,async saveAll(){let x={},C=[],R=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=W.stringifyIdent(L.anchoredLocator),J=v.get(L);J==="decline"?C.push(U):typeof J<"u"?x[U]=pw(J):p.has(L)&&R.push(U)}await oe.mkdirPromise(V.dirname(h),{recursive:!0}),await oe.changeFilePromise(h,Ba(new Ba.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:R.length>0?R:void 0})))}}}function KDt(t){return aF(t).size>0||jv(t).length>0}function aF(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function jv(t,{include:e=new Set}={}){let r=[],o=new Map(_e.mapAndFilter([...t.releases],([n,u])=>u==="decline"?_e.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(_e.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?_e.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of Ot.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function WG(t,e){let r=vA.default.clean(e);for(let o of Object.values(hw))if(o!=="undecided"&&o!=="decline"&&vA.default.inc(t,o)===r)return o;return null}function lF(t,e){if(vA.default.valid(e))return e;if(t===null)throw new it(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!vA.default.valid(t))throw new it(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=vA.default.inc(t,e);if(r===null)throw new it(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function KG(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of Ot.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;_e.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,vA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?W.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${W.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:ue.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,I]of p){let v=h.manifest[E].get(I);if(typeof v>"u")throw new Error("Assertion failed: The dependency should have existed");let x=v.range,C=!1;if(x.startsWith(Xn.protocol)&&(x=x.slice(Xn.protocol.length),C=!0,x===a.relativeCwd))continue;let R=x.match(WDt);if(!R){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${W.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${R[1]}${n}`;C&&(L=`${Xn.protocol}${L}`);let U=W.makeDescriptor(v,L);h.manifest[E].set(I,U)}}}var VDt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function WBe(t,{current:e,prerelease:r}){let o=new vA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=VDt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var eg=class extends ut{constructor(){super(...arguments);this.all=ge.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=ge.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=ge.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=ge.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);if(!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await qv(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let I=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let v of I){let x=h.get(v);typeof x<"u"&&E.set(v,x)}}if(E.size===0){let I=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${I}`);return}KG(o,E,{report:A}),this.dryRun||(p||(this.all?await GG(o):await YG(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};eg.paths=[["version","apply"]],eg.usage=nt.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` This command will apply the deferred version changes and remove their definitions from the repository. Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%d\`) will be used on all new versions and the version definitions will be kept as-is. By default only the current workspace will be bumped, but you can configure this behavior by using one of: - \`--recursive\` to also apply the version bump on its dependencies - \`--all\` to apply the version bump on all packages in the repository Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]});Ye();St();qt();var cF=$e(zn());var tg=class extends ut{constructor(){super(...arguments);this.interactive=ge.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){bC(this.context);let{Gem:r}=await Promise.resolve().then(()=>(cQ(),Bq)),{ScrollableItems:o}=await Promise.resolve().then(()=>(pQ(),fQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(Dq(),Vwe)),{useListInput:n}=await Promise.resolve().then(()=>(AQ(),Jwe)),{renderForm:u}=await Promise.resolve().then(()=>(mQ(),dQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>$e(ic())),{default:h,useCallback:E,useState:I}=await Promise.resolve().then(()=>$e(on())),v=await Ke.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Pt.find(v,this.context.cwd);if(!C)throw new rr(x.cwd,this.context.cwd);await x.restoreInstallState();let R=await gw(x);if(R===null||R.releaseRoots.size===0)return 0;if(R.root===null)throw new it("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),U=({workspace:me,active:he,decision:Be,setDecision:we})=>{let g=me.manifest.raw.stableVersion??me.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${W.prettyLocator(v,me.anchoredLocator)})`);if(cF.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let Ee=["undecided","decline","patch","minor","major"];n(Be,Ee,{active:he,minus:"left",plus:"right",set:we});let Se=Be==="undecided"?h.createElement(p,{color:"yellow"},g):Be==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},cF.default.valid(Be)?Be:cF.default.inc(g,Be)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,W.prettyLocator(v,me.anchoredLocator)," - ",Se)),h.createElement(A,null,Ee.map(le=>h.createElement(A,{key:le,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:le===Be})," ",le)))))},J=me=>{let he=new Set(R.releaseRoots),Be=new Map([...me].filter(([we])=>he.has(we)));for(;;){let we=jv({project:R.project,releases:Be}),g=!1;if(we.length>0){for(let[Ee]of we)if(!he.has(Ee)){he.add(Ee),g=!0;let Se=me.get(Ee);typeof Se<"u"&&Be.set(Ee,Se)}}if(!g)break}return{relevantWorkspaces:he,relevantReleases:Be}},te=()=>{let[me,he]=I(()=>new Map(R.releases)),Be=E((we,g)=>{let Ee=new Map(me);g!=="undecided"?Ee.set(we,g):Ee.delete(we);let{relevantReleases:Se}=J(Ee);he(Se)},[me,he]);return[me,Be]},ae=({workspaces:me,releases:he})=>{let Be=[];Be.push(`${me.size} total`);let we=0,g=0;for(let Ee of me){let Se=he.get(Ee);typeof Se>"u"?g+=1:Se!=="decline"&&(we+=1)}return Be.push(`${we} release${we===1?"":"s"}`),Be.push(`${g} remaining`),h.createElement(p,{color:"yellow"},Be.join(", "))},ce=await u(({useSubmit:me})=>{let[he,Be]=te();me(he);let{relevantWorkspaces:we}=J(he),g=new Set([...we].filter(ne=>!R.releaseRoots.has(ne))),[Ee,Se]=I(0),le=E(ne=>{switch(ne){case a.BEFORE:Se(Ee-1);break;case a.AFTER:Se(Ee+1);break}},[Ee,Se]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...R.changedFiles].map(ne=>h.createElement(A,{key:ne},h.createElement(p,null,h.createElement(p,{color:"grey"},ue.fromPortablePath(R.root)),ue.sep,ue.relative(ue.fromPortablePath(R.root),ue.fromPortablePath(ne)))))),R.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:R.releaseRoots,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:Ee%2===0,radius:1,size:2,onFocusRequest:le},[...R.releaseRoots].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:he.get(ne)||"undecided",setDecision:ee=>Be(ne,ee)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(ae,{workspaces:g,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:Ee%2===1,radius:2,size:2,onFocusRequest:le},[...g].map(ne=>h.createElement(U,{key:ne.cwd,workspace:ne,decision:he.get(ne)||"undecided",setDecision:ee=>Be(ne,ee)}))))):null)},{versionFile:R},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ce>"u")return 1;R.releases.clear();for(let[me,he]of ce)R.releases.set(me,he);await R.saveAll()}async executeStandard(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await gw(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new it("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${de.pretty(r,A.baseHash.slice(0,7),"yellow")} ${de.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let v of A.changedFiles)u.reportInfo(null,`${de.pretty(r,ue.fromPortablePath(A.root),"gray")}${ue.sep}${ue.relative(ue.fromPortablePath(A.root),ue.fromPortablePath(v))}`)}let p=!1,h=!1,E=aF(A);if(E.size>0){p||u.reportSeparator();for(let v of E)u.reportError(0,`${W.prettyLocator(r,v.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let I=jv(A);for(let[v,x]of I)h||u.reportSeparator(),u.reportError(0,`${W.prettyLocator(r,v.anchoredLocator)} doesn't have a release strategy attached, but depends on ${W.prettyWorkspace(r,x)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};tg.paths=[["version","check"]],tg.usage=nt.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]});Ye();qt();var uF=$e(zn());var rg=class extends ut{constructor(){super(...arguments);this.deferred=ge.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=ge.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=ge.String()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!a)throw new rr(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=uF.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=WG(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new it("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!uF.default.valid(E))throw new it(`Can't bump the version (${E}) if it's not valid semver`)}p=pw(this.strategy)}if(!n){let I=(await qv(o)).get(a);if(typeof I<"u"&&p!=="decline"){let v=lF(a.manifest.version,p);if(uF.default.lt(v,I))throw new it(`Can't bump the version to one that would be lower than the current deferred one (${I})`)}}let h=await gw(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};rg.paths=[["version"]],rg.usage=nt.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]});var JDt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[eg,tg,rg]},zDt=JDt;var JG={};Vt(JG,{WorkspacesFocusCommand:()=>ng,WorkspacesForeachCommand:()=>ap,default:()=>$Dt});Ye();Ye();qt();var ng=class extends ut{constructor(){super(...arguments);this.json=ge.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=ge.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=ge.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=ge.Rest()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd),n=await Lr.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new rr(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(A=>o.getWorkspaceByIdent(W.parseIdent(A))));for(let A of u)for(let p of this.production?["dependencies"]:Ot.hardDependencies)for(let h of A.manifest.getForScope(p).values()){let E=o.tryWorkspaceByDescriptor(h);E!==null&&u.add(E)}for(let A of o.workspaces)u.has(A)?this.production&&A.manifest.devDependencies.clear():(A.manifest.installConfig=A.manifest.installConfig||{},A.manifest.installConfig.selfReferences=!1,A.manifest.dependencies.clear(),A.manifest.devDependencies.clear(),A.manifest.peerDependencies.clear(),A.manifest.scripts.clear());return await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};ng.paths=[["workspaces","focus"]],ng.usage=nt.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "});Ye();Ye();Ye();qt();var mw=$e(Zo()),VBe=$e(id());Za();var ap=class extends ut{constructor(){super(...arguments);this.from=ge.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=ge.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=ge.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=ge.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=ge.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=ge.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=ge.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=ge.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:TT([Ks(["unlimited"]),aI(RT(),[LT(),NT(1)])])});this.topological=ge.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=ge.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=ge.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=ge.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=ge.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=ge.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=ge.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=ge.String();this.args=ge.Proxy()}async execute(){let r=await Ke.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Pt.find(r,this.context.cwd);if(!this.all&&!a)throw new rr(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new it("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=we=>{!this.dryRun||this.context.stdout.write(`${we} `)},p=()=>{let we=this.from.map(g=>mw.default.matcher(g));return o.workspaces.filter(g=>{let Ee=W.stringifyIdent(g.anchoredLocator),Se=g.relativeCwd;return we.some(le=>le(Ee)||le(Se))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ra.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let we of h)A(` - ${we.relativeCwd} ${W.prettyLocator(r,we.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(we=>[...we.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(we=>[...we.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(we=>[...we.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let we of E)A(` - ${we.relativeCwd} ${W.prettyLocator(r,we.anchoredLocator)}`);let I=[],v=!1;if(u?.includes(":")){for(let we of o.workspaces)if(we.manifest.scripts.has(u)&&(v=!v,v===!1))break}for(let we of h){if(u&&!we.manifest.scripts.has(u)&&!v&&!(await un.getWorkspaceAccessibleBinaries(we)).has(u)){A(`Excluding ${we.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&we.cwd===a.cwd)){if(this.include.length>0&&!mw.default.isMatch(W.stringifyIdent(we.anchoredLocator),this.include)&&!mw.default.isMatch(we.relativeCwd,this.include)){A(`Excluding ${we.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(mw.default.isMatch(W.stringifyIdent(we.anchoredLocator),this.exclude)||mw.default.isMatch(we.relativeCwd,this.exclude))){A(`Excluding ${we.relativeCwd} because it matches the --include filter`);continue}if(this.publicOnly&&we.manifest.private===!0){A(`Excluding ${we.relativeCwd} because it's a private workspace and --no-private was set`);continue}I.push(we)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,R=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Ji.availableParallelism()/2):1,U=L===1?!1:this.parallel,J=U?this.interlaced:!0,te=(0,VBe.default)(L),ae=new Map,fe=new Set,ce=0,me=null,he=!1,Be=await Nt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async we=>{let g=async(Ee,{commandIndex:Se})=>{if(he)return-1;!U&&R&&Se>1&&we.reportSeparator();let le=XDt(Ee,{configuration:r,label:C,commandIndex:Se}),[ne,ee]=KBe(we,{prefix:le,interlaced:J}),[Ie,Fe]=KBe(we,{prefix:le,interlaced:J});try{R&&we.reportInfo(null,`${le?`${le} `:""}Process started`);let At=Date.now(),H=await this.cli.run([this.commandName,...this.args],{cwd:Ee.cwd,stdout:ne,stderr:Ie})||0;ne.end(),Ie.end(),await ee,await Fe;let at=Date.now();if(R){let Re=r.get("enableTimers")?`, completed in ${de.pretty(r,at-At,de.Type.DURATION)}`:"";we.reportInfo(null,`${le?`${le} `:""}Process exited (exit code ${H})${Re}`)}return H===130&&(he=!0,me=H),H}catch(At){throw ne.end(),Ie.end(),await ee,await Fe,At}};for(let Ee of I)ae.set(Ee.anchoredLocator.locatorHash,Ee);for(;ae.size>0&&!we.hasErrors();){let Ee=[];for(let[ne,ee]of ae){if(fe.has(ee.anchoredDescriptor.descriptorHash))continue;let Ie=!0;if(this.topological||this.topologicalDev){let Fe=this.topologicalDev?new Map([...ee.manifest.dependencies,...ee.manifest.devDependencies]):ee.manifest.dependencies;for(let At of Fe.values()){let H=o.tryWorkspaceByDescriptor(At);if(Ie=H===null||!ae.has(H.anchoredLocator.locatorHash),!Ie)break}}if(!!Ie&&(fe.add(ee.anchoredDescriptor.descriptorHash),Ee.push(te(async()=>{let Fe=await g(ee,{commandIndex:++ce});return ae.delete(ne),fe.delete(ee.anchoredDescriptor.descriptorHash),Fe})),!U))break}if(Ee.length===0){let ne=Array.from(ae.values()).map(ee=>W.prettyLocator(r,ee.anchoredLocator)).join(", ");we.reportError(3,`Dependency cycle detected (${ne})`);return}let le=(await Promise.all(Ee)).find(ne=>ne!==0);me===null&&(me=typeof le<"u"?1:me),(this.topological||this.topologicalDev)&&typeof le<"u"&&we.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return me!==null?me:Be.exitCode()}};ap.paths=[["workspaces","foreach"]],ap.usage=nt.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]}),ap.schema=[cI("all",Gu.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),OT(["all","recursive","since","worktree"],{missingIf:"undefined"})];function KBe(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new _e.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new _e.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function XDt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${W.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return de.pretty(e,n,A)}var ZDt={commands:[ng,ap]},$Dt=ZDt;var pC=()=>({modules:new Map([["@yarnpkg/cli",a2],["@yarnpkg/core",o2],["@yarnpkg/fslib",Vw],["@yarnpkg/libzip",x1],["@yarnpkg/parsers",rI],["@yarnpkg/shell",T1],["clipanion",hI],["semver",eSt],["typanion",Vo],["@yarnpkg/plugin-essentials",$8],["@yarnpkg/plugin-compat",iH],["@yarnpkg/plugin-constraints",wH],["@yarnpkg/plugin-dlx",IH],["@yarnpkg/plugin-exec",DH],["@yarnpkg/plugin-file",PH],["@yarnpkg/plugin-git",Z8],["@yarnpkg/plugin-github",kH],["@yarnpkg/plugin-http",QH],["@yarnpkg/plugin-init",FH],["@yarnpkg/plugin-interactive-tools",Tq],["@yarnpkg/plugin-link",Nq],["@yarnpkg/plugin-nm",yj],["@yarnpkg/plugin-npm",dG],["@yarnpkg/plugin-npm-cli",DG],["@yarnpkg/plugin-pack",AG],["@yarnpkg/plugin-patch",FG],["@yarnpkg/plugin-pnp",oj],["@yarnpkg/plugin-pnpm",NG],["@yarnpkg/plugin-stage",qG],["@yarnpkg/plugin-typescript",jG],["@yarnpkg/plugin-version",VG],["@yarnpkg/plugin-workspace-tools",JG]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function XBe({cwd:t,pluginConfiguration:e}){let r=new as({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:rn??""});return Object.assign(r,{defaultContext:{...as.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function tSt(t){if(_e.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,o=">=18.12.0";if(kr.satisfiesWithPrereleases(r,o))return!0;let a=new it(`This tool requires a Node version compatible with ${o} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return as.defaultContext.stdout.write(t.error(a)),!1}async function ZBe({selfPath:t,pluginConfiguration:e}){return await Ke.find(ue.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function rSt(t,e,{yarnPath:r}){if(!oe.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let o={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,JBe.execFileSync)(process.execPath,[ue.fromPortablePath(r),...e],o)}catch(a){return a.status??1}return 0}function nSt(t,e){let r=null,o=e;return e.length>=2&&e[0]==="--cwd"?(r=ue.toPortablePath(e[1]),o=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=ue.toPortablePath(e[0].slice(6)),o=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=ue.toPortablePath(e[e.length-1]),o=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?V.resolve(r):V.cwd(),o}function iSt(t,{configuration:e}){if(!e.get("enableTelemetry")||zBe.isCI||!process.stdout.isTTY)return;Ke.telemetry=new uC(e,"puba9cdc10ec5790a2cf4969dd413a47270");let o=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())AC.has(a.match(o)?.[1]??"")&&Ke.telemetry?.reportPluginName(a);t.binaryVersion&&Ke.telemetry.reportVersion(t.binaryVersion)}function $Be(t,{configuration:e}){for(let r of e.plugins.values())for(let o of r.commands||[])t.register(o)}async function sSt(t,e,{selfPath:r,pluginConfiguration:o}){if(!tSt(t))return 1;let a=await ZBe({selfPath:r,pluginConfiguration:o}),n=a.get("yarnPath"),u=a.get("ignorePath");if(n&&!u)return rSt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let A=nSt(t,e);iSt(t,{configuration:a}),$Be(t,{configuration:a});let p=t.process(A,t.defaultContext);return p.help||Ke.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function $pe({cwd:t=V.cwd(),pluginConfiguration:e=pC()}={}){let r=XBe({cwd:t,pluginConfiguration:e}),o=await ZBe({pluginConfiguration:e,selfPath:null});return $Be(r,{configuration:o}),r}async function nk(t,{cwd:e=V.cwd(),selfPath:r,pluginConfiguration:o}){let a=XBe({cwd:e,pluginConfiguration:o});try{process.exitCode=await sSt(a,t,{selfPath:r,pluginConfiguration:o})}catch(n){as.defaultContext.stdout.write(a.error(n)),process.exitCode=1}finally{await oe.rmtempPromise()}}nk(process.argv.slice(2),{cwd:V.cwd(),selfPath:ue.toPortablePath(ue.resolve(process.argv[1])),pluginConfiguration:pC()});})(); /* object-assign (c) Sindre Sorhus @license MIT */ /*! * buildToken * Builds OAuth token prefix (helper function) * * @name buildToken * @function * @param {GitUrl} obj The parsed Git url object. * @return {String} token prefix */ /*! * fill-range * * Copyright (c) 2014-present, Jon Schlinkert. * Licensed under the MIT License. */ /*! * is-extglob * * Copyright (c) 2014-2016, Jon Schlinkert. * Licensed under the MIT License. */ /*! * is-glob * * Copyright (c) 2014-2017, Jon Schlinkert. * Released under the MIT License. */ /*! * is-number * * Copyright (c) 2014-present, Jon Schlinkert. * Released under the MIT License. */ /*! * is-windows * * Copyright © 2015-2018, Jon Schlinkert. * Released under the MIT License. */ /*! * to-regex-range * * Copyright (c) 2015-present, Jon Schlinkert. * Released under the MIT License. */ /** @license Copyright (c) 2015, Rebecca Turner Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ /** @license Copyright Joyent, Inc. and other Node contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** @license Copyright Node.js contributors. All rights reserved. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** @license The MIT License (MIT) Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** @license React v0.18.0 * scheduler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /** @license React v0.24.0 * react-reconciler.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ /** @license React v16.13.1 * react.production.min.js * * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ ================================================ FILE: .yarn/versions/026177fe.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/028828e2.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/06e5749f.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/0726b528.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/072aebc8.yml ================================================ ================================================ FILE: .yarn/versions/07c322cc.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/09d6af27.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/0a9221c4.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/0aafb6de.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/105b2055.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/12875928.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/1366a905.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/13ce8bab.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/144b1230.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/15c76034.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/173dde9b.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/1a44c65b.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/1aa27f56.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/1ccf07c6.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/1df68f61.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/1fad65fc.yml ================================================ ================================================ FILE: .yarn/versions/2199c3df.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/22e7ecc3.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/23758213.yml ================================================ ================================================ FILE: .yarn/versions/23da8025.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/24584391.yml ================================================ ================================================ FILE: .yarn/versions/25f00f22.yml ================================================ ================================================ FILE: .yarn/versions/272ca396.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/29fe0987.yml ================================================ ================================================ FILE: .yarn/versions/2a247815.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/2a5c447d.yml ================================================ ================================================ FILE: .yarn/versions/2a69f5af.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/2ceb5677.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" ================================================ FILE: .yarn/versions/2e8dddaa.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/329ad4cc.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/33308e54.yml ================================================ ================================================ FILE: .yarn/versions/33caf697.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/371922cb.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/3777636b.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/389436a2.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/3a3f723c.yml ================================================ ================================================ FILE: .yarn/versions/3b579a11.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/3bb83c60.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/3bff13d2.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/3cb89724.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/3ead9d18.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/4053ebae.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/411f782e.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/42b588ef.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/44068586.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/46f8ffda.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/basic-example" ================================================ FILE: .yarn/versions/47346a15.yml ================================================ ================================================ FILE: .yarn/versions/4c1ff198.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/4c9680f4.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/4e3bceb6.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/4f99b94c.yml ================================================ ================================================ FILE: .yarn/versions/515392f0.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/51d09e1d.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/51fd1e43.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/56419efb.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/57f03ec9.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/5a2242bb.yml ================================================ ================================================ FILE: .yarn/versions/5bc0e0a1.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/5d063d27.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/5e0d43a5.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/6157a043.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/61b56588.yml ================================================ ================================================ FILE: .yarn/versions/62c5b924.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/63370d4e.yml ================================================ ================================================ FILE: .yarn/versions/6629957d.yml ================================================ ================================================ FILE: .yarn/versions/66376ce5.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/6bc94a3b.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/6f725cb4.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/6fbd3750.yml ================================================ ================================================ FILE: .yarn/versions/6ff24e83.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/72b07268.yml ================================================ ================================================ FILE: .yarn/versions/72ea0816.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/735cc783.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/73f711f2.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/760e996e.yml ================================================ ================================================ FILE: .yarn/versions/77fd690d.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/7802d627.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/78525628.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/7970dbd4.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/7a76f789.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/7a985e40.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" - "@builder.io/eslint-plugin-mitosis" - "@builder.io/mitosis-fiddle" ================================================ FILE: .yarn/versions/804757be.yml ================================================ undecided: - "@builder.io/mitosis-repo" ================================================ FILE: .yarn/versions/81d9e719.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/85f914ea.yml ================================================ ================================================ FILE: .yarn/versions/88302145.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/89184b6e.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/8afacd42.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/9288f7b9.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/92f5ae87.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/94fb767f.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/9513e6ed.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/9a0abe50.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/a26ef46f.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/a727eb3e.yml ================================================ ================================================ FILE: .yarn/versions/a7426113.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/a7d5432d.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/ab01aaa4.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/ac5e5b17.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/aee7c6a5.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/afee0844.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/b2276c4b.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/b2be75f1.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/b918a4e2.yml ================================================ ================================================ FILE: .yarn/versions/b9512246.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/bf62388f.yml ================================================ ================================================ FILE: .yarn/versions/bf6edf5d.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c0b2fa52.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c1093761.yml ================================================ ================================================ FILE: .yarn/versions/c143ff23.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c21adc6a.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c281843c.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c2d75ce2.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c4fd8fbc.yml ================================================ ================================================ FILE: .yarn/versions/c62b27f7.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c6e4f64b.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/todo-example" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/c7ca329d.yml ================================================ ================================================ FILE: .yarn/versions/c9e3ca8b.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/cb259f51.yml ================================================ ================================================ FILE: .yarn/versions/cc461ac8.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/cc9ed5cd.yml ================================================ ================================================ FILE: .yarn/versions/cf48d14d.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/cf4b5981.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/cf7ae630.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/d03a50ed.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/db85d6c2.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e0705211.yml ================================================ undecided: - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e0755694.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e11beb4b.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e3ecba3b.yml ================================================ undecided: - "@builder.io/mitosis-repo" ================================================ FILE: .yarn/versions/e4749842.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e5d3ce94.yml ================================================ undecided: - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e89e1791.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/e9ce1193.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/ec777010.yml ================================================ ================================================ FILE: .yarn/versions/ed8e0a45.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/edc58eba.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/ef410112.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/f1210054.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/f34f5b8e.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/f52489af.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/f75f1951.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/f8d96db9.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/fb17c565.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis-cli" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/fb202c06.yml ================================================ undecided: - "@builder.io/mitosis-repo" - "@builder.io/mitosis" ================================================ FILE: .yarn/versions/fb99b1b3.yml ================================================ ================================================ FILE: .yarnrc.yml ================================================ compressionLevel: mixed enableGlobalCache: true nmHoistingLimits: workspaces nodeLinker: node-modules yarnPath: .yarn/releases/yarn-4.1.1.cjs ================================================ FILE: CODEOWNERS ================================================ * @samijaber ================================================ FILE: CONTRIBUTING.md ================================================ # Local Development Welcome ⚡️!! If you've found a bug, or have an idea to add a feature we'd love to hear from you. It may save time to first ping the group on [Mitosis' Discord channel](https://discord.gg/yxjk5vn6pn) to talk through any ideas or any issues that may be a bug. ## Project Structure Mitosis is structured as a mono-repo using Yarn (v3) Workspaces and Nx. The packages live under `packages/` and `examples/`: - `core` (`@builder.io/mitosis`): contains the Mitosis engine - `cli` (`@builder.io/mitosis-cli`): contains the Mitosis CLI, and _depends_ on `core` - `site`: contains the Mitosis site hosted at mitosis.builder.io - `eslint-plugin` (`@builder.io/eslint-plugin-mitosis`): contains the Mitosis eslint rules to enforce valid Mitosis component syntax. Yet to be released. ## Installation First, you should run `yarn` in the root of the project to install all the dependencies. For all packages, the below steps to develop locally are the same: ```bash # run local development server yarn start # run unit tests yarn test ``` ## Submitting Issues And Writing Tests We need your help! If you found a bug, it's best to [create an issue](https://github.com/BuilderIO/mitosis/issues/new/choose) and follow the template we've created for you. Afterwards, create a [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) that replicates the issue using a test. ## Developing for Core & Testing In `core`, we use vitest snapshots & integration tests for test coverage. If you are solving a problem that is reproducible by a fiddle in [mitosis.builder.io/playground](/playground), we highly recommend the following flow: ### Snapshot test - copy your fiddle component into a file in `packages/core/src/__tests__/data`. See [packages/core/src/**tests**/data/basic.raw.tsx](/packages/core/src/__tests__/data/basic.raw.tsx) as an example. - add that test to the [test generator](/packages/core/src/__tests__/test-generator.ts), most likely in `BASIC_TESTS`. - run `yarn g:nx test:watch` in the `packages/core` directory to run the snapshot tests in watch mode PS: don't worry about failing imports in the raw test TSX files. These are not an issue, since the files are standalone and don't actually belong to a cohesive project. ### Integration test - copy your fiddle component into a `.lite.tsx` Mitosis component in the [e2e app](/e2e/e2e-app/src/components) - name your file the same as your component to resolve it for Angular - add your component to the [e2e-app component paths](/e2e/e2e-app/src/component-paths.ts) - add your component to the [homepage](/e2e/e2e-app/src/homepage.lite.tsx) with a `` - add an integration test in [e2e/e2e-app/tests](/e2e/e2e-app/tests) that makes sure your component works as expected - this integration test will run against every server that exists in [e2e/](/e2e/). - run `yarn ci:build` to build all packages - run `yarn ci:e2e` to run the integration tests against all servers #### Create new e2e project for another target If you want to create a new project inside `e2e`. You should name the folder `e2e-XXX` where `XXX` should be replaced with the target. Make sure that you change the `name` inside `package.json` of this project to `@builder.io/e2e-XXX`. Additionally, you need to add `private: true` to `package.json` to avoid publishing the project. ### Test your changes From there, you can keep iterating until the snapshots look as expected, and the integration tests pass! ### Preparing your PR Before submitting your PR, please make sure to format the codebase and update all snapshots: - format the codebase: from the root, run `yarn fmt:prettier`. - update all snapshots (in core & CLI): from the root, run `yarn test:update`. This will run a Nx command that will update all the snapshots in the `core` and `cli` packages. while making sure all required dependencies are built beforehand. If there are some difference between the generated snapshots in your local environment and GitHub Action you are able to download the correct snapshots via 'Summary' in the pipeline run. Wait until the job `test-update` is done, scroll to the bottom and download `snapshots-updates`. You should be able to copy&past the snapshots to `packages/core/src/__tests__/__snapshots__`. - add Changeset entry: from the root, run `yarn g:changeset` and follow the CLI instructions. #### Changeset format Here's the changeset format we like to follow (this is mostly relvant for the core package): ``` [GENERATORS_IMPACTED] TYPE: DESCRIPTION ``` Examples: ``` [React,Vue,Solid] Bug: Fix style bindings not applying. [Angular] Feature: Add support for ngFor bindings. [All] Feature: store state types. ``` ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2020 Builder.io, Inc Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: README.MD ================================================

Mitosis logo

Write components once, compile to every framework


code style: prettier PRs Welcome License Types

## Overview [Mitosis](https://mitosis.builder.io/docs/overview/) provides a unified development experience across all frameworks, enabling you to build components in a single codebase and compile them to React, Vue, Angular, Svelte, Solid, Alpine, Qwik, and more. Using Mitosis, you can: - Maintain a consistent design system across multiple frameworks ([example](https://github.com/db-ux-design-system/core-web)) - Sync your [design systems from Figma to code](https://mitosis.builder.io/docs/figma/) and publish them to npm across frameworks - Avoid the [pitfalls of web components](https://mitosis.builder.io/docs/overview/) by compiling to native framework code _PS: We are actively looking for folks interested in becoming contributors to Mitosis. If interested, look at our list of [good first issues](https://github.com/BuilderIO/mitosis/contribute) or reach out on our [Discord](https://discord.gg/yxjk5vn6pn)_ ![Gif example of devloping with Mitosis](https://cdn.builder.io/api/v1/file/assets%2FYJIGb4i01jvw0SRdL5Bt%2F868af1e6d9fd4923b18ecd1d892f3a6e) ## Quickstart To create a new Mitosis project from scratch, run the following `create` command: ```bash npm create @builder.io/mitosis@latest ``` Once completed, make sure to read the `README.md` generated in your new project. It will explain the structure of your project, and provide a walkthrough on how to build/test your components. Read the full [getting started docs](https://mitosis.builder.io/docs/quickstart/) for more. ### Integration with Figma To make generating Mitosis components easier, as well as to keep your design system in code in sync with your design system in Figma, Mitosis integrates with Figma. Learn more about our [Figma integration](https://mitosis.builder.io/docs/figma). ![Demo of using Mitosis with Figma](https://cdn.builder.io/api/v1/file/assets%2FYJIGb4i01jvw0SRdL5Bt%2Fde65b7d174354c0baf189ee4e652a31b) ## Resources - [Documentation](https://mitosis.builder.io/docs) - [Playground](https://mitosis.builder.io/playground) - [Figma integration](https://mitosis.builder.io/docs/figma/) - [Mitosis Discord](https://discord.gg/yxjk5vn6pn) ## Contribute Interested in contribute? Head over to the [CONTRIBUTING](CONTRIBUTING.md) docs and see how you can get setup & started! Once you're ready, checkout our [issues](https://github.com/BuilderIO/mitosis/contribute) page and grab your first issue!

Made with love by Builder.io

================================================ FILE: developer/generators.md ================================================ # Generators Want to contribute a new generator? Take a look at this Loom where we add the Stencil generator in about 40mins! https://www.loom.com/share/3e8bf7e667314a829a0b5d4b61c58cc0 Generators are made up of 2 main functions: `componentTo` and `blockTo`, where `` is the target framework. ## `componentTo` is responsible for converting an entire JSON mitosis component to a component in the target framework (as a string) These are the main operations in order: - `preJsonPlugins`: stuff that runs before we do anything - Everything we need: like `getProps` will always be here. (What else?) - `postJsonPlugins`: stuff that runs after we’ve done the manipulations that we need, or grabbed the data from the component - Create the initial string for the component - `PreCodePlugins`: options.plugins pre - Formatting with prettier - `PostCodePlugins`: options.plugins post **ORDER matters**: Functions that grab `json` or `component` often mutate it, causing side effects. General structure of a generator: Visually, it looks exactly like a component of the target framework. Each part (imports, name, styles, render body, lifecycle methods) is injected using the Mitosis JSON data, such that it is valid code for that framework. ## `blockTo` This is code that handles each individual DOM node within the overall component. Compile-away-components: Show, For, etc. - These are special Mitosis components that are replaced with the appropriate target-specific logic at compile-time ### Helpers #### Styling **collectClassString** Grabs all the styles and figures out what class-names to provide to the component **collectCss** Grabs all the `css=` data into a style object and removes it (SIDE EFFECT) from the mitosis JSON #### State **getStateObjectFromString** Grabs all state data and formats it appropriately for the target framework ================================================ FILE: docs/README.md ================================================ Docs have moved to [mitosis.builder.io](https://mitosis.builder.io/docs) ================================================ FILE: docs/cli.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/cli/) ================================================ FILE: docs/components.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/components/) ================================================ FILE: docs/configuration.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/configuration/) ================================================ FILE: docs/context.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/context/) ================================================ FILE: docs/customizability.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/customization/) ================================================ FILE: docs/feature-matrix-draft.md ================================================ ## Feature matrix Symbols: - ✅ implemented - 🏗 in-progress/partially implemented - ❌ not implemented Current support: | **Scope** | React | | --------- | :---: | | _HTML_ | | JSX | | _CSS_ | | style() | | _JS_ | | State | ================================================ FILE: docs/gotchas.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/gotchas/) ================================================ FILE: docs/hooks.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/hooks/) ================================================ FILE: docs/project-structure.md ================================================ This doc has moved to [mitosis.builder.io](https://mitosis.builder.io/docs/project-structure/) ================================================ FILE: docs/test-status.md ================================================ ## E2E test status | Target | Single Component | Multiple Components | | ------- | ------------------ | ------------------- | | alpine | :white_check_mark: | :white_check_mark: | | angular | :white_check_mark: | :white_check_mark: | | qwik | :white_check_mark: | :white_check_mark: | | react | :white_check_mark: | :white_check_mark: | | solid | :white_check_mark: | :white_check_mark: | | svelte | :white_check_mark: | :white_check_mark: | | vue2 | :white_check_mark: | :white_check_mark: | | vue3 | :white_check_mark: | :white_check_mark: | _NOTE: this matrix is programmatically generated and should not be manually edited._ ================================================ FILE: e2e/e2e-alpine/README.md ================================================ # e2e-alpine ================================================ FILE: e2e/e2e-alpine/index.html ================================================ Alpine.js app
{{> homepage }}
================================================ FILE: e2e/e2e-alpine/package.json ================================================ { "name": "@builder.io/e2e-alpine", "private": true, "scripts": { "clean": "rimraf dist", "build": "yarn run check && vite build", "check": "echo 'TODO: Alpine.js check script.'", "dev": "vite", "serve": "vite preview" }, "dependencies": { "@builder.io/e2e-app": "workspace:*" }, "devDependencies": { "alpinejs": "^3.10.5", "rimraf": "^3.0.2", "vite": "^3.2.2", "vite-plugin-handlebars": "^1.6.0" } } ================================================ FILE: e2e/e2e-alpine/src/main.ts ================================================ import { E2eApp } from '@builder.io/e2e-app/alpine'; import Alpine from 'alpinejs'; window.Alpine = Alpine; console.log('hello', E2eApp); Alpine.data('e2e-app', E2eApp); document.getElementById('app')!.innerHTML = E2eApp; Alpine.start(); ================================================ FILE: e2e/e2e-alpine/vite.config.ts ================================================ import { resolve } from 'path'; import { defineConfig } from 'vite'; import handlebars from 'vite-plugin-handlebars'; const dir = resolve(__dirname, 'node_modules', '@builder.io', 'e2e-app', 'output', 'alpine', 'src'); // https://vitejs.dev/config/ export default defineConfig({ plugins: [ handlebars({ partialDirectory: dir, }), ], }); ================================================ FILE: e2e/e2e-angular/.browserslistrc ================================================ # This file is used by the build system to adjust CSS and JS output to support the specified browsers below. # For additional information regarding the format and rule options, please see: # https://github.com/browserslist/browserslist#queries # For the full list of supported browsers by the Angular framework, please see: # https://angular.io/guide/browser-support # You can see what browsers were selected by your queries by running: # npx browserslist last 1 Chrome version last 1 Firefox version last 2 Edge major versions last 2 Safari major versions last 2 iOS major versions Firefox ESR ================================================ FILE: e2e/e2e-angular/.gitignore ================================================ # See http://help.github.com/ignore-files/ for more about ignoring files. # Compiled output /dist /tmp /out-tsc /bazel-out # Node /node_modules npm-debug.log yarn-error.log # Miscellaneous /.angular/cache .sass-cache/ /connect.lock /coverage /libpeerconnection.log testem.log /typings # System files .DS_Store Thumbs.db # Mitosis input, copied in from elsewhere src # Mitosis output angular_src/app/lib # Output likely to come from future Mitosis mitosis-component-list.ts ================================================ FILE: e2e/e2e-angular/README.md ================================================ # E2E test harness for Angular To recompile and run just this set of E2E tests, you can run these commands at the project root: ```bash yarn workspace @builder.io/e2e-angular run build yarn workspace @builder.io/e2e-angular run e2e ``` ================================================ FILE: e2e/e2e-angular/angular.json ================================================ { "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "e2e-angular": { "projectType": "application", "schematics": {}, "root": "", "sourceRoot": "angular_src", "prefix": "app", "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/e2e-angular", "index": "angular_src/index.html", "main": "angular_src/main.ts", "polyfills": "angular_src/polyfills.ts", "tsConfig": "tsconfig.app.json", "assets": ["angular_src/favicon.ico", "angular_src/assets"], "styles": ["angular_src/styles.css"], "scripts": [] }, "configurations": { "production": { "budgets": [ { "type": "initial", "maximumWarning": "500kb", "maximumError": "1mb" }, { "type": "anyComponentStyle", "maximumWarning": "2kb", "maximumError": "4kb" } ], "fileReplacements": [ { "replace": "angular_src/environments/environment.ts", "with": "angular_src/environments/environment.prod.ts" } ], "outputHashing": "all" }, "development": { "buildOptimizer": false, "optimization": false, "vendorChunk": true, "extractLicenses": false, "sourceMap": true, "namedChunks": true } }, "defaultConfiguration": "production" }, "serve": { "builder": "@angular-devkit/build-angular:dev-server", "configurations": { "production": { "browserTarget": "e2e-angular:build:production" }, "development": { "browserTarget": "e2e-angular:build:development" } }, "defaultConfiguration": "development" }, "extract-i18n": { "builder": "@angular-devkit/build-angular:extract-i18n", "options": { "browserTarget": "e2e-angular:build" } } } } }, "cli": { "analytics": false } } ================================================ FILE: e2e/e2e-angular/angular_src/app/app.component.html ================================================ ================================================ FILE: e2e/e2e-angular/angular_src/app/app.component.ts ================================================ import { Component } from '@angular/core'; import { Homepage } from './src/homepage'; @Component({ selector: 'app-root', templateUrl: './app.component.html', standalone: true, imports: [Homepage], }) export class AppComponent { pathname = window.location.pathname; } ================================================ FILE: e2e/e2e-angular/angular_src/assets/.gitkeep ================================================ ================================================ FILE: e2e/e2e-angular/angular_src/environments/environment.prod.ts ================================================ export const environment = { production: true, }; ================================================ FILE: e2e/e2e-angular/angular_src/environments/environment.ts ================================================ // This file can be replaced during build by using the `fileReplacements` array. // `ng build` replaces `environment.ts` with `environment.prod.ts`. // The list of file replacements can be found in `angular.json`. export const environment = { production: false, }; /* * For easier debugging in development mode, you can import the following file * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. * * This import should be commented out in production mode because it will have a negative impact * on performance if an error is thrown. */ // import 'zone.js/plugins/zone-error'; // Included with Angular CLI. ================================================ FILE: e2e/e2e-angular/angular_src/index.html ================================================ E2eAngular ================================================ FILE: e2e/e2e-angular/angular_src/main.ts ================================================ import { enableProdMode } from '@angular/core'; import { bootstrapApplication } from '@angular/platform-browser'; import { AppComponent } from './app/app.component'; import { environment } from './environments/environment'; if (environment.production) { enableProdMode(); } bootstrapApplication(AppComponent).catch((err) => console.error(err)); ================================================ FILE: e2e/e2e-angular/angular_src/polyfills.ts ================================================ /*************************************************************************************************** * Zone JS is required by default for Angular itself. */ import 'zone.js'; // Included with Angular CLI. ================================================ FILE: e2e/e2e-angular/angular_src/styles.css ================================================ /* You can add global styles to this file, and also import other style files */ ================================================ FILE: e2e/e2e-angular/package.json ================================================ { "name": "@builder.io/e2e-angular", "scripts": { "build": "yarn run copy-build && ng build && cpy dist/e2e-angular/index.html . --rename=404.html", "clean": "rimraf src dist", "copy-build": "cpy ../e2e-app/output/angular/src angular_src/app", "ng": "ng", "serve": "http-server dist/e2e-angular", "start": "yarn run copy-build && ng serve", "watch": "yarn run copy-build && ng build --watch --configuration development" }, "private": true, "dependencies": { "@angular/animations": "^18.2.13", "@angular/common": "^18.2.13", "@angular/compiler": "^18.2.13", "@angular/core": "^18.2.13", "@angular/forms": "^18.2.13", "@angular/platform-browser": "^18.2.13", "@angular/platform-browser-dynamic": "^18.2.13", "@builder.io/e2e-app": "workspace:*", "@builder.io/mitosis-cli": "workspace:*", "http-server": "^14.1.1", "rxjs": "~7.8.2", "tslib": "^2.8.1", "zone.js": "~0.15.0" }, "devDependencies": { "@angular-devkit/build-angular": "^18.2.13", "@angular/cli": "~18.2.13", "@angular/compiler-cli": "^18.2.13", "cpy-cli": "5.0.0", "rimraf": "^3.0.2", "typescript": "5.4.5" } } ================================================ FILE: e2e/e2e-angular/tsconfig.app.json ================================================ /* To learn more about this file see: https://angular.io/config/tsconfig. */ { "extends": "./tsconfig.json", "compilerOptions": { "outDir": "./out-tsc/app", "types": [] }, "files": ["angular_src/main.ts", "angular_src/polyfills.ts"], "include": ["angular_src/**/*.d.ts"], "exclude": ["angular_src/**/global.d.ts"] } ================================================ FILE: e2e/e2e-angular/tsconfig.json ================================================ /* To learn more about this file see: https://angular.io/config/tsconfig. */ { "compileOnSave": false, "compilerOptions": { "baseUrl": "./", "outDir": "./dist/out-tsc", "forceConsistentCasingInFileNames": true, "strict": true, "strictPropertyInitialization": false, "noImplicitOverride": true, "noPropertyAccessFromIndexSignature": true, "noImplicitReturns": true, "noImplicitAny": false, "noFallthroughCasesInSwitch": true, "sourceMap": true, "declaration": false, "downlevelIteration": true, "strictNullChecks": false, "experimentalDecorators": true, "moduleResolution": "node", "importHelpers": true, "target": "es2020", "module": "es2020", "lib": ["es2020", "dom"] }, "angularCompilerOptions": { "enableI18nLegacyMessageIdFormat": false, "strictInjectionParameters": true, "strictInputAccessModifiers": true, "strictTemplates": true } } ================================================ FILE: e2e/e2e-app/.gitignore ================================================ playwright-results.json e2e-test-status.* output/**/src output/stencil/components.d.ts ================================================ FILE: e2e/e2e-app/README.md ================================================ # E2E App and Specification This package contains a set of Mitosis which form a small working application, and Playwright specs for that application. To the extent mitosis works correctly, the app will pass the same set of tests regardless of which target framework is used. ================================================ FILE: e2e/e2e-app/allow-failures.json ================================================ [{ "caseName": "02-two-components", "target": "e2e-qwik" }] ================================================ FILE: e2e/e2e-app/e2e-output.ts ================================================ import { readFile, writeFile } from 'fs/promises'; const prettier = require('prettier'); export interface Entry { caseName: string; target: string; ok: boolean; } const friendlyCaseNames: Record = { '01-one-component': 'Single Component', '02-two-components': 'Multiple Components', }; export async function emitTable(allResults: Entry[]) { const cols: string[] = []; const rows: string[] = []; const result: string[][] = []; const output: string[] = []; function axisIndex(arr: string[], value: string): number { let x = arr.indexOf(value); if (x < 0) { x = arr.push(value) - 1; } return x; } for (const e of allResults) { const col = axisIndex(cols, e.caseName); const row = axisIndex(rows, e.target); if (result.length <= row) result.push([]); const rowData = result[row]; while (rowData.length <= col) rowData.push(''); result[row][col] = e.ok ? ':white_check_mark:' : ':x:'; } output.push( 'Target | ' + cols.map((caseId) => friendlyCaseNames[caseId] || caseId.replace(/-/g, ' ')).join(' | '), ); output.push('-|-'.repeat(cols.length)); for (const index in rows) { const targetName = rows[index].replace('e2e-', ''); output.push(targetName + ' | ' + result[index].join(' | ')); } const formattedTable = prettier.format(output.join('\n'), { parser: 'markdown' }); await writeFile('./e2e-test-status.md', formattedTable, 'utf8'); // Write it in to the README const outputFile = '../../docs/test-status.md'; const currentReadme = await readFile(outputFile, 'utf-8'); const before = currentReadme.match(/.*## E2E test status/gms)![0]; const after = currentReadme.match(/## Contribute.*/gms)![0]; const newReadme = `${before} ${formattedTable} _NOTE: this matrix is programmatically generated and should not be manually edited._ ${after}`; await writeFile(outputFile, newReadme, 'utf-8'); // cut before/after the heading and next heading // write with this inserted // CI can look at whether this changed the README, and fail the PR if so. } // Useful to test this module alone: // emitTable([ // { caseName: '01-one-component', target: 'e2e-angular', ok: true }, // { caseName: '01-one-component', target: 'e2e-qwik', ok: true }, // { caseName: '01-one-component', target: 'e2e-react', ok: true }, // { caseName: '01-one-component', target: 'e2e-vue3', ok: true }, // { caseName: '02-two-components', target: 'e2e-angular', ok: true }, // { caseName: '02-two-components', target: 'e2e-qwik', ok: false }, // { caseName: '02-two-components', target: 'e2e-vue2', ok: true }, // { caseName: '02-two-components', target: 'e2e-vue3', ok: true }, // { caseName: '03-something', target: 'e2e-angular', ok: true }, // { caseName: '03-something', target: 'e2e-qwik', ok: false }, // { caseName: '03-something', target: 'e2e-vue3', ok: true }, // { caseName: '04-another-example', target: 'e2e-solid', ok: true }, // { caseName: '04-another-example', target: 'e2e-svelte', ok: true }, // ]); ================================================ FILE: e2e/e2e-app/e2e.ts ================================================ // Mitosis E2E orchestration script import { spawn } from 'child_process'; import { readFile, writeFile } from 'fs/promises'; import { resolve } from 'path'; import syncDirectory from 'sync-directory'; import { emitTable, Entry } from './e2e-output'; // Update this array when adding new cases. const cases = [ '01-one-component', '02-two-components', // '03-types' ]; // Update this array when Mitosis adds new targets const packages = [ '@builder.io/e2e-alpine', '@builder.io/e2e-app-qwik-output', '@builder.io/e2e-app-vue3-output', '@builder.io/e2e-angular', '@builder.io/e2e-qwik', '@builder.io/e2e-react', '@builder.io/e2e-solid', '@builder.io/e2e-svelte', '@builder.io/e2e-vue2', '@builder.io/e2e-vue3', ]; // To keep the E2E code minimal, the case and target names are currently treated // as string (untyped) data. Since only a (hopefully near 0) list of // allow-to-fail cases is stored, it seems a reasonable tradeoff. async function yarn(...args) { return new Promise((res, reject) => { let child = spawn('yarn', args, { cwd: resolve(__dirname, '../..'), shell: true, stdio: 'inherit', }); child.on('error', reject); child.on('exit', (code) => (code === 0 ? res(0) : reject(code))); }); } async function nxRunMany(target: string, projects: string[]) { return new Promise((res, reject) => { let child = spawn(`nx run-many --target ${target} --parallel 4 --projects ${projects.join()}`, { cwd: resolve(__dirname, '../..'), shell: true, stdio: 'inherit', }); child.on('error', reject); child.on('exit', (code) => (code === 0 ? res(0) : reject(code))); }); } function allOk(specs: Entry[]) { return specs.every((s) => s.ok); } async function readSummary(caseName: string): Promise { const json = await readFile('./playwright-results.json', 'utf-8'); const results = JSON.parse(json); return results.suites[0].suites.map((y) => ({ caseName, target: y.title, ok: allOk(y.specs), })); } async function detectFailures(allResults: any[]) { // Look for any failures, except those explicity allowed. A failure would be // allowed so that the case and progress can be merged, even where Mitosis // doesn't have complete support across all targets yet. const allowFailuresJson = await readFile('./allow-failures.json', 'utf-8'); const allowFailures: Entry[] = JSON.parse(allowFailuresJson); const didntPass = allResults.filter((e) => !e.ok); const regressions = didntPass.filter( (dp) => !allowFailures.find((af) => dp.caseName == af.caseName && dp.target == af.target), ); if (regressions.length > 0) { console.error('E2E regressions, these formerly passed!', regressions); throw new Error('E2E regressions: ' + regressions.length); } } async function main() { const allResults: Entry[] = []; // Build one case at a time, so we only need one build env per target. for (const c of cases) { console.log('--------------------------------- E2E case:', c); // Copy the case source into src; see // https://github.com/BuilderIO/mitosis/issues/494 syncDirectory(resolve('cases', c), resolve('src'), { deleteOrphaned: true, exclude: ['.gitkeep'], }); // Clean the output - don't want Vite or other tools to leave behind // previous app on failure. await nxRunMany('clean', packages); // Mitosis all targets - with a workaround to tolerate failure, until: // https://github.com/BuilderIO/mitosis/issues/510 await yarn('workspace', '@builder.io/e2e-app', 'run', 'run-mitosis-separately'); // Build the libraries and host apps in the normal way. // Ideally we could use Yarn Workspace, but it lacks a partial-success-OK flag. // await yarn('workspaces', 'foreach', '-pt', '--include', '*/e2e-*', '--verbose', 'run', 'build'); try { await nxRunMany('build', packages); } catch (e) { console.log('Build Failed', 'proceeding with E2E'); } // Invoke Playwright to test them all. try { await yarn('workspace', '@builder.io/e2e-app', 'run', 'playwright'); } catch (e) { console.log('Playwright failed, proceeding anyway'); } allResults.push(...(await readSummary(c))); } // console.log('E2E results', allResults); console.log('Writing E2E status'); await writeFile('./e2e-test-status.json', JSON.stringify(allResults, undefined, 2), 'utf8'); console.log('Updating README with E2E status'); await emitTable(allResults); await detectFailures(allResults); } main() .then(() => { process.exit(0); }) .catch((err) => { console.error(err); process.exit(1); }); ================================================ FILE: e2e/e2e-app/mitosis.config.cjs ================================================ /** * @type {import('@builder.io/mitosis').MitosisConfig} */ module.exports = { files: 'src/**', targets: [ 'alpine', 'angular', 'customElement', 'html', 'qwik', 'react', 'reactNative', 'solid', 'stencil', 'svelte', 'vue', 'webcomponent', ], commonOptions: { typescript: true, explicitBuildFileExtensions: { '.md': /.*(docs\.lite\.tsx)$/g, }, plugins: [ () => ({ code: { post: (code, json) => { if (json.meta?.useMetadata?.docs) { return ( `# ${json.name} - ${json.pluginData?.target}\n\n` + `${JSON.stringify(json.meta?.useMetadata?.docs)}\n\n` + 'This is the content:\n' + '````\n' + code + '\n````' ); } return code; }, }, }), ], }, options: { angular: { api: 'signals', }, react: { transpiler: { format: 'esm', languages: ['ts'] } }, stencil: { prefix: 'e2e', }, solid: { transpiler: { languages: ['ts'] } }, vue: { transpiler: { format: 'esm' }, asyncComponentImports: true, api: 'composition', }, qwik: {}, svelte: {}, }, }; ================================================ FILE: e2e/e2e-app/output/qwik/.gitignore ================================================ lib/ types/ ================================================ FILE: e2e/e2e-app/output/qwik/package.json ================================================ { "name": "@builder.io/e2e-app-qwik", "type": "module", "private": true, "main": "./lib/index.qwik.cjs", "module": "./lib/index.qwik.mjs", "qwik": "./lib/index.qwik.mjs", "types": "./types/index.d.ts", "files": [ "README.md", "package.json", "types", "lib" ], "exports": { ".": { "import": "./lib/index.qwik.mjs", "require": "./lib/index.qwik.cjs" } }, "scripts": { "typecheck": "tsc --noEmit", "build": "tsc && vite build --mode lib", "release:patch": "yarn run build && npm version patch && npm publish", "release:minor": "yarn run build && npm version minor && npm publish", "release:dev": "yarn run build && npm version prerelease && npm publish --tag dev" }, "devDependencies": { "@builder.io/e2e-app": "workspace:*", "@builder.io/qwik": "^1.5.5", "@types/node": "latest", "typescript": "^5.3.2", "undici": "^6.18.2", "vite": "^3.2.2" } } ================================================ FILE: e2e/e2e-app/output/qwik/project.json ================================================ { "$schema": "./node_modules/nx/schemas/project-schema.json", "name": "@builder.io/e2e-app-qwik", "implicitDependencies": ["@builder.io/e2e-app"], "targets": { "build": { "outputs": ["{projectRoot}/lib", "{projectRoot}/types"] } } } ================================================ FILE: e2e/e2e-app/output/qwik/tsconfig.json ================================================ { "compilerOptions": { "target": "ES2020" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, "jsx": "react-jsx" /* Specify what JSX code is generated. */, "jsxImportSource": "@builder.io/qwik" /* Specify module specifier used to import the JSX factory functions when using `jsx: react-jsx*`.` */, /* Modules */ "module": "ES2020" /* Specify what module code is generated. */, // "rootDir": "./", /* Specify the root folder within your source files. */ "moduleResolution": "node" /* Specify how TypeScript looks up a file from a given module specifier. */, "paths": {} /* Specify a set of entries that re-map imports to additional lookup locations. */, "allowJs": true /* Allow JavaScript files to be a part of your program. Use the `checkJS` option to get errors from these files. */, "checkJs": false /* Enable error reporting in type-checked JavaScript files. */, "declaration": true /* Generate .d.ts files from TypeScript and JavaScript files in your project. */, "outDir": "./dist" /* Specify an output folder for all emitted files. */, "declarationDir": "./types" /* Specify the output directory for generated declaration files. */, "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables `allowSyntheticDefaultImports` for type compatibility. */, "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, "strict": true /* Enable all strict type-checking options. */, "noImplicitAny": false /* Enable error reporting for expressions and declarations with an implied `any` type.. */, "skipLibCheck": true /* Skip type checking all .d.ts files. */, "emitDeclarationOnly": true }, "include": ["types.d.ts", "types-hack.d.ts", "src"] } ================================================ FILE: e2e/e2e-app/output/qwik/vite.config.ts ================================================ import { qwikVite } from '@builder.io/qwik/optimizer'; import { resolve } from 'path'; import { defineConfig } from 'vite'; export default defineConfig(() => { return { build: { lib: { entry: resolve(__dirname, 'src/index.ts'), target: 'es2020', formats: ['es', 'cjs'], fileName: (format) => `index.qwik.${format === 'es' ? 'mjs' : 'cjs'}`, }, }, plugins: [qwikVite()], }; }); ================================================ FILE: e2e/e2e-app/output/stencil/index.html ================================================ Stencil Component Starter ================================================ FILE: e2e/e2e-app/output/stencil/index.ts ================================================ /** * @fileoverview entry point for your component library * * This is the entry point for your component library. Use this file to export utilities, * constants or data structure that accompany your components. * * DO NOT use this file to export your components. Instead, use the recommended approaches * to consume components of this package as outlined in the `README.md`. */ export type * from './components.d.ts'; ================================================ FILE: e2e/e2e-app/output/vue/package.json ================================================ { "name": "@e2e-app/vue", "private": true, "main": "./dist/index.js", "module": "./dist/index.js", "type": "module", "files": [ "dist" ], "exports": { ".": { "import": "./dist/index.js", "require": "./dist/index.cjs" }, "./vue3": { "import": "./dist/index.js", "require": "./dist/index.cjs" }, "./vue3/css": "./dist/style.css" }, "scripts": { "add-debug": "bash ./scripts/add-debug.sh", "remove-debug": "bash ./scripts/remove-debug.sh", "build": "vite build", "type-check": "vue-tsc --noEmit" }, "dependencies": { "vue": "^3.5.13" }, "devDependencies": { "@builder.io/e2e-app": "workspace:*", "@types/node": "^16.11.47", "@vitejs/plugin-vue": "^5.2.0", "@vue/tsconfig": "^0.7.0", "typescript": "^5.3.2", "vite": "^6.2.1", "vue-tsc": "^2.2.8" } } ================================================ FILE: e2e/e2e-app/output/vue/project.json ================================================ { "name": "@e2e-app/vue", "implicitDependencies": ["@builder.io/e2e-app"] } ================================================ FILE: e2e/e2e-app/output/vue/tsconfig.config.json ================================================ { "extends": "@vue/tsconfig/tsconfig.json", "include": ["vite.config.*", "vitest.config.*", "cypress.config.*"], "compilerOptions": { "composite": true, "noImplicitAny": false, "types": ["node"] } } ================================================ FILE: e2e/e2e-app/output/vue/tsconfig.json ================================================ { "extends": "@vue/tsconfig/tsconfig.json", "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], "compilerOptions": { "noImplicitAny": false, "baseUrl": "." }, "references": [ { "path": "./tsconfig.config.json" } ] } ================================================ FILE: e2e/e2e-app/output/vue/vite.config.ts ================================================ import vue from '@vitejs/plugin-vue'; import { resolve } from 'path'; import { defineConfig } from 'vite'; // https://vitejs.dev/config/ export default defineConfig({ plugins: [vue()], build: { lib: { entry: resolve(__dirname, 'src/index.ts'), fileName: 'index', formats: ['cjs', 'es'], }, rollupOptions: { // make sure to externalize deps that shouldn't be bundled // into your library external: ['vue'], output: { // Provide global variables to use in the UMD build // for externalized deps globals: { vue: 'Vue', }, }, }, }, }); ================================================ FILE: e2e/e2e-app/package.json ================================================ { "name": "@builder.io/e2e-app", "description": "App for verifying Mitosis works, including Playwright specification", "private": true, "type": "module", "scripts": { "start": "watch 'yarn build' ./src", "build": "mitosis build", "e2e-old": "ts-node --project tsconfig.node.json e2e", "e2e": "playwright test", "e2e:ui": "npx playwright test --ui", "install:playwright": "playwright install chromium --with-deps", "report": "playwright show-report" }, "dependencies": { "@builder.io/mitosis": "workspace:*", "@builder.io/mitosis-cli": "workspace:*", "@playwright/test": "^1.48.0", "watch": "^1.0.2" }, "devDependencies": { "@stencil/core": "^4.7.0", "@types/node": "^20.12.13", "concurrently": "^7.3.0", "react": "^18.2.0", "react-dom": "^18.2.0", "solid-js": "^1.4.5", "solid-styled-components": "^0.28.4", "sync-directory": "^5.1.7", "ts-node": "^10.9.1", "typescript": "^5.3.2", "vue": "~2.6" }, "exports": { "./svelte": "./output/svelte/src/homepage.svelte", "./*": "./output/*/src/index.ts" } } ================================================ FILE: e2e/e2e-app/playwright.config.ts ================================================ import type { PlaywrightTestConfig } from '@playwright/test'; import { devices } from '@playwright/test'; import path from 'path'; import { fileURLToPath } from 'url'; import { PackageName } from './src/testConfig'; export const targets: { packageName: PackageName; port: number }[] = ( [ // { packageName: 'e2e-alpine' }, { packageName: 'e2e-angular' }, { packageName: 'e2e-qwik' }, { packageName: 'e2e-react' }, { packageName: 'e2e-solid' }, { packageName: 'e2e-stencil' }, { packageName: 'e2e-svelte' }, { packageName: 'e2e-vue3' }, ] as const ).map(({ packageName }, i) => { const port = 1234 + i; return { port, packageName, }; }); const getDirName = () => { try { const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); return __dirname; } catch (error) { return '.'; } }; /** * See https://playwright.dev/docs/test-configuration. */ const testConfig: PlaywrightTestConfig = { testDir: getDirName() + '/tests', /* Maximum time one test can run for. */ timeout: 20 * 1000, expect: { /** * Maximum time expect() should wait for the condition to be met. * For example in `await expect(locator).toHaveText();` */ timeout: 5000, }, /* Run tests in files in parallel */ fullyParallel: true, /* Fail the build on CI if you accidentally left test.only in the source code. */ forbidOnly: !!process.env.CI, /* Retry on CI only */ retries: process.env.CI ? 2 : 0, /* Opt out of parallel tests on CI. */ workers: process.env.CI ? 1 : undefined, /* Reporter to use. See https://playwright.dev/docs/test-reporters */ reporter: [ ['list'], ['html', { open: 'never' }], ['json', { outputFile: 'playwright-results.json' }], ], /* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */ use: { /* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */ actionTimeout: 3 * 1000, /* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */ trace: 'on', screenshot: 'on', /* Base URL to use in actions like `await page.goto('/')`. */ baseURL: `http://localhost`, }, /* Configure projects for major browsers */ projects: targets.map(({ packageName, port }) => ({ name: packageName, use: { ...devices['Desktop Chrome'], baseURL: `http://localhost:${port}`, /** * This provides the package name to the test as a variable to check which exact server the test is running. */ packageName, }, })), /* Folder for test artifacts such as screenshots, videos, traces, etc. */ // outputDir: 'test-results/', webServer: targets.map(({ packageName, port }) => ({ command: `yarn workspace @builder.io/${packageName} run serve --port=${port}`, port: port, reuseExistingServer: false, })), }; export default testConfig; ================================================ FILE: e2e/e2e-app/project.json ================================================ { "$schema": "./node_modules/nx/schemas/project-schema.json", "name": "@builder.io/e2e-app", "targets": { "build": { "executor": "nx:run-commands", "options": { "cwd": "./e2e/e2e-app", "command": "yarn build" }, "outputs": [ "{projectRoot}/output/react/src", "{projectRoot}/output/qwik/src", "{projectRoot}/output/stencil/src", "{projectRoot}/output/solid/src", "{projectRoot}/output/svelte/src", "{projectRoot}/output/vue/packages/_vue2/src", "{projectRoot}/output/vue/packages/_vue3/src" ] }, "e2e": { "dependsOn": ["install:playwright"] } } } ================================================ FILE: e2e/e2e-app/results.json ================================================ { "config": { "forbidOnly": false, "fullyParallel": true, "globalSetup": null, "globalTeardown": null, "globalTimeout": 0, "grep": {}, "grepInvert": null, "maxFailures": 0, "metadata": {}, "preserveOutput": "always", "projects": [ { "outputDir": "/Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app/test-results", "repeatEach": 1, "retries": 0, "name": "chromium", "testDir": "/Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app/tests", "testIgnore": [], "testMatch": ["**/?(*.)@(spec|test).*"], "timeout": 20000 } ], "reporter": [ ["list", null], [ "html", { "open": "never" } ], [ "json", { "outputFile": "results.json" } ] ], "reportSlowTests": { "max": 5, "threshold": 15000 }, "rootDir": "/Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app/tests", "quiet": false, "shard": null, "updateSnapshots": "missing", "version": "1.24.0", "workers": 8, "webServer": null, "_webServers": [ { "command": "yarn workspace @builder.io/e2e-angular run serve --port 7506", "port": 7506, "reuseExistingServer": false }, { "command": "yarn workspace @builder.io/e2e-qwik run serve --port 7507", "port": 7507, "reuseExistingServer": false }, { "command": "yarn workspace @builder.io/e2e-react run serve --port 7502", "port": 7502, "reuseExistingServer": false }, { "command": "yarn workspace @builder.io/e2e-solid run serve --port 7501", "port": 7501, "reuseExistingServer": false }, { "command": "yarn workspace @builder.io/e2e-svelte run serve --port 7504", "port": 7504, "reuseExistingServer": false }, { "command": "yarn workspace @builder.io/e2e-vue2 run serve --port 7505", "port": 7505, "reuseExistingServer": false }, { "command": "yarn workspace @builder.io/e2e-vue3 run serve --port 7503", "port": 7503, "reuseExistingServer": false } ], "_globalOutputDir": "/Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app", "_configDir": "/Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app", "_testGroupsCount": 7 }, "suites": [ { "title": "example.spec.ts", "file": "example.spec.ts", "line": 0, "column": 0, "specs": [], "suites": [ { "title": "e2e-angular", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": true, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 0, "status": "passed", "duration": 1517, "stdout": [], "stderr": [], "retry": 0, "attachments": [] } ], "status": "expected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] }, { "title": "e2e-qwik", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": false, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 1, "status": "failed", "duration": 6628, "error": { "message": "\u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m3\u001b[39m\nReceived: \u001b[31m2\u001b[39m\nCall log:\n \u001b[2m- expect.toHaveCount with timeout 5000ms\u001b[22m\n\u001b[2m - waiting for selector \"li\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n", "stack": "Error: \u001b[2mexpect(\u001b[22m\u001b[31mreceived\u001b[39m\u001b[2m).\u001b[22mtoHaveCount\u001b[2m(\u001b[22m\u001b[32mexpected\u001b[39m\u001b[2m) // deep equality\u001b[22m\n\nExpected: \u001b[32m3\u001b[39m\nReceived: \u001b[31m2\u001b[39m\nCall log:\n \u001b[2m- expect.toHaveCount with timeout 5000ms\u001b[22m\n\u001b[2m - waiting for selector \"li\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\u001b[2m - selector resolved to 2 elements\u001b[22m\n\u001b[2m - unexpected value \"2\"\u001b[22m\n\n at /Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app/tests/example.spec.ts:18:40" }, "stdout": [], "stderr": [], "retry": 0, "attachments": [], "errorLocation": { "file": "/Users/kcordes/projects/Qwik/mitosis/e2e/e2e-app/tests/example.spec.ts", "column": 40, "line": 18 } } ], "status": "unexpected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] }, { "title": "e2e-react", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": true, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 2, "status": "passed", "duration": 907, "stdout": [], "stderr": [], "retry": 0, "attachments": [] } ], "status": "expected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] }, { "title": "e2e-solid", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": true, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 3, "status": "passed", "duration": 1638, "stdout": [], "stderr": [], "retry": 0, "attachments": [] } ], "status": "expected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] }, { "title": "e2e-svelte", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": true, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 4, "status": "passed", "duration": 2253, "stdout": [], "stderr": [], "retry": 0, "attachments": [] } ], "status": "expected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] }, { "title": "e2e-vue2", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": true, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 5, "status": "passed", "duration": 1536, "stdout": [], "stderr": [], "retry": 0, "attachments": [] } ], "status": "expected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] }, { "title": "e2e-vue3", "file": "example.spec.ts", "line": 6, "column": 8, "specs": [ { "title": "todo list add", "ok": true, "tags": [], "tests": [ { "timeout": 20000, "annotations": [], "expectedStatus": "passed", "projectName": "chromium", "results": [ { "workerIndex": 6, "status": "passed", "duration": 1651, "stdout": [], "stderr": [], "retry": 0, "attachments": [] } ], "status": "expected" } ], "file": "example.spec.ts", "line": 7, "column": 5 } ] } ] } ], "errors": [] } ================================================ FILE: e2e/e2e-app/src/component-paths.ts ================================================ export const COMPONENT_PATHS = [ '/default-props/', '/one-component/', '/two-components/', '/types/', '/show-for-component/', '/special-tags/', '/signals/', '/disabled-input/', '/component-on-update/', '/component-with-outside-types/', ]; ================================================ FILE: e2e/e2e-app/src/components/component-on-update.lite.tsx ================================================ import { onMount, onUpdate, useRef, useStore } from '@builder.io/mitosis'; type Store = { initial: boolean; counter: number; label?: string; handleClick: () => void }; export default function ComponentOnUpdate(props: any) { const _ref = useRef(null); const state = useStore({ initial: false, counter: 0, label: undefined, handleClick: () => { state.counter = state.counter + 1; }, }); onMount(() => { state.initial = true; }); onUpdate(() => { if (_ref && !state.initial) { state.initial = true; } }, [_ref, state.initial]); onUpdate(() => { console.log(state.counter, state.label, state.initial); }); onUpdate(() => { if (state.initial) { state.label = 'Label'; } }, [state.initial]); onUpdate(() => { if (_ref && state.label) { _ref.setAttribute('aria-label', `${state.label}: ${state.counter}`); } }, [_ref, state.counter, state.label]); return (
Hello {state.counter}
); } ================================================ FILE: e2e/e2e-app/src/components/default-props/use-default-props.lite.tsx ================================================ import { useDefaultProps, useStore } from '@builder.io/mitosis'; useDefaultProps({ foo: 'abc', bar: 'foo' }); type DefaultPropsType = { foo?: string; bar?: string; }; export default function DefaultProps(props: DefaultPropsType) { const state = useStore({ getProps: () => { return JSON.stringify({ foo: props.foo, bar: props.bar }); }, }); return
{state.getProps()}
; } ================================================ FILE: e2e/e2e-app/src/components/disabled-input/disabled-input.lite.tsx ================================================ import NativeInput from './native-input.lite'; import SimpleInput from './simple-input.lite'; export default function DisabledInput() { return (
); } ================================================ FILE: e2e/e2e-app/src/components/disabled-input/native-input.lite.tsx ================================================ import { useMetadata } from '@builder.io/mitosis'; export type DisabledProps = { testId: string; disabled?: boolean; }; useMetadata({ angular: { nativeAttributes: ['disabled'] }, }); export default function NativeInput(props: DisabledProps) { return (
); } ================================================ FILE: e2e/e2e-app/src/components/disabled-input/simple-input.lite.tsx ================================================ import { useMetadata } from '@builder.io/mitosis'; export type DisabledProps = { testId: string; disabled?: boolean; }; useMetadata({}); export default function SimpleInput(props: DisabledProps) { return (
); } ================================================ FILE: e2e/e2e-app/src/components/explicit.docs.lite.tsx ================================================ import { useMetadata } from '@builder.io/mitosis'; import ComponentWithTypes from './component-with-types.lite'; useMetadata({ docs: { name: 'This is the name', }, }); export default function AbcButton(props: any) { return ; } ================================================ FILE: e2e/e2e-app/src/components/nested/item-list.lite.tsx ================================================ export interface ItemListProps { list: string[]; } export default function ItemList(props: ItemListProps) { return (
    {props.list.map((item) => (
  • {item}
  • ))}
); } ================================================ FILE: e2e/e2e-app/src/components/nested/nested-parent.lite.tsx ================================================ import { useMetadata, useStore } from '@builder.io/mitosis'; import ItemList from './item-list.lite'; useMetadata({ qwik: { mutable: ['state.list'], }, }); export interface State { list: string[]; newItemName: string; setItemName: any; addItem: any; } export default function NestedParent(props: any) { const state = useStore({ list: ['hello', 'world'], newItemName: 'New item', setItemName(event: any) { state.newItemName = (event.target as any).value; }, addItem() { state.list = [...state.list, state.newItemName]; }, }); return (
state.setItemName(event)} />
); } ================================================ FILE: e2e/e2e-app/src/components/one-component.lite.tsx ================================================ import { useStore } from '@builder.io/mitosis'; export interface State { list: string[]; newItemName: string; setItemName: any; addItem: any; } export default function OneComponent(props: any) { const state = useStore({ list: ['hello', 'world'], newItemName: 'New item', setItemName(event: any) { state.newItemName = (event.target as any).value; }, addItem() { state.list = [...state.list, state.newItemName]; }, }); return (
state.setItemName(event)} />
    {state.list.map((item) => (
  • {item}
  • ))}
); } ================================================ FILE: e2e/e2e-app/src/components/show-for-component.lite.tsx ================================================ import { For, Show, useStore } from '@builder.io/mitosis'; export default function ShowForComponent() { const state = useStore({ numbers: [1, 2, 3], vowels: ['a', 'e', 'i', 'o', 'u'], }); return (
{(vowel) =>

vowel :{vowel}

}} > {(number) =>

number :{number}

}
); } ================================================ FILE: e2e/e2e-app/src/components/signals/signal-item-list.lite.tsx ================================================ import { onMount, Signal, useStore } from '@builder.io/mitosis'; interface ItemListProps { list: Signal; } export default function SignalItemList(props: ItemListProps) { const state = useStore({ someFn() { console.log(props.list, props.list.value[0]); props.list.value[0] = 'hello'; }, }); onMount(() => { console.log(props.list, props.list.value[0]); }); return (
    {props.list.value.map((item) => (
  • {item}
  • ))}
); } ================================================ FILE: e2e/e2e-app/src/components/signals/signal-parent.lite.tsx ================================================ import { onMount, useState, useStore } from '@builder.io/mitosis'; import SignalItemList from './signal-item-list.lite'; export default function SignalParent() { const [n] = useState(['123'], { reactive: true }); const state = useStore({ someFn() { console.log(n, n.value); n.value[0] = '123'; }, }); onMount(() => { console.log(n, n.value); }); return (
{n.value}
); } ================================================ FILE: e2e/e2e-app/src/components/special-tags.lite.tsx ================================================ import { useStore } from '@builder.io/mitosis'; export default function SpecialTags() { const state = useStore({ get scriptStr(): string { return `console.log('hello from script tag.')`; }, styleStr: '.wrap { background-color: rgb(255, 0, 0); }', }); return (
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Alpine.js > jsx > Javascript Test > Basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Alpine.js > jsx > Javascript Test > Basic 2`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Basic Context 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > Basic OnMount Update 1`] = ` "
Hello
" `; exports[`Alpine.js > jsx > Javascript Test > Basic Outputs 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
" `; exports[`Alpine.js > jsx > Javascript Test > BasicAttribute 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > BasicChildComponent 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > BasicFor 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > BasicRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Alpine.js > jsx > Javascript Test > BasicRefAssignment 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > BasicRefPrevious 1`] = ` "

Now: , before:

" `; exports[`Alpine.js > jsx > Javascript Test > Button 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Columns 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > ContentSlotHtml 1`] = ` "

" `; exports[`Alpine.js > jsx > Javascript Test > ContentSlotJSX 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > CustomCode 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Embed 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Form 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Image 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Image State 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Img 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > Input 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > InputParent 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > NestedStore 1`] = ` "
Test

Message

" `; exports[`Alpine.js > jsx > Javascript Test > RawText 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > Section 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Section 2`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > Select 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > SlotDefault 1`] = ` "
Default content
" `; exports[`Alpine.js > jsx > Javascript Test > SlotHtml 1`] = ` "
Hello
\\">
" `; exports[`Alpine.js > jsx > Javascript Test > SlotJsx 1`] = ` "
Hello
\\">
" `; exports[`Alpine.js > jsx > Javascript Test > SlotNamed 1`] = ` "
Default left Default Child
" `; exports[`Alpine.js > jsx > Javascript Test > Stamped.io 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > StoreComment 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > StoreShadowVars 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > StoreWithState 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > Submit 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > Text 1`] = ` "
my name

'\\" >
" `; exports[`Alpine.js > jsx > Javascript Test > Textarea 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "
Test
" `; exports[`Alpine.js > jsx > Javascript Test > Video 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "
Hello
" `; exports[`Alpine.js > jsx > Javascript Test > basicForFragment 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > basicForNoTagReference 1`] = ` " Hello " `; exports[`Alpine.js > jsx > Javascript Test > basicForwardRef 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */
" `; exports[`Alpine.js > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "
Hello!
" `; exports[`Alpine.js > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Alpine.js > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */
" `; exports[`Alpine.js > jsx > Javascript Test > class + ClassName + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > class + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > className + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > className 1`] = ` "
Without Binding
With binding
" `; exports[`Alpine.js > jsx > Javascript Test > classState 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */
" `; exports[`Alpine.js > jsx > Javascript Test > componentWithContext 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "
other
" `; exports[`Alpine.js > jsx > Javascript Test > contentState 1`] = ` "
setting context
" `; exports[`Alpine.js > jsx > Javascript Test > defaultProps 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "
Hello
" `; exports[`Alpine.js > jsx > Javascript Test > eventInputAndChange 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > eventProps 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > expressionState 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Alpine.js > jsx > Javascript Test > functionProps 1`] = ` "

x\\" x-bind:f1=\\"x => x\\" x-bind:f2=\\"x => {}\\" x-bind:f3=\\"function () { return x; }\\" x-bind:f4=\\"function (x) { return x; }\\" x-bind:f5=\\"function (x) { return; }\\" x-bind:f6=\\"function () { return; }\\" x-bind:f7=\\"(a, b, c) => a + b + c\\" >

" `; exports[`Alpine.js > jsx > Javascript Test > getterState 1`] = ` "

" `; exports[`Alpine.js > jsx > Javascript Test > import types 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > layerName 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > multipleOnUpdate 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > multipleSpreads 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > nestedShow 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > nestedStyles 1`] = ` "
Hello world
" `; exports[`Alpine.js > jsx > Javascript Test > normalizeLayerNames 1`] = ` "
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Alpine.js > jsx > Javascript Test > onEvent 1`] = ` "
Test
" `; exports[`Alpine.js > jsx > Javascript Test > onInit & onMount 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > onInit 1`] = ` "
Default name defined by parent
" `; exports[`Alpine.js > jsx > Javascript Test > onInitPlain 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > onMount 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > onMountMultiple 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > onUpdate 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > preserveTyping 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > propsDestructure 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > propsInterface 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > propsType 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > renderBlock 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > renderContentExample 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > rootShow 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > self-referencing component 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > self-referencing component with children 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > setState 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > showExpressions 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > showWithFor 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > showWithOtherValues 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > showWithRootText 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > signalsOnUpdate 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > spreadAttrs 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > spreadNestedProps 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > spreadProps 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > store-async-function 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > string-literal-store 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > styleClassAndCss 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > subComponent 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > svgComponent 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > typeDependency 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > typeExternalProps 1`] = ` "
Hello !
" `; exports[`Alpine.js > jsx > Javascript Test > typeExternalStore 1`] = ` "
Hello !
" `; exports[`Alpine.js > jsx > Javascript Test > typeGetterStore 1`] = ` "
Hello !
" `; exports[`Alpine.js > jsx > Javascript Test > use-style 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > use-style-and-css 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > use-style-outside-component 1`] = ` " " `; exports[`Alpine.js > jsx > Javascript Test > useTarget 1`] = ` "
" `; exports[`Alpine.js > jsx > Javascript Test > webComponent 1`] = ` " Slide 1 Slide 2 Slide 3 " `; exports[`Alpine.js > jsx > Remove Internal mitosis package 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > Advanced 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > AdvancedRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Alpine.js > jsx > Typescript Test > Basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Alpine.js > jsx > Typescript Test > Basic 2`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Basic Context 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > Basic OnMount Update 1`] = ` "
Hello
" `; exports[`Alpine.js > jsx > Typescript Test > Basic Outputs 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
" `; exports[`Alpine.js > jsx > Typescript Test > BasicAttribute 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > BasicChildComponent 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > BasicFor 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > BasicRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Alpine.js > jsx > Typescript Test > BasicRefAssignment 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > BasicRefPrevious 1`] = ` "

Now: , before:

" `; exports[`Alpine.js > jsx > Typescript Test > Button 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Columns 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > ContentSlotHtml 1`] = ` "

" `; exports[`Alpine.js > jsx > Typescript Test > ContentSlotJSX 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > CustomCode 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Embed 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Form 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Image 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Image State 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Img 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > Input 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > InputParent 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > NestedStore 1`] = ` "
Test

Message

" `; exports[`Alpine.js > jsx > Typescript Test > RawText 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > Section 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Section 2`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > Select 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > SlotDefault 1`] = ` "
Default content
" `; exports[`Alpine.js > jsx > Typescript Test > SlotHtml 1`] = ` "
Hello
\\"> " `; exports[`Alpine.js > jsx > Typescript Test > SlotJsx 1`] = ` "
Hello
\\"> " `; exports[`Alpine.js > jsx > Typescript Test > SlotNamed 1`] = ` "
Default left Default Child
" `; exports[`Alpine.js > jsx > Typescript Test > Stamped.io 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > StoreComment 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > StoreShadowVars 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > StoreWithState 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > Submit 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > Text 1`] = ` "
my name

'\\" >
" `; exports[`Alpine.js > jsx > Typescript Test > Textarea 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "
Test
" `; exports[`Alpine.js > jsx > Typescript Test > Video 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "
Hello
" `; exports[`Alpine.js > jsx > Typescript Test > basicForFragment 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > basicForNoTagReference 1`] = ` " Hello " `; exports[`Alpine.js > jsx > Typescript Test > basicForwardRef 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */
" `; exports[`Alpine.js > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "
Hello!
" `; exports[`Alpine.js > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Alpine.js > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */
" `; exports[`Alpine.js > jsx > Typescript Test > class + ClassName + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > class + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > className + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > className 1`] = ` "
Without Binding
With binding
" `; exports[`Alpine.js > jsx > Typescript Test > classState 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */
" `; exports[`Alpine.js > jsx > Typescript Test > componentWithContext 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "
other
" `; exports[`Alpine.js > jsx > Typescript Test > contentState 1`] = ` "
setting context
" `; exports[`Alpine.js > jsx > Typescript Test > defaultProps 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "
Hello
" `; exports[`Alpine.js > jsx > Typescript Test > eventInputAndChange 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > eventProps 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > expressionState 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Alpine.js > jsx > Typescript Test > functionProps 1`] = ` "

x\\" x-bind:f1=\\"x => x\\" x-bind:f2=\\"x => {}\\" x-bind:f3=\\"function () { return x; }\\" x-bind:f4=\\"function (x) { return x; }\\" x-bind:f5=\\"function (x) { return; }\\" x-bind:f6=\\"function () { return; }\\" x-bind:f7=\\"(a, b, c) => a + b + c\\" >

" `; exports[`Alpine.js > jsx > Typescript Test > getterState 1`] = ` "

" `; exports[`Alpine.js > jsx > Typescript Test > import types 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > layerName 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > multipleOnUpdate 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > multipleSpreads 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > nestedShow 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > nestedStyles 1`] = ` "
Hello world
" `; exports[`Alpine.js > jsx > Typescript Test > normalizeLayerNames 1`] = ` "
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Alpine.js > jsx > Typescript Test > onEvent 1`] = ` "
Test
" `; exports[`Alpine.js > jsx > Typescript Test > onInit & onMount 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > onInit 1`] = ` "
Default name defined by parent
" `; exports[`Alpine.js > jsx > Typescript Test > onInitPlain 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > onMount 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > onMountMultiple 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > onUpdate 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > preserveTyping 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > propsDestructure 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > propsInterface 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > propsType 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > renderBlock 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > renderContentExample 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > rootShow 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > self-referencing component 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > self-referencing component with children 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > setState 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > showExpressions 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > showWithFor 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > showWithOtherValues 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > showWithRootText 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > signalsOnUpdate 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > spreadAttrs 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > spreadNestedProps 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > spreadProps 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > store-async-function 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > string-literal-store 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > styleClassAndCss 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > subComponent 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > svgComponent 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > typeDependency 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > typeExternalProps 1`] = ` "
Hello !
" `; exports[`Alpine.js > jsx > Typescript Test > typeExternalStore 1`] = ` "
Hello !
" `; exports[`Alpine.js > jsx > Typescript Test > typeGetterStore 1`] = ` "
Hello !
" `; exports[`Alpine.js > jsx > Typescript Test > use-style 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > use-style-and-css 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > use-style-outside-component 1`] = ` " " `; exports[`Alpine.js > jsx > Typescript Test > useTarget 1`] = ` "
" `; exports[`Alpine.js > jsx > Typescript Test > webComponent 1`] = ` " Slide 1 Slide 2 Slide 3 " `; exports[`Alpine.js > svelte > Javascript Test > basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > svelte > Javascript Test > bindGroup 1`] = ` "


Tortilla:

Fillings:

" `; exports[`Alpine.js > svelte > Javascript Test > bindProperty 1`] = ` " " `; exports[`Alpine.js > svelte > Javascript Test > classDirective 1`] = ` " " `; exports[`Alpine.js > svelte > Javascript Test > context 1`] = ` "
" `; exports[`Alpine.js > svelte > Javascript Test > each 1`] = ` "
" `; exports[`Alpine.js > svelte > Javascript Test > eventHandlers 1`] = ` "
" `; exports[`Alpine.js > svelte > Javascript Test > html 1`] = ` "
" `; exports[`Alpine.js > svelte > Javascript Test > ifElse 1`] = ` " " `; exports[`Alpine.js > svelte > Javascript Test > imports 1`] = ` "
" `; exports[`Alpine.js > svelte > Javascript Test > lifecycleHooks 1`] = ` "
" `; exports[`Alpine.js > svelte > Javascript Test > reactive 1`] = ` "
Lowercase:
" `; exports[`Alpine.js > svelte > Javascript Test > reactiveWithFn 1`] = ` "
Result:
" `; exports[`Alpine.js > svelte > Javascript Test > slots 1`] = ` "
default
default
" `; exports[`Alpine.js > svelte > Javascript Test > style 1`] = ` " " `; exports[`Alpine.js > svelte > Javascript Test > textExpressions 1`] = ` "
normal:
conditional 2 ? 'hello' : 'bye'\\">
" `; exports[`Alpine.js > svelte > Typescript Test > basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Alpine.js > svelte > Typescript Test > bindGroup 1`] = ` "


Tortilla:

Fillings:

" `; exports[`Alpine.js > svelte > Typescript Test > bindProperty 1`] = ` " " `; exports[`Alpine.js > svelte > Typescript Test > classDirective 1`] = ` " " `; exports[`Alpine.js > svelte > Typescript Test > context 1`] = ` "
" `; exports[`Alpine.js > svelte > Typescript Test > each 1`] = ` "
" `; exports[`Alpine.js > svelte > Typescript Test > eventHandlers 1`] = ` "
" `; exports[`Alpine.js > svelte > Typescript Test > html 1`] = ` "
" `; exports[`Alpine.js > svelte > Typescript Test > ifElse 1`] = ` " " `; exports[`Alpine.js > svelte > Typescript Test > imports 1`] = ` "
" `; exports[`Alpine.js > svelte > Typescript Test > lifecycleHooks 1`] = ` "
" `; exports[`Alpine.js > svelte > Typescript Test > reactive 1`] = ` "
Lowercase:
" `; exports[`Alpine.js > svelte > Typescript Test > reactiveWithFn 1`] = ` "
Result:
" `; exports[`Alpine.js > svelte > Typescript Test > slots 1`] = ` "
default
default
" `; exports[`Alpine.js > svelte > Typescript Test > style 1`] = ` " " `; exports[`Alpine.js > svelte > Typescript Test > textExpressions 1`] = ` "
normal:
conditional 2 ? 'hello' : 'bye'\\">
" `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/angular.import.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age = 1; sports = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye; @Input() hi; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns; @Input() space; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent = defaultProps[\\"slotContent\\"]; @Input() slotReference = defaultProps[\\"slotReference\\"]; @Input() attributes; @Input() content = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState; @Input() sendWithJs; @Input() sendSubmissionsTo; @Input() action; @Input() customHeaders; @Input() contentType; @Input() sendSubmissionsToEmail; @Input() name; @Input() method; @Input() errorMessagePath; @Input() resetFormOnSubmit; @Input() successUrl; @Input() validate; @Input() attributes; @Input() builderBlock; @Input() errorMessage; @Input() sendingMessage; @Input() successMessage; @ViewChild(\\"formRef\\") formRef; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy; @Input() altText; @Input() _class; @Input() image; @Input() srcset; @Input() sizes; @ViewChild(\\"pictureRef\\") pictureRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize; @Input() backgroundPosition; @Input() attributes; @Input() imgSrc; @Input() altText; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes; @Input() defaultValue; @Input() placeholder; @Input() type; @Input() name; @Input() value; @Input() required; @Input() onChange; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id = \\"abc\\"; _messageId = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes; @Input() text; constructor(protected sanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() attributes; @Input() maxWidth; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); max = 42; items = [42]; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes; @Input() value; @Input() defaultValue; @Input() name; @Input() options; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey; @Input() productId; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes; @Input() text; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text; @Input() content; name = \\"Decadef20\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes; @Input() placeholder; @Input() name; @Input() value; @Input() defaultValue; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id = \\"abc\\"; _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes; @Input() fit; @Input() position; @Input() video; @Input() posterImage; @Input() autoPlay; @Input() muted; @Input() controls; @Input() loop; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() accessHere; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef; myContent; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef; @ViewChild(\\"_root\\") _root; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyComp from \\"./my-component.lite\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className; @Input() type; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import BuilderContext from \\"@dummy/context.js\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content; @Input() customComponents; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Input() buttonText; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef; myContent; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef; myContent; Component = HelloComponent; onClick = function onClick(event) { console.log(\\"hello\\", event); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick() { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon; @Input() interactiveState; @Input() width; @Input() size; @Input() label; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import RenderBlock from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrs = { hello: \\"world\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() conditionB; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles.lite\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component.lite\\"; import RenderRepeatedBlock from \\"./render-repeated-block.lite\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block; @Input() context; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; myContent; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks.lite.tsx\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents; @Input() content; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; @Input() conditionB; @Input() conditionC; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() items; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, } from \\"@angular/core\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput = defaultProps[\\"testInput\\"]; @Input() label = defaultProps[\\"label\\"]; @Input() disabled; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef; _counter = 0; _innerText = \\"a\\"; handleOutput() { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.value.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id; @Input() foo; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value; val = null; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import Foo from \\"./foo-sub-component.lite\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Javascript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Remove Internal mitosis package 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age: number = 1; sports: Array = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye!: Props[\\"bye\\"]; @Input() hi!: Props[\\"hi\\"]; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns!: ColumnProps[\\"columns\\"]; @Input() space!: ColumnProps[\\"space\\"]; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting!: Props[\\"slotTesting\\"]; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent: Props[\\"slotContent\\"] = defaultProps[\\"slotContent\\"]; @Input() slotReference: Props[\\"slotReference\\"] = defaultProps[\\"slotReference\\"]; @Input() attributes!: Props[\\"attributes\\"]; @Input() content: Props[\\"content\\"] = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState!: FormProps[\\"previewState\\"]; @Input() sendWithJs!: FormProps[\\"sendWithJs\\"]; @Input() sendSubmissionsTo!: FormProps[\\"sendSubmissionsTo\\"]; @Input() action!: FormProps[\\"action\\"]; @Input() customHeaders!: FormProps[\\"customHeaders\\"]; @Input() contentType!: FormProps[\\"contentType\\"]; @Input() sendSubmissionsToEmail!: FormProps[\\"sendSubmissionsToEmail\\"]; @Input() name!: FormProps[\\"name\\"]; @Input() method!: FormProps[\\"method\\"]; @Input() errorMessagePath!: FormProps[\\"errorMessagePath\\"]; @Input() resetFormOnSubmit!: FormProps[\\"resetFormOnSubmit\\"]; @Input() successUrl!: FormProps[\\"successUrl\\"]; @Input() validate!: FormProps[\\"validate\\"]; @Input() attributes!: FormProps[\\"attributes\\"]; @Input() builderBlock!: FormProps[\\"builderBlock\\"]; @Input() errorMessage!: FormProps[\\"errorMessage\\"]; @Input() sendingMessage!: FormProps[\\"sendingMessage\\"]; @Input() successMessage!: FormProps[\\"successMessage\\"]; @ViewChild(\\"formRef\\") formRef!: ElementRef; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy!: ImageProps[\\"lazy\\"]; @Input() altText!: ImageProps[\\"altText\\"]; @Input() _class!: ImageProps[\\"_class\\"]; @Input() image!: ImageProps[\\"image\\"]; @Input() srcset!: ImageProps[\\"srcset\\"]; @Input() sizes!: ImageProps[\\"sizes\\"]; @ViewChild(\\"pictureRef\\") pictureRef!: ElementRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize!: ImgProps[\\"backgroundSize\\"]; @Input() backgroundPosition!: ImgProps[\\"backgroundPosition\\"]; @Input() attributes!: ImgProps[\\"attributes\\"]; @Input() imgSrc!: ImgProps[\\"imgSrc\\"]; @Input() altText!: ImgProps[\\"altText\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes!: FormInputProps[\\"attributes\\"]; @Input() defaultValue!: FormInputProps[\\"defaultValue\\"]; @Input() placeholder!: FormInputProps[\\"placeholder\\"]; @Input() type!: FormInputProps[\\"type\\"]; @Input() name!: FormInputProps[\\"name\\"]; @Input() value!: FormInputProps[\\"value\\"]; @Input() required!: FormInputProps[\\"required\\"]; @Input() onChange!: FormInputProps[\\"onChange\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value: string) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id: MyStore[\\"_id\\"] = \\"abc\\"; _messageId: MyStore[\\"_messageId\\"] = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes!: RawTextProps[\\"attributes\\"]; @Input() text!: RawTextProps[\\"text\\"]; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @Input() maxWidth!: SectionProps[\\"maxWidth\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); max = 42; items = [42]; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes!: FormSelectProps[\\"attributes\\"]; @Input() value!: FormSelectProps[\\"value\\"]; @Input() defaultValue!: FormSelectProps[\\"defaultValue\\"]; @Input() name!: FormSelectProps[\\"name\\"]; @Input() options!: FormSelectProps[\\"options\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey!: SmileReviewsProps[\\"apiKey\\"]; @Input() productId!: SmileReviewsProps[\\"productId\\"]; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text!: TextProps[\\"text\\"]; @Input() content!: TextProps[\\"content\\"]; name = \\"Decadef20\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes!: TextareaProps[\\"attributes\\"]; @Input() placeholder!: TextareaProps[\\"placeholder\\"]; @Input() name!: TextareaProps[\\"name\\"]; @Input() value!: TextareaProps[\\"value\\"]; @Input() defaultValue!: TextareaProps[\\"defaultValue\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, SimpleChanges } from \\"@angular/core\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id: MyStore[\\"_id\\"] = \\"abc\\"; _active: MyStore[\\"_active\\"] = false; _do(id?: string): ReturnType { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes!: VideoProps[\\"attributes\\"]; @Input() fit!: VideoProps[\\"fit\\"]; @Input() position!: VideoProps[\\"position\\"]; @Input() video!: VideoProps[\\"video\\"]; @Input() posterImage!: VideoProps[\\"posterImage\\"]; @Input() autoPlay!: VideoProps[\\"autoPlay\\"]; @Input() muted!: VideoProps[\\"muted\\"]; @Input() controls!: VideoProps[\\"controls\\"]; @Input() loop!: VideoProps[\\"loop\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() accessHere!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer: Renderer2) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions!: any; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef!: TemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef!: TemplateRef; myContent?: any[][]; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; @ViewChild(\\"_root\\") _root!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyComp from \\"./my-component.lite\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className!: Props[\\"className\\"]; @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import BuilderContext from \\"@dummy/context.js\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content!: any; @Input() customComponents!: any; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Input() buttonText!: ButtonProps[\\"buttonText\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name!: Props[\\"name\\"]; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef!: TemplateRef; myContent?: any[][]; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef!: TemplateRef; myContent?: any[][]; Component = HelloComponent; onClick = function onClick(event: any) { console.log(\\"hello\\", event); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick(): ReturnType { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef!: any; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon!: any; @Input() interactiveState!: any; @Input() width!: any; @Input() size!: any; @Input() label!: any; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo!: ButtonProps[\\"foo\\"]; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps!: RenderContentProps[\\"renderContentProps\\"]; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrs = { hello: \\"world\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem!: ElementRef; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name!: Props[\\"name\\"]; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size!: Props[\\"size\\"]; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: MyBasicComponentProps[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type!: Props[\\"type\\"]; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person | never[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles.lite\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component.lite\\"; import RenderComponent from \\"./render-component.lite\\"; import RenderRepeatedBlock from \\"./render-repeated-block.lite\\"; import type { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block!: RenderBlockProps[\\"block\\"]; @Input() context!: RenderBlockProps[\\"context\\"]; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; myContent?: any[][]; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks.lite.tsx\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents!: Props[\\"customComponents\\"]; @Input() content!: Props[\\"content\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo!: RenderStylesProps[\\"foo\\"]; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; @Input() conditionC!: Props[\\"conditionC\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() items!: Props[\\"items\\"]; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput: Props[\\"testInput\\"] = defaultProps[\\"testInput\\"]; @Input() label: Props[\\"label\\"] = defaultProps[\\"label\\"]; @Input() disabled!: Props[\\"disabled\\"]; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; _counter: Store[\\"_counter\\"] = 0; _innerText: Store[\\"_innerText\\"] = \\"a\\"; handleOutput(): ReturnType { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id!: Props[\\"id\\"]; @Input() foo!: Props[\\"foo\\"]; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val!: any; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value!: any; val = null; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes!: any; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import Foo from \\"./foo-sub-component.lite\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export.lite\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo!: TypeDependencyProps[\\"foo\\"]; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name!: FooProps[\\"name\\"]; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name: FooStore[\\"_name\\"] = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name: GetterStore[\\"name\\"] = \\"test\\"; getName(): ReturnType { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test(): ReturnType { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs!: any; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > jsx > Typescript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import Button from \\"./Button.lite\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Javascript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import Button from \\"./Button.lite\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with Preserve Imports and File Extensions > svelte > Typescript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/angular.mapper.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age = 1; sports = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye; @Input() hi; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import MyBooleanAttributeComponentModule from \\"./basic-boolean-attribute-component.raw/angular\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], bootstrap: [SomeOtherComponent], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponentModule from \\"./basic-onMount-update.raw/angular\\"; import MyBasicOutputsComponentModule from \\"./basic-outputs.raw/angular\\"; import MyBasicComponentModule from \\"./basic.raw/angular\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], bootstrap: [SomeOtherComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns; @Input() space; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], bootstrap: [SomeOtherComponent], }) export class ColumnModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], bootstrap: [SomeOtherComponent], }) export class ContentSlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent = defaultProps[\\"slotContent\\"]; @Input() slotReference = defaultProps[\\"slotReference\\"]; @Input() attributes; @Input() content = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], bootstrap: [SomeOtherComponent], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], bootstrap: [SomeOtherComponent], }) export class CustomCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], bootstrap: [SomeOtherComponent], }) export class CustomCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponentModule, BuilderBlocks, get, set, } from \\"@fake/angular\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState; @Input() sendWithJs; @Input() sendSubmissionsTo; @Input() action; @Input() customHeaders; @Input() contentType; @Input() sendSubmissionsToEmail; @Input() name; @Input() method; @Input() errorMessagePath; @Input() resetFormOnSubmit; @Input() successUrl; @Input() validate; @Input() attributes; @Input() builderBlock; @Input() errorMessage; @Input() sendingMessage; @Input() successMessage; @ViewChild(\\"formRef\\") formRef; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], bootstrap: [SomeOtherComponent], }) export class FormComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy; @Input() altText; @Input() _class; @Input() image; @Input() srcset; @Input() sizes; @ViewChild(\\"pictureRef\\") pictureRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], bootstrap: [SomeOtherComponent], }) export class ImageModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], bootstrap: [SomeOtherComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize; @Input() backgroundPosition; @Input() attributes; @Input() imgSrc; @Input() altText; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], bootstrap: [SomeOtherComponent], }) export class ImgComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes; @Input() defaultValue; @Input() placeholder; @Input() type; @Input() name; @Input() value; @Input() required; @Input() onChange; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], bootstrap: [SomeOtherComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponentModule from \\"./input.raw/angular\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], bootstrap: [SomeOtherComponent], }) export class StepperModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id = \\"abc\\"; _messageId = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], bootstrap: [SomeOtherComponent], }) export class NestedStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes; @Input() text; constructor(protected sanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], bootstrap: [SomeOtherComponent], }) export class RawTextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() attributes; @Input() maxWidth; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], bootstrap: [SomeOtherComponent], }) export class SectionComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); max = 42; items = [42]; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], bootstrap: [SomeOtherComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes; @Input() value; @Input() defaultValue; @Input() name; @Input() options; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], bootstrap: [SomeOtherComponent], }) export class SelectComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCodeModule from \\"./content-slot-jsx.raw/angular\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCodeModule from \\"./content-slot-jsx.raw/angular\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey; @Input() productId; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], bootstrap: [SomeOtherComponent], }) export class SmileReviewsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes; @Input() text; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], bootstrap: [SomeOtherComponent], }) export class SubmitButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text; @Input() content; name = \\"Decadef20\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], bootstrap: [SomeOtherComponent], }) export class TextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes; @Input() placeholder; @Input() name; @Input() value; @Input() defaultValue; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], bootstrap: [SomeOtherComponent], }) export class TextareaModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id = \\"abc\\"; _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], bootstrap: [SomeOtherComponent], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes; @Input() fit; @Input() position; @Input() video; @Input() posterImage; @Input() autoPlay; @Input() muted; @Input() controls; @Input() loop; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], bootstrap: [SomeOtherComponent], }) export class VideoModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() accessHere; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], bootstrap: [SomeOtherComponent], }) export class BasicForFragmentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef; myContent; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef; @ViewChild(\\"_root\\") _root; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], bootstrap: [SomeOtherComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], bootstrap: [SomeOtherComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyCompModule from \\"./my-component.lite/angular\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], bootstrap: [SomeOtherComponent], }) export class ClassNameCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className; @Input() type; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], bootstrap: [SomeOtherComponent], }) export class ComplexMetaRawModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], bootstrap: [SomeOtherComponent], }) export class ComponentWithContextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], bootstrap: [SomeOtherComponent], }) export class ComponentWithContextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import BuilderContext from \\"@dummy/context.lite\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content; @Input() customComponents; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], bootstrap: [SomeOtherComponent], }) export class RenderContentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Input() buttonText; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], bootstrap: [SomeOtherComponent], }) export class ComponentWithTypesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef; myContent; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef; myContent; Component = HelloComponent; onClick = function onClick(event) { console.log(\\"hello\\", event); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], bootstrap: [SomeOtherComponent], }) export class EventInputAndChangeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick() { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], bootstrap: [SomeOtherComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon; @Input() interactiveState; @Input() width; @Input() size; @Input() label; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], bootstrap: [SomeOtherComponent], }) export class FigmaButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import RenderBlockModule from \\"./builder-render-block.raw/angular\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], bootstrap: [SomeOtherComponent], }) export class RenderContentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], bootstrap: [SomeOtherComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], bootstrap: [SomeOtherComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], bootstrap: [SomeOtherComponent], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], bootstrap: [SomeOtherComponent], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrs = { hello: \\"world\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() conditionB; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], bootstrap: [SomeOtherComponent], }) export class NestedShowModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], bootstrap: [SomeOtherComponent], }) export class NestedStylesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], bootstrap: [SomeOtherComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], bootstrap: [SomeOtherComponent], }) export class EmbedModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], bootstrap: [SomeOtherComponent], }) export class OnInitModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], bootstrap: [SomeOtherComponent], }) export class OnInitModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], bootstrap: [SomeOtherComponent], }) export class OnInitPlainModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], bootstrap: [SomeOtherComponent], }) export class CompModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], bootstrap: [SomeOtherComponent], }) export class CompModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], bootstrap: [SomeOtherComponent], }) export class OnUpdateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], bootstrap: [SomeOtherComponent], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], bootstrap: [SomeOtherComponent], }) export class PrettierInlineModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], bootstrap: [SomeOtherComponent], }) export class OnUpdateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStylesModule } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStylesModule from \\"./block-styles.lite/angular\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.lite\\"; import RenderComponent from \\"./render-component.lite\\"; import RenderRepeatedBlockModule from \\"./render-repeated-block.lite/angular\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block; @Input() context; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; myContent; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], bootstrap: [SomeOtherComponent], }) export class RenderBlockModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import BuilderContext from \\"@dummy/context.lite\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocksModule from \\"@dummy/RenderBlocks.lite.tsx/angular\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents; @Input() content; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], bootstrap: [SomeOtherComponent], }) export class RenderContentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], bootstrap: [SomeOtherComponent], }) export class RenderStylesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], bootstrap: [SomeOtherComponent], }) export class SetStateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; @Input() conditionB; @Input() conditionC; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], bootstrap: [SomeOtherComponent], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() items; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], bootstrap: [SomeOtherComponent], }) export class NestedShowModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], bootstrap: [SomeOtherComponent], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], bootstrap: [SomeOtherComponent], }) export class ShowRootTextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, } from \\"@angular/core\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput = defaultProps[\\"testInput\\"]; @Input() label = defaultProps[\\"label\\"]; @Input() disabled; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef; _counter = 0; _innerText = \\"a\\"; handleOutput() { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], bootstrap: [SomeOtherComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.value.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id; @Input() foo; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value; val = null; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent] }) export class StringLiteralStoreModule {}" `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], bootstrap: [SomeOtherComponent], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FooModule from \\"./foo-sub-component.lite/angular\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], bootstrap: [SomeOtherComponent], }) export class SubComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], bootstrap: [SomeOtherComponent], }) export class SvgComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], bootstrap: [SomeOtherComponent], }) export class TypeDependencyModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], bootstrap: [SomeOtherComponent], }) export class TypeExternalPropsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], bootstrap: [SomeOtherComponent], }) export class TypeExternalStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], bootstrap: [SomeOtherComponent], }) export class TypeGetterStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], bootstrap: [SomeOtherComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Javascript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Remove Internal mitosis package 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age: number = 1; sports: Array = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye!: Props[\\"bye\\"]; @Input() hi!: Props[\\"hi\\"]; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponentModule from \\"./basic-boolean-attribute-component.raw/angular\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], bootstrap: [SomeOtherComponent], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponentModule from \\"./basic-onMount-update.raw/angular\\"; import MyBasicOutputsComponentModule from \\"./basic-outputs.raw/angular\\"; import MyBasicComponentModule from \\"./basic.raw/angular\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], bootstrap: [SomeOtherComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns!: ColumnProps[\\"columns\\"]; @Input() space!: ColumnProps[\\"space\\"]; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], bootstrap: [SomeOtherComponent], }) export class ColumnModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting!: Props[\\"slotTesting\\"]; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], bootstrap: [SomeOtherComponent], }) export class ContentSlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent: Props[\\"slotContent\\"] = defaultProps[\\"slotContent\\"]; @Input() slotReference: Props[\\"slotReference\\"] = defaultProps[\\"slotReference\\"]; @Input() attributes!: Props[\\"attributes\\"]; @Input() content: Props[\\"content\\"] = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], bootstrap: [SomeOtherComponent], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], bootstrap: [SomeOtherComponent], }) export class CustomCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], bootstrap: [SomeOtherComponent], }) export class CustomCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponentModule, BuilderBlocks, get, set, } from \\"@fake/angular\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState!: FormProps[\\"previewState\\"]; @Input() sendWithJs!: FormProps[\\"sendWithJs\\"]; @Input() sendSubmissionsTo!: FormProps[\\"sendSubmissionsTo\\"]; @Input() action!: FormProps[\\"action\\"]; @Input() customHeaders!: FormProps[\\"customHeaders\\"]; @Input() contentType!: FormProps[\\"contentType\\"]; @Input() sendSubmissionsToEmail!: FormProps[\\"sendSubmissionsToEmail\\"]; @Input() name!: FormProps[\\"name\\"]; @Input() method!: FormProps[\\"method\\"]; @Input() errorMessagePath!: FormProps[\\"errorMessagePath\\"]; @Input() resetFormOnSubmit!: FormProps[\\"resetFormOnSubmit\\"]; @Input() successUrl!: FormProps[\\"successUrl\\"]; @Input() validate!: FormProps[\\"validate\\"]; @Input() attributes!: FormProps[\\"attributes\\"]; @Input() builderBlock!: FormProps[\\"builderBlock\\"]; @Input() errorMessage!: FormProps[\\"errorMessage\\"]; @Input() sendingMessage!: FormProps[\\"sendingMessage\\"]; @Input() successMessage!: FormProps[\\"successMessage\\"]; @ViewChild(\\"formRef\\") formRef!: ElementRef; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], bootstrap: [SomeOtherComponent], }) export class FormComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy!: ImageProps[\\"lazy\\"]; @Input() altText!: ImageProps[\\"altText\\"]; @Input() _class!: ImageProps[\\"_class\\"]; @Input() image!: ImageProps[\\"image\\"]; @Input() srcset!: ImageProps[\\"srcset\\"]; @Input() sizes!: ImageProps[\\"sizes\\"]; @ViewChild(\\"pictureRef\\") pictureRef!: ElementRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], bootstrap: [SomeOtherComponent], }) export class ImageModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], bootstrap: [SomeOtherComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize!: ImgProps[\\"backgroundSize\\"]; @Input() backgroundPosition!: ImgProps[\\"backgroundPosition\\"]; @Input() attributes!: ImgProps[\\"attributes\\"]; @Input() imgSrc!: ImgProps[\\"imgSrc\\"]; @Input() altText!: ImgProps[\\"altText\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], bootstrap: [SomeOtherComponent], }) export class ImgComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes!: FormInputProps[\\"attributes\\"]; @Input() defaultValue!: FormInputProps[\\"defaultValue\\"]; @Input() placeholder!: FormInputProps[\\"placeholder\\"]; @Input() type!: FormInputProps[\\"type\\"]; @Input() name!: FormInputProps[\\"name\\"]; @Input() value!: FormInputProps[\\"value\\"]; @Input() required!: FormInputProps[\\"required\\"]; @Input() onChange!: FormInputProps[\\"onChange\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], bootstrap: [SomeOtherComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponentModule from \\"./input.raw/angular\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value: string) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], bootstrap: [SomeOtherComponent], }) export class StepperModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id: MyStore[\\"_id\\"] = \\"abc\\"; _messageId: MyStore[\\"_messageId\\"] = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], bootstrap: [SomeOtherComponent], }) export class NestedStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes!: RawTextProps[\\"attributes\\"]; @Input() text!: RawTextProps[\\"text\\"]; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], bootstrap: [SomeOtherComponent], }) export class RawTextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @Input() maxWidth!: SectionProps[\\"maxWidth\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], bootstrap: [SomeOtherComponent], }) export class SectionComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); max = 42; items = [42]; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], bootstrap: [SomeOtherComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes!: FormSelectProps[\\"attributes\\"]; @Input() value!: FormSelectProps[\\"value\\"]; @Input() defaultValue!: FormSelectProps[\\"defaultValue\\"]; @Input() name!: FormSelectProps[\\"name\\"]; @Input() options!: FormSelectProps[\\"options\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], bootstrap: [SomeOtherComponent], }) export class SelectComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCodeModule from \\"./content-slot-jsx.raw/angular\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCodeModule from \\"./content-slot-jsx.raw/angular\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], bootstrap: [SomeOtherComponent], }) export class SlotCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey!: SmileReviewsProps[\\"apiKey\\"]; @Input() productId!: SmileReviewsProps[\\"productId\\"]; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], bootstrap: [SomeOtherComponent], }) export class SmileReviewsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], bootstrap: [SomeOtherComponent], }) export class SubmitButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text!: TextProps[\\"text\\"]; @Input() content!: TextProps[\\"content\\"]; name = \\"Decadef20\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], bootstrap: [SomeOtherComponent], }) export class TextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes!: TextareaProps[\\"attributes\\"]; @Input() placeholder!: TextareaProps[\\"placeholder\\"]; @Input() name!: TextareaProps[\\"name\\"]; @Input() value!: TextareaProps[\\"value\\"]; @Input() defaultValue!: TextareaProps[\\"defaultValue\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], bootstrap: [SomeOtherComponent], }) export class TextareaModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, SimpleChanges } from \\"@angular/core\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id: MyStore[\\"_id\\"] = \\"abc\\"; _active: MyStore[\\"_active\\"] = false; _do(id?: string): ReturnType { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], bootstrap: [SomeOtherComponent], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes!: VideoProps[\\"attributes\\"]; @Input() fit!: VideoProps[\\"fit\\"]; @Input() position!: VideoProps[\\"position\\"]; @Input() video!: VideoProps[\\"video\\"]; @Input() posterImage!: VideoProps[\\"posterImage\\"]; @Input() autoPlay!: VideoProps[\\"autoPlay\\"]; @Input() muted!: VideoProps[\\"muted\\"]; @Input() controls!: VideoProps[\\"controls\\"]; @Input() loop!: VideoProps[\\"loop\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], bootstrap: [SomeOtherComponent], }) export class VideoModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() accessHere!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer: Renderer2) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], bootstrap: [SomeOtherComponent], }) export class BasicForFragmentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions!: any; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef!: TemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef!: TemplateRef; myContent?: any[][]; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; @ViewChild(\\"_root\\") _root!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], bootstrap: [SomeOtherComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], bootstrap: [SomeOtherComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyCompModule from \\"./my-component.lite/angular\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], bootstrap: [SomeOtherComponent], }) export class ClassNameCodeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className!: Props[\\"className\\"]; @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], bootstrap: [SomeOtherComponent], }) export class ComplexMetaRawModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], bootstrap: [SomeOtherComponent], }) export class ComponentWithContextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], bootstrap: [SomeOtherComponent], }) export class ComponentWithContextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import BuilderContext from \\"@dummy/context.lite\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content!: any; @Input() customComponents!: any; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], bootstrap: [SomeOtherComponent], }) export class RenderContentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Input() buttonText!: ButtonProps[\\"buttonText\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name!: Props[\\"name\\"]; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], bootstrap: [SomeOtherComponent], }) export class ComponentWithTypesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef!: TemplateRef; myContent?: any[][]; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef!: TemplateRef; myContent?: any[][]; Component = HelloComponent; onClick = function onClick(event: any) { console.log(\\"hello\\", event); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], bootstrap: [SomeOtherComponent], }) export class EventInputAndChangeModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick(): ReturnType { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], bootstrap: [SomeOtherComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef!: any; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon!: any; @Input() interactiveState!: any; @Input() width!: any; @Input() size!: any; @Input() label!: any; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], bootstrap: [SomeOtherComponent], }) export class FigmaButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo!: ButtonProps[\\"foo\\"]; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlockModule, { RenderBlockModuleProps, } from \\"./builder-render-block.raw/angular\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps!: RenderContentProps[\\"renderContentProps\\"]; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], bootstrap: [SomeOtherComponent], }) export class RenderContentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], bootstrap: [SomeOtherComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], bootstrap: [SomeOtherComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], bootstrap: [SomeOtherComponent], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], bootstrap: [SomeOtherComponent], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrs = { hello: \\"world\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], bootstrap: [SomeOtherComponent], }) export class NestedShowModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], bootstrap: [SomeOtherComponent], }) export class NestedStylesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], bootstrap: [SomeOtherComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem!: ElementRef; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], bootstrap: [SomeOtherComponent], }) export class EmbedModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], bootstrap: [SomeOtherComponent], }) export class OnInitModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name!: Props[\\"name\\"]; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], bootstrap: [SomeOtherComponent], }) export class OnInitModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], bootstrap: [SomeOtherComponent], }) export class OnInitPlainModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], bootstrap: [SomeOtherComponent], }) export class CompModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], bootstrap: [SomeOtherComponent], }) export class CompModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], bootstrap: [SomeOtherComponent], }) export class OnUpdateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size!: Props[\\"size\\"]; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], bootstrap: [SomeOtherComponent], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: MyBasicComponentProps[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], bootstrap: [SomeOtherComponent], }) export class PrettierInlineModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type!: Props[\\"type\\"]; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person | never[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], bootstrap: [SomeOtherComponent], }) export class OnUpdateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStylesModule } from \\"../../functions/get-react-native-block-styles.js\\"; import { BuilderBlock } from \\"../../types/builder-block.js\\"; import { Nullable } from \\"../../types/typescript.js\\"; import BlockStylesModule from \\"./block-styles.lite/angular\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.lite\\"; import { RenderComponentProps } from \\"./render-component.lite\\"; import RenderComponent from \\"./render-component.lite\\"; import RenderRepeatedBlockModule from \\"./render-repeated-block.lite/angular\\"; import { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block!: RenderBlockProps[\\"block\\"]; @Input() context!: RenderBlockProps[\\"context\\"]; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; myContent?: any[][]; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], bootstrap: [SomeOtherComponent], }) export class RenderBlockModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.lite\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocksModule from \\"@dummy/RenderBlocks.lite.tsx/angular\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents!: Props[\\"customComponents\\"]; @Input() content!: Props[\\"content\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], bootstrap: [SomeOtherComponent], }) export class RenderContentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], bootstrap: [SomeOtherComponent], }) export class ButtonModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo!: RenderStylesProps[\\"foo\\"]; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], bootstrap: [SomeOtherComponent], }) export class RenderStylesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], bootstrap: [SomeOtherComponent], }) export class SetStateModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; @Input() conditionC!: Props[\\"conditionC\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], bootstrap: [SomeOtherComponent], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() items!: Props[\\"items\\"]; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], bootstrap: [SomeOtherComponent], }) export class NestedShowModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], bootstrap: [SomeOtherComponent], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], bootstrap: [SomeOtherComponent], }) export class ShowRootTextModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput: Props[\\"testInput\\"] = defaultProps[\\"testInput\\"]; @Input() label: Props[\\"label\\"] = defaultProps[\\"label\\"]; @Input() disabled!: Props[\\"disabled\\"]; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; _counter: Store[\\"_counter\\"] = 0; _innerText: Store[\\"_innerText\\"] = \\"a\\"; handleOutput(): ReturnType { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], bootstrap: [SomeOtherComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id!: Props[\\"id\\"]; @Input() foo!: Props[\\"foo\\"]; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val!: any; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value!: any; val = null; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent], }) export class StringLiteralStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], bootstrap: [SomeOtherComponent] }) export class StringLiteralStoreModule {}" `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes!: any; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], bootstrap: [SomeOtherComponent], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FooModule from \\"./foo-sub-component.lite/angular\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], bootstrap: [SomeOtherComponent], }) export class SubComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], bootstrap: [SomeOtherComponent], }) export class SvgComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import { Foo } from \\"./foo-type\\"; import { Foo as Foo2 } from \\"./type-export.lite\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo!: TypeDependencyProps[\\"foo\\"]; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], bootstrap: [SomeOtherComponent], }) export class TypeDependencyModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name!: FooProps[\\"name\\"]; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], bootstrap: [SomeOtherComponent], }) export class TypeExternalPropsModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name: FooStore[\\"_name\\"] = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], bootstrap: [SomeOtherComponent], }) export class TypeExternalStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name: GetterStore[\\"name\\"] = \\"test\\"; getName(): ReturnType { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test(): ReturnType { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], bootstrap: [SomeOtherComponent], }) export class TypeGetterStoreModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs!: any; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], bootstrap: [SomeOtherComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with Import Mapper Tests > jsx > Typescript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], bootstrap: [SomeOtherComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ButtonModule from \\"./Button.lite/angular\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Javascript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ButtonModule from \\"./Button.lite/angular\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; exports[`Angular with Import Mapper Tests > svelte > Typescript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], bootstrap: [SomeOtherComponent], }) export class MyComponentModule {} " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/angular.signals.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Angular signals > jsx > Javascript Test > Advanced 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", standalone: true, imports: [CommonModule], template: \`
@for (person of names();track i;let i = $index) {
{{i}} : {{person}}
} @for (person of names();track i;let i = $index) { {{person}} } @for (_ of names();track i;let i = $index) {
} @for (_ of Array.from({ length: 10 });track ee;let ee = $index) {
{{ee}}
} @for (_ of Array.from({ length: 10 });track i;let i = $index) {

{{index}}

} @for (person of names();track index;let index = $index) { {{person}} {{index}} } @for (person of Array.from({ length: 10 });track count;let count = $index) { {{person}} {{count}} } @for (person of names();track i;let i = $index) { {{person}} {{i}} } @for (person of Array.from({ length: 10 });track index;let index = $index) { {{person}} {{index}} }
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicForShowComponent { name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > AdvancedRef 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-ref-component\\", standalone: true, imports: [CommonModule], template: \`
@if(showInput()){ } Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: \`:host { display: contents; } .input { color: red; } \`, }) export class MyBasicRefComponent { showInput: InputSignal = input(); inputRef = viewChild(\\"inputRef\\"); inputNoArgRef = viewChild(\\"inputNoArgRef\\"); name = signal(\\"PatrickJS\\"); onBlur() { // Maintain focus this.inputRef()?.nativeElement.focus(); } lowerCaseName() { return this.name().toLowerCase(); } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.inputRef(); this.inputNoArgRef(); // --- console.log(\\"Received an update\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > Basic 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { protected readonly DEFAULT_VALUES = DEFAULT_VALUES; name = signal(\\"Steve\\"); age = signal(1); sports = signal([\\"\\"]); underscore_fn_name() { return \\"bar\\"; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > Basic 2`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", standalone: true, imports: [CommonModule], template: \`
@for (person of names();track i;let i = $index) { @if(person === name()){ Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! } }
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicForShowComponent { name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > Basic Context 1`] = ` "import { Component, effect, signal, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{myService.method('hello') + name()}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements AfterViewInit { name = signal(\\"PatrickJS\\"); onChange() { const change = this.myService.method(\\"change\\"); console.log(change); } constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } " `; exports[`Angular signals > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { Component, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOnMountUpdateComponent implements AfterViewInit { bye: InputSignal = input(); hi: InputSignal = input(); name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} ngOnInit() { this.name.set(\\"PatrickJS onInit\\" + this.hi()); } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.name.set(\\"PatrickJS onMount\\" + this.bye()); } } } " `; exports[`Angular signals > jsx > Javascript Test > Basic Outputs 1`] = ` "import { Component, output, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOutputsComponent implements AfterViewInit { message: InputSignal = input(); messageChange = output(); event = output(); name = signal(\\"PatrickJS\\"); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.messageChange.emit(this.name()); this.event.emit(this.message()); } } } " `; exports[`Angular signals > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Component, output, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOutputsComponent implements AfterViewInit { message: InputSignal = input(); messageChange = output(); event = output(); name = signal(\\"PatrickJS\\"); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.messageChange.emit(this.name()); this.event.emit(this.message()); } } } " `; exports[`Angular signals > jsx > Javascript Test > BasicAttribute 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { MyBooleanAttributeComponent } from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", standalone: true, imports: [CommonModule, MyBooleanAttributeComponent], template: \`
@if(children()){ {{type()}} }
\`, styles: \`:host { display: contents; }\`, }) export class MyBooleanAttribute { type: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { MyBasicOnMountUpdateComponent } from \\"./basic-onMount-update.raw\\"; import { MyBasicOutputsComponent } from \\"./basic-outputs.raw\\"; import { MyBasicComponent } from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", standalone: true, imports: [ CommonModule, MyBasicComponent, MyBasicOnMountUpdateComponent, MyBasicOutputsComponent, ], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicChildComponent { name = signal(\\"Steve\\"); dev = signal(\\"PatrickJS\\"); log(message) { console.log(message); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > BasicFor 1`] = ` "import { Component, effect, signal, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-component\\", standalone: true, imports: [CommonModule], template: \`
@for (person of names();track i;let i = $index) { Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! }
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicForComponent implements AfterViewInit { name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } " `; exports[`Angular signals > jsx > Javascript Test > BasicRef 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-ref-component\\", standalone: true, imports: [CommonModule], template: \`
@if(showInput()){ } Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: \`:host { display: contents; } .input { color: red; } \`, }) export class MyBasicRefComponent { showInput: InputSignal = input(); inputRef = viewChild(\\"inputRef\\"); inputNoArgRef = viewChild(\\"inputNoArgRef\\"); name = signal(\\"PatrickJS\\"); onBlur() { // Maintain focus this.inputRef()?.nativeElement?.focus(); } lowerCaseName() { return this.name().toLowerCase(); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicRefAssignmentComponent { handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", standalone: true, imports: [CommonModule], template: \`

Now: {{count()}} , before: {{prevCount}}

\`, styles: \`:host { display: contents; }\`, }) export class MyPreviousComponent { count = signal(0); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.count(); // --- this._prevCount = this.count(); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > Button 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`
@if(link()){ {{text()}} } @if(!link()){ }
\`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input(); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input(); text: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Columns 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"column\\", standalone: true, imports: [CommonModule], template: \`
@for (column of columns();track index;let index = $index) {
{{column.content}} {{index}}
}
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, }) export class Column { columns: InputSignal = input(); space: InputSignal = input(); getColumns() { return this.columns() || []; } getGutterSize() { return typeof this.space() === \\"number\\" ? this.space() || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"content-slot-code\\", standalone: true, imports: [CommonModule], template: \`

\`, styles: \`:host { display: contents; }\`, }) export class ContentSlotCode { slotTesting: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, computed, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", standalone: true, imports: [CommonModule], template: \`@if(slotReference()){
@if(showContent() && slotContent()){ {{content()}} }

} \`, styles: \`:host { display: contents; }\`, }) export class ContentSlotJsxCode implements OnDestroy { slotContent: InputSignal = input(defaultProps[\\"slotContent\\"]); slotReference: InputSignal = input(defaultProps[\\"slotReference\\"]); attributes: InputSignal = input(); content: InputSignal = input(defaultProps[\\"content\\"]); elRef0 = viewChild(\\"elRef0\\"); name = signal(\\"king\\"); showContent = signal(false); _listenerFns = new Map(); cls = computed(() => { return this.slotContent() && this.children() ? \`\${this.name()}-content\` : \\"\\"; }); show() { this.slotContent() ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > CustomCode 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class CustomCode implements AfterViewInit { replaceNodes: InputSignal = input(); code: InputSignal = input(); elem = viewChild(\\"elem\\"); scriptsInserted = signal([]); scriptsRun = signal([]); findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem()?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem()?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted().includes(script.src)) { continue; } this.scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun().includes(script.innerText)) { continue; } try { this.scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Embed 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class CustomCode implements AfterViewInit { replaceNodes: InputSignal = input(); code: InputSignal = input(); elem = viewChild(\\"elem\\"); scriptsInserted = signal([]); scriptsRun = signal([]); findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem()?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem()?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted().includes(script.src)) { continue; } this.scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun().includes(script.innerText)) { continue; } try { this.scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Form 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, computed, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", standalone: true, imports: [CommonModule, BuilderBlockComponent, BuilderBlocks], template: \`
@if(builderBlock() && builderBlock().children){ @for (block of builderBlock()?.children;track trackByBlock0(index, block);let index = $index) { } } @if(submissionState() === 'error'){ } @if(submissionState() === 'sending'){ } @if(submissionState() === 'error' && responseData()){
        {{JSON.stringify(responseData(), null, 2)}}
} @if(submissionState() === 'success'){ }
\`, styles: \`:host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, }) export class FormComponent implements OnDestroy { previewState: InputSignal = input(); sendWithJs: InputSignal = input(); sendSubmissionsTo: InputSignal = input(); action: InputSignal = input(); customHeaders: InputSignal = input(); contentType: InputSignal = input(); sendSubmissionsToEmail: InputSignal = input(); name: InputSignal = input(); method: InputSignal = input(); errorMessagePath: InputSignal = input(); resetFormOnSubmit: InputSignal = input(); successUrl: InputSignal = input(); validate: InputSignal = input(); attributes: InputSignal = input(); builderBlock: InputSignal = input(); errorMessage: InputSignal = input(); sendingMessage: InputSignal = input(); successMessage: InputSignal = input(); formRef = viewChild(\\"formRef\\"); elRef0 = viewChild(\\"elRef0\\"); formState = signal(\\"unsubmitted\\"); responseData = signal(null); formErrorMessage = signal(\\"\\"); _listenerFns = new Map(); submissionState = computed(() => { return (Builder.isEditing && this.previewState()) || this.formState(); }); onSubmit(event) { const sendWithJs = this.sendWithJs() || this.sendSubmissionsTo() === \\"email\\"; if (this.sendSubmissionsTo() === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action() || this.sendSubmissionsTo() === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders() || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType(); if (this.sendSubmissionsTo() === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action()?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef()?.nativeElement) { this.formRef()?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState.set(\\"sending\\"); const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail() || \\"\\" )}&name=\${encodeURIComponent(this.name() || \\"\\")}\`; fetch( this.sendSubmissionsTo() === \\"email\\" ? formUrl : this.action(), /* TODO: throw error if no action URL */ { body, headers, method: this.method() || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath()) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath()); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage.set(message); } } this.responseData.set(body); this.formState.set(res.ok ? \\"success\\" : \\"error\\"); if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef()?.nativeElement) { this.formRef()?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit() !== false) { this.formRef()?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl()) { if (this.formRef()?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl(), }, }); this.formRef()?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl(); } } else { location.href = this.successUrl(); } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef()?.nativeElement) { this.formRef()?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData.set(err); this.formState.set(\\"error\\"); } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index: number, block: any) { return block.id; } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Image 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, OnDestroy, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"image\\", standalone: true, imports: [CommonModule], template: \`
@if(!useLazyLoading() || load()){ }
\`, styles: \`:host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, }) export class Image implements AfterViewInit, OnDestroy { lazy: InputSignal = input(); altText: InputSignal = input(); _class: InputSignal = input(); image: InputSignal = input(); srcset: InputSignal = input(); sizes: InputSignal = input(); pictureRef = viewChild(\\"pictureRef\\"); scrollListener = signal(null); imageLoaded = signal(false); load = signal(false); setLoaded() { this.imageLoaded.set(true); } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy() && this.isBrowser(); } isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); } constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef()?.nativeElement) { const rect = this.pictureRef()?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load.set(true); this.scrollListener.set(null); window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener.set(listener); window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener()) { window.removeEventListener(\\"scroll\\", this.scrollListener()); } } } " `; exports[`Angular signals > jsx > Javascript Test > Image State 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"img-state-component\\", standalone: true, imports: [CommonModule], template: \`
@for (item of images();track itemIndex;let itemIndex = $index) { }
\`, styles: \`:host { display: contents; }\`, }) export class ImgStateComponent { canShow = signal(true); images = signal([\\"http://example.com/qwik.png\\"]); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > Img 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class ImgComponent implements OnDestroy { protected readonly Builder = Builder; backgroundSize: InputSignal = input(); backgroundPosition: InputSignal = input(); attributes: InputSignal = input(); imgSrc: InputSignal = input(); altText: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Input 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, output, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class FormInputComponent implements OnDestroy { protected readonly Builder = Builder; attributes: InputSignal = input(); defaultValue: InputSignal = input(); placeholder: InputSignal = input(); type: InputSignal = input(); name: InputSignal = input(); value: InputSignal = input(); required: InputSignal = input(); change = output(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > InputParent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { FormInputComponent } from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", standalone: true, imports: [CommonModule, FormInputComponent], template: \` \`, styles: \`:host { display: contents; }\`, }) export class Stepper { handleChange(value) { console.log(value); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > NestedStore 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-store\\", standalone: true, imports: [CommonModule], template: \`
Test

Message

\`, styles: \`:host { display: contents; }\`, }) export class NestedStore { _id = signal(\\"abc\\"); _messageId = signal(this._id() + \\"-message\\"); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > RawText 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"raw-text\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class RawText { attributes: InputSignal = input(); text: InputSignal = input(); constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular signals > jsx > Javascript Test > Section 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"section-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class SectionComponent implements OnDestroy { attributes: InputSignal = input(); maxWidth: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Section 2`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"section-state-component\\", standalone: true, imports: [CommonModule], template: \`@if(max()){ @for (item of items();track i;let i = $index) {
} } \`, styles: \`:host { display: contents; }\`, }) export class SectionStateComponent implements OnDestroy { attributes: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); max = signal(42); items = signal([42]); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Select 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SelectComponent implements OnDestroy { protected readonly Builder = Builder; attributes: InputSignal = input(); value: InputSignal = input(); defaultValue: InputSignal = input(); name: InputSignal = input(); options: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > SlotDefault 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule], template: \`
Default content
\`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > SlotHtml 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule, ContentSlotCode], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > SlotJsx 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule, ContentSlotCode], template: \`
Hello
\\"> \`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > SlotNamed 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule], template: \`
Default left Default Child
\`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > Stamped.io 1`] = ` "import { Component, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", standalone: true, imports: [CommonModule], template: \`
@if(showReviewPrompt() || 'asdf'){ } @for (review of reviews();track trackByReview0(index, review);let index = $index) {
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
}
\`, styles: \`:host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, }) export class SmileReviews implements AfterViewInit { apiKey: InputSignal = input(); productId: InputSignal = input(); reviews = signal([]); name = signal(\\"test\\"); showReviewPrompt = signal(false); kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index: number, review: any) { return review.id; } constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey() || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId() || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews.set(data.data); }); } } } " `; exports[`Angular signals > jsx > Javascript Test > StoreComment 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", standalone: true, imports: [CommonModule], template: \`{{foo()}} \`, styles: \`:host { display: contents; }\`, }) export class StringLiteralStore { foo = signal(true); bar() {} constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`{{foo(errors())}} \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { errors = signal({}); foo(errors) { return errors; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > StoreWithState 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`{{bar()}} \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { foo = signal(false); bar() { return this.foo(); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > Submit 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"submit-button\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SubmitButton implements OnDestroy { attributes: InputSignal = input(); text: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > Text 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", standalone: true, imports: [CommonModule], template: \`
my name

')\\" >
\`, styles: \`:host { display: contents; }\`, }) export class Text { text: InputSignal = input(); content: InputSignal = input(); name = signal(\\"Decadef20\\"); constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular signals > jsx > Javascript Test > Textarea 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"textarea\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class Textarea implements OnDestroy { attributes: InputSignal = input(); placeholder: InputSignal = input(); name: InputSignal = input(); value: InputSignal = input(); defaultValue: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { Component, output, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", standalone: true, imports: [CommonModule], template: \`
Test
\`, styles: \`:host { display: contents; }\`, }) export class UseValueAndFnFromStore { change = output(); _id = signal(\\"abc\\"); _active = signal(false); _do(id) { this._active.set(!!id); if (this.change) { this.change.emit(this._active()); } } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { if (this._do.bind(this)) { this._do(this._id()); } }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > Video 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, computed, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"video\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class Video implements OnDestroy { attributes: InputSignal = input(); fit: InputSignal = input(); position: InputSignal = input(); video: InputSignal = input(); posterImage: InputSignal = input(); autoPlay: InputSignal = input(); muted: InputSignal = input(); controls: InputSignal = input(); loop: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); objSpread_style_hq5qrw = computed(() => { return { width: \\"100%\\", height: \\"100%\\", ...this.attributes()?.style, objectFit: this.fit(), objectPosition: this.position(), // Hack to get object fit to work as expected and // not have the video overflow borderRadius: 1, }; }); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > allSpread 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent implements OnDestroy { attributes: InputSignal = input(); accessHere: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); attrsUsingUseState = signal({ hello: \\"world\\", }); properties = signal({ style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }); specifics = signal({ someSpecificState: \\"specific\\", }); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes( this.elRef0()?.nativeElement, this.attrsUsingUseState() ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.properties()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef0()?.nativeElement, { someOtherAttrs: this.accessHere(), someStateAttrs: this.specifics(), }); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0()?.nativeElement, this.attrsUsingUseState() ); this.setAttributes(this.elRef0()?.nativeElement, this.properties()); this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef0()?.nativeElement, { someOtherAttrs: this.accessHere(), someStateAttrs: this.specifics(), }); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"steve\\"); setName(value) { this.name.set(value); } updateNameWithArrowFn(value) { this.name.set(value); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > basicForFragment 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-for-fragment\\", standalone: true, imports: [CommonModule], template: \`
@for (option of ['a', 'b', 'c'];track trackByOption0(i, option);let i = $index) {
{{option}}
} @for (option of ['a', 'b', 'c'];track trackByOption1(i, option);let i = $index) {
{{option}}
}
\`, styles: \`:host { display: contents; }\`, }) export class BasicForFragment { id = signal(\\"xyz\\"); trackByOption0(_: number, option: any) { return \`key-\${option}\`; } trackByOption1(_: number, option: any) { return \`\${this.id()}-\${option}\`; } trackByOption2(_: number, option: any) { return \`\${this.id()}-\${option}\`; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicForNoTagRefComponent { myContent = signal([]); tagnamegetterTemplateRef = viewChild>( \\"tagnamegetterTemplate\\" ); tagTemplateRef = viewChild>(\\"tagTemplate\\"); tagnameTemplateRef = viewChild>(\\"tagnameTemplate\\"); iconTemplateRef = viewChild>(\\"iconTemplate\\"); actions: InputSignal = input(); name = signal(\\"VincentW\\"); TagName = signal(\\"div\\"); tag = signal(\\"span\\"); TagNameGetter = computed(() => { return \\"span\\"; }); constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView(this.tagnamegetterTemplateRef()) .rootNodes, this.viewContainer.createEmbeddedView(this.tagTemplateRef()).rootNodes, this.viewContainer.createEmbeddedView(this.tagnameTemplateRef()) .rootNodes, this.viewContainer.createEmbeddedView(this.iconTemplateRef()).rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Javascript Test > basicForwardRef 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, InputSignal } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'my-basic-forward-ref-component',standalone: true,imports: [CommonModule],template: \`
\`,styles: \`:host { display: contents; } .input { color: red; } \` }) export class MyBasicForwardRefComponent { inputRef: InputSignal = input() props.inputRef = viewChild(\\"props.inputRef\\") name= signal('PatrickJS') constructor() { } }" `; exports[`Angular signals > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` " /** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { Component, viewChild, ElementRef, input, effect, signal, InputSignal } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'my-basic-forward-ref-component',standalone: true,imports: [CommonModule],template: \`
\`,styles: \`:host { display: contents; } .input { color: red; } \` }) export class MyBasicForwardRefComponent { inputRef: InputSignal = input() props.inputRef = viewChild(\\"props.inputRef\\") name= signal('PatrickJS') constructor() { } }" `; exports[`Angular signals > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOnUpdateReturnComponent { name = signal(\\"PatrickJS\\"); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.name(); // --- const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name.set(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Component, viewChild, ElementRef, effect, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class BasicRefAttributePassingComponent implements AfterViewInit { buttonRef = viewChild(\\"buttonRef\\"); _root = viewChild(\\"_root\\"); constructor() {} /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { const element: HTMLElement | null = this._root()?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); console.log(\\"onMount\\"); } } } " `; exports[`Angular signals > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Component, viewChild, ElementRef, effect, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class BasicRefAttributePassingCustomRefComponent implements AfterViewInit { buttonRef = viewChild(\\"buttonRef\\"); constructor() {} /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { const element: HTMLElement | null = this.buttonRef()?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } } " `; exports[`Angular signals > jsx > Javascript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { Component, input, effect, ChangeDetectionStrategy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{count()}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: \`:host { display: contents; }\`, }) export class MyComponent { count: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { MyComp } from \\"./my-component.lite\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule, MyComp], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > class + css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > className + css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > className 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"class-name-code\\", standalone: true, imports: [CommonModule], template: \`
Without Binding
With binding
\`, styles: \`:host { display: contents; }\`, }) export class ClassNameCode { bindings = signal(\\"a binding\\"); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > classState 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { classState = signal(\\"testClassName\\"); styleState = signal({ color: \\"red\\", }); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{type()}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { className: InputSignal = input(); type: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"complex-meta-raw\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class ComplexMetaRaw { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > componentWithContext 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", standalone: true, imports: [CommonModule], template: \`{{foo.value}} \`, styles: \`:host { display: contents; }\`, }) export class ComponentWithContext { content: InputSignal = input(); constructor(public foo: Context1) {} } " `; exports[`Angular signals > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", standalone: true, imports: [CommonModule], template: \`{{foo.value}}
other
\`, styles: \`:host { display: contents; }\`, }) export class ComponentWithContext { content: InputSignal = input(); constructor(public foo: Context1) {} } " `; exports[`Angular signals > jsx > Javascript Test > contentState 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import BuilderContext from \\"@dummy/context.js\\"; @Component({ selector: \\"render-content\\", standalone: true, imports: [CommonModule], template: \`
setting context
\`, styles: \`:host { display: contents; }\`, }) export class RenderContent { content: InputSignal = input(); customComponents: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"not-my-component\\", standalone: true, imports: [CommonModule], template: \`My selector shouldn't be my-component! \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > defaultProps 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, output, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`
@if(link()){ {{text()}} } @if(!link()){ }
\`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input(defaultProps[\\"link\\"]); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input( defaultProps[\\"openLinkInNewTab\\"] ); text: InputSignal = input(defaultProps[\\"text\\"]); buttonText: InputSignal = input(); click = output(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, output, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`
@if(link()){ {{text()}} } @if(!link()){ }
\`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input(defaultProps[\\"link\\"]); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input( defaultProps[\\"openLinkInNewTab\\"] ); text: InputSignal = input(defaultProps[\\"text\\"]); click = output(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name() || DEFAULT_VALUES.name}}
\`, styles: \`:host { display: contents; }\`, }) export class ComponentWithTypes { protected readonly DEFAULT_VALUES = DEFAULT_VALUES; name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > dynamicComponent 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` hello \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { myContent = signal([]); objTemplateRef = viewChild>(\\"objTemplate\\"); attributes: InputSignal = input(); something: InputSignal = input(); obj = signal({ name: \\"foo\\", Component: FooComponent, }); dynamicProps_37i2pk = computed(() => { return { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes(), ...this.something(), }; }); onClick() { console.log(\\"hello\\"); } constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView(this.objTemplateRef()).rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Javascript Test > dynamicComponentWithEventArg 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` hello \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { myContent = signal([]); componentTemplateRef = viewChild>(\\"componentTemplate\\"); attributes: InputSignal = input(); something: InputSignal = input(); Component = signal(HelloComponent); dynamicProps_37i2pk = computed(() => { return { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes(), ...this.something(), }; }); onClick(event) { console.log(\\"hello\\", event); } constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView(this.componentTemplateRef()) .rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"event-input-and-change\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .input { color: red; } \`, }) export class EventInputAndChange { name = signal(\\"Steve\\"); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > eventProps 1`] = ` "import { Component, output, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"event-props-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class EventPropsComponent { getVoid = output(); enter = output(); pass = output(); handleClick() { if (this.getVoid) { this.getVoid.emit(); } if (this.enter) { console.log(this.enter.emit()); } if (this.pass) { this.pass.emit(\\"test\\"); } } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > expressionState 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{refToUse()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { componentRef: InputSignal = input(); refToUse = signal(undefined); constructor() {} ngOnInit() { this.refToUse.set( !(this.componentRef() instanceof Function) ? this.componentRef() : null ); } } " `; exports[`Angular signals > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"figma-button\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class FigmaButton { icon: InputSignal = input(); interactiveState: InputSignal = input(); width: InputSignal = input(); size: InputSignal = input(); label: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > functionProps 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > getterState 1`] = ` "import { Component, input, effect, computed, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`

{{foo2()}}

{{bar()}}

{{baz(1)}}

\`, styles: \`:host { display: contents; }\`, }) export class Button { foo: InputSignal = input(); foo2 = computed(() => { return this.foo() + \\"foo\\"; }); bar = computed(() => { return \\"bar\\"; }); baz(i) { return i + this.foo2().length; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > import types 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { RenderBlock } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", standalone: true, imports: [CommonModule, RenderBlock], template: \` \`, styles: \`:host { display: contents; }\`, }) export class RenderContent { renderContentProps: InputSignal = input(); getRenderContentProps(block, index) { return { block: block, index: index, }; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > importRaw 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-import-component\\", standalone: true, imports: [CommonModule], template: \`
Testing which imports get excluded!
\`, styles: \`:host { display: contents; }\`, }) export class MyImportComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > layerName 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-layer-name-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .layer-name { padding: 10px; } \`, }) export class MyLayerNameComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MultipleOnUpdate { constructor() { if (typeof window !== \\"undefined\\") { effect( () => { console.log(\\"Runs on every update/rerender\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { console.log(\\"Runs on every update/rerender as well\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MultipleOnUpdateWithDeps { a = signal(\\"a\\"); b = signal(\\"b\\"); c = signal(\\"c\\"); d = signal(\\"d\\"); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.a(); this.b(); // --- console.log(\\"Runs when a or b changes\\", this.a(), this.b()); if (this.a() === \\"a\\") { this.a.set(\\"b\\"); } }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.c(); this.d(); // --- console.log(\\"Runs when c or d changes\\", this.c(), this.d()); if (this.a() === \\"a\\") { this.a.set(\\"b\\"); } }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > multipleSpreads 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, effect, signal, OnDestroy, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements OnDestroy { elRef0 = viewChild(\\"elRef0\\"); attrs = signal({ hello: \\"world\\", }); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attrs()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attrs()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { disabled: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > nestedShow 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-show\\", standalone: true, imports: [CommonModule], template: \`@if(conditionA()){ @if(!conditionB()){
if condition A and condition B
}@else{
else-condition-B
} }@else{
else-condition-A
} \`, styles: \`:host { display: contents; }\`, }) export class NestedShow { conditionA: InputSignal = input(); conditionB: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > nestedStyles 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-styles\\", standalone: true, imports: [CommonModule], template: \`
Hello world
\`, styles: \`:host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, }) export class NestedStyles { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", standalone: true, imports: [CommonModule], template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: \`:host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, }) export class MyNormalizedLayerNamesComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > onEvent 1`] = ` "import { Component, viewChild, ElementRef, effect, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"embed\\", standalone: true, imports: [CommonModule], template: \`
Test
\`, styles: \`:host { display: contents; }\`, }) export class Embed implements AfterViewInit { elem = viewChild(\\"elem\\"); foo(event) { console.log(\\"test2\\"); } constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.elem()?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } " `; exports[`Angular signals > jsx > Javascript Test > onInit & onMount 1`] = ` "import { Component, effect, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnInit implements AfterViewInit { constructor() {} ngOnInit() { console.log(\\"onInit\\"); } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } " `; exports[`Angular signals > jsx > Javascript Test > onInit 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", standalone: true, imports: [CommonModule], template: \`
Default name defined by parent {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class OnInit { name: InputSignal = input(); name = signal(\\"\\"); constructor() {} ngOnInit() { this.name.set(defaultValues.name || this.name()); console.log(\\"set defaults with props\\"); } } " `; exports[`Angular signals > jsx > Javascript Test > onInitPlain 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init-plain\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnInitPlain { constructor() {} ngOnInit() { console.log(\\"onInit\\"); } } " `; exports[`Angular signals > jsx > Javascript Test > onMount 1`] = ` "import { Component, effect, OnDestroy, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class Comp implements AfterViewInit, OnDestroy { constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } " `; exports[`Angular signals > jsx > Javascript Test > onMountMultiple 1`] = ` "import { Component, effect, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class Comp implements AfterViewInit { constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); console.log(\\"Another one runs on Mount\\"); console.log(\\"SSR runs on Mount\\"); } } } " `; exports[`Angular signals > jsx > Javascript Test > onUpdate 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnUpdate { constructor() { if (typeof window !== \\"undefined\\") { effect( () => { console.log(\\"Runs on every update/rerender\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update-with-deps\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnUpdateWithDeps { size: InputSignal = input(); a = signal(\\"a\\"); b = signal(\\"b\\"); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.a(); this.b(); this.size(); // --- console.log( \\"Runs when a, b or size changes\\", this.a(), this.b(), this.size() ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"Steve\\"); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > preserveTyping 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > prettierInline 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"prettier-inline\\", standalone: true, imports: [CommonModule], template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: \`:host { display: contents; }\`, }) export class PrettierInline { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > propsDestructure 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{type()}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { type: InputSignal = input(); name = signal(\\"Decadef20\\"); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > propsInterface 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > propsType 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnUpdate { foo(params) {} bar() {} zoo() { const params = { cb: this.bar.bind(this), }; } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { this.foo({ someOption: this.bar.bind(this), }); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > renderBlock 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import { BlockStyles } from \\"./block-styles.lite\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component.js\\"; import { RenderRepeatedBlock } from \\"./render-repeated-block.lite\\"; @Component({ selector: \\"render-block\\", standalone: true, imports: [CommonModule, RenderRepeatedBlock, RenderBlock, BlockStyles], template: \`@if(shouldWrap()){ @if(isEmptyHtmlElement(tag())){ } @if(!isEmptyHtmlElement(tag()) && repeatItemData()){ @for (data of repeatItemData();track trackByData0(index, data);let index = $index) { } } @if(!isEmptyHtmlElement(tag()) && !repeatItemData()){ } }@else{ } \`, styles: \`:host { display: contents; }\`, }) export class RenderBlock { protected readonly isEmptyHtmlElement = isEmptyHtmlElement; myContent = signal([]); rendercomponenttagTemplateRef = viewChild>( \\"rendercomponenttagTemplate\\" ); tagTemplateRef = viewChild>(\\"tagTemplate\\"); block: InputSignal = input(); context: InputSignal = input(); component = computed(() => { const componentName = getProcessedBlock({ block: this.block(), state: this.context().state, context: this.context().context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context().registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); tag = computed(() => { return getBlockTag(this.useBlock()); }); useBlock = computed(() => { return this.repeatItemData() ? this.block() : getProcessedBlock({ block: this.block(), state: this.context().state, context: this.context().context, shouldEvaluateBindings: true, }); }); actions = computed(() => { return getBlockActions({ block: this.useBlock(), state: this.context().state, context: this.context().context, }); }); attributes = computed(() => { const blockProperties = getBlockProperties(this.useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock(), context: this.context(), blockStyles: blockProperties.style, }), } : {}), }; }); shouldWrap = computed(() => { return !this.component()?.noWrap; }); renderComponentProps = computed(() => { return { blockChildren: this.useChildren(), componentRef: this.component()?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap() ? {} : { attributes: { ...this.attributes(), ...this.actions() }, }), customBreakpoints: this.childrenContext()?.content?.meta?.breakpoints, }, context: this.childrenContext(), }; }); useChildren = computed(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock().children ?? []; }); childrenWithoutParentComponent = computed(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component()?.component && !this.repeatItemData(); return shouldRenderChildrenOutsideRef ? this.useChildren() : []; }); repeatItemData = computed(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block(); if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context().state, context: this.context().context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context(), state: { ...this.context().state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); inheritedTextStyles = computed(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock(), context: this.context(), blockStyles: this.attributes().style, }); return extractTextStyles(styles); }); childrenContext = computed(() => { return { apiKey: this.context().apiKey, state: this.context().state, content: this.context().content, context: this.context().context, registeredComponents: this.context().registeredComponents, inheritedStyles: this.inheritedTextStyles(), }; }); renderComponentTag = computed(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); dynamicProps_ya7n4j = computed(() => { return { ...this.attributes(), ...this.actions() }; }); dynamicProps_emn6k5 = computed(() => { return { ...this.renderComponentProps() }; }); trackByData0(index: number, data: any) { return index; } trackByChild1(_: number, child: any) { return \\"render-block-\\" + child.id; } trackByChild2(_: number, child: any) { return \\"block-style-\\" + child.id; } constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView( this.rendercomponenttagTemplateRef() ).rootNodes, this.viewContainer.createEmbeddedView(this.tagTemplateRef()).rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Javascript Test > renderContentExample 1`] = ` "import { Component, input, effect, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import { RenderBlocks } from \\"@dummy/RenderBlocks.lite.tsx\\"; @Component({ selector: \\"render-content\\", standalone: true, imports: [CommonModule, RenderBlocks], template: \`
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: columns; } \`, }) export class RenderContent implements AfterViewInit { protected readonly trackClick = trackClick; customComponents: InputSignal = input(); content: InputSignal = input(); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.content(); // --- dispatchNewContentToVisualEditor(this.content()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents()); } } } " `; exports[`Angular signals > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`@if(link()){ {{text()}} } @if(!link()){ } \`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input(); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input(); text: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > rootShow 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"render-styles\\", standalone: true, imports: [CommonModule], template: \`@if(foo() === 'bar'){
Bar
}@else{
Foo
} \`, styles: \`:host { display: contents; }\`, }) export class RenderStyles { foo: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { html: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > self-referencing component 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, MyComponent], template: \`
{{name()}} @if(name() === 'Batman'){ }
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, MyComponent], template: \`
{{name()}} @if(name() === 'Batman'){
Wayne
}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > setState 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"set-state\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class SetState { n = signal([\\"123\\"]); someFn() { this.n.update((n) => { n[0] = \\"123\\"; return n; }); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > showExpressions 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"show-with-other-values\\", standalone: true, imports: [CommonModule], template: \`
@if(conditionA()){ Content0 }@else{ ContentA } @if(conditionA()){ ContentA } @if(conditionA()){ }@else{ ContentA } @if(conditionA()){ ContentB }@else{ {{undefined}} } @if(conditionA()){ {{undefined}} }@else{ ContentB } @if(conditionA()){ ContentC } @if(conditionA()){ }@else{ ContentC } @if(conditionA()){ ContentD } @if(conditionA()){ }@else{ ContentD } @if(conditionA()){ ContentE }@else{ hello } @if(conditionA()){ hello }@else{ ContentE } @if(conditionA()){ ContentF }@else{ 123 } @if(conditionA()){ 123 }@else{ ContentF } @if(conditionA() === 'Default'){ 4mb }@else{ @if(conditionB() === 'Complete'){ 20mb }@else{ 9mb } } @if(conditionA() === 'Default'){ @if(conditionB() === 'Complete'){ 20mb }@else{ 9mb } }@else{ 4mb } @if(conditionA() === 'Default'){ @if(conditionB() === 'Complete'){
complete
}@else{ 9mb } }@else{ @if(conditionC() === 'Complete'){ dff }@else{
complete else
} }
\`, styles: \`:host { display: contents; }\`, }) export class ShowWithOtherValues { conditionA: InputSignal = input(); conditionB: InputSignal = input(); conditionC: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > showWithFor 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-show\\", standalone: true, imports: [CommonModule], template: \`@if(conditionA()){ @for (item of items();track trackByItem0(idx, item);let idx = $index) {
{{item}}
} }@else{
else-condition-A
} \`, styles: \`:host { display: contents; }\`, }) export class NestedShow { conditionA: InputSignal = input(); items: InputSignal = input(); trackByItem0(idx: number, item: any) { return idx; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"show-with-other-values\\", standalone: true, imports: [CommonModule], template: \`
@if(conditionA()){ ContentA } @if(conditionA()){ ContentB }@else{ {{undefined}} } @if(conditionA()){ ContentC } @if(conditionA()){ ContentD } @if(conditionA()){ ContentE }@else{ hello } @if(conditionA()){ ContentF }@else{ 123 }
\`, styles: \`:host { display: contents; }\`, }) export class ShowWithOtherValues { conditionA: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > showWithRootText 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"show-root-text\\", standalone: true, imports: [CommonModule], template: \`@if(conditionA()){ ContentA }@else{
else-condition-A
} \`, styles: \`:host { display: contents; }\`, }) export class ShowRootText { conditionA: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { Component, viewChild, ElementRef, model, output, input, effect, signal, InputSignal, ModelSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SignalsTestComponent { testInput: InputSignal = input(defaultProps[\\"testInput\\"]); label: InputSignal = input.required(defaultProps[\\"label\\"]); disabled: ModelSignal = model(); testOutput = output(); buttonRef = viewChild(\\"buttonRef\\"); _counter = signal(0); _innerText = signal(\\"a\\"); handleOutput() { this._counter.update((_counter) => { _counter++; return _counter; }); this._innerText.set(\\"b\\"); console.log(this.testInput(), this._counter()); if (this.testOutput) { this.testOutput.emit(); } } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this._counter(); this.buttonRef(); // --- console.log(this._counter(), this.buttonRef()?.nativeElement); this.buttonRef()?.nativeElement?.setAttribute( \\"data-counter\\", this._counter().toString() ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{id()}} {{foo().value.bar.baz}}
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { id: InputSignal = input(); foo: InputSignal = input(); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.id(); // --- console.log(\\"props.id changed\\", this.id()); console.log( \\"props.foo.value.bar.baz changed\\", this.foo().value.bar.baz ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Javascript Test > spreadAttrs 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, effect, signal, OnDestroy, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements OnDestroy { elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, attrs); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, attrs); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements OnDestroy { nested: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.nested()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.nested()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Javascript Test > spreadProps 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > stateInit 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{asfas()}}
{{someCompute()}}
{{someOtherVal()}}
{{sf()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { val: InputSignal = input(); asfas = signal(\\"asga\\"); someCompute = signal(this.add(1, 2)); someOtherVal = signal(undefined); sf = signal(undefined); add(a, b) { return a + b; } subtract() { return this.someCompute() - this.someOtherVal(); } constructor() {} ngOnInit() { this.sf.set(this.add(this.val(), 34)); this.someOtherVal.set(this.val()); } } " `; exports[`Angular signals > jsx > Javascript Test > stateInitSequence 1`] = ` "import { Component, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, Comp], template: \`{{val()}} \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { value: InputSignal = input(); val = signal(undefined); objSpread_val_yy75n1 = computed(() => { return { ...this.val() }; }); constructor() {} ngOnInit() { this.val.set(this.value()); } } " `; exports[`Angular signals > jsx > Javascript Test > store-async-function 1`] = ` "import { Component, effect } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'string-literal-store',standalone: true,imports: [CommonModule],template: \`
\`,styles: \`:host { display: contents; }\` }) export class StringLiteralStore { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } constructor() { } }" `; exports[`Angular signals > jsx > Javascript Test > string-literal-store 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", standalone: true, imports: [CommonModule], template: \`
{{foo()}}
\`, styles: \`:host { display: contents; }\`, }) export class StringLiteralStore { foo = signal(123); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "import { Component, effect, signal } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'string-literal-store',standalone: true,imports: [CommonModule],template: \`
{{'foo-bar'}}
\`,styles: \`:host { display: contents; }\` }) export class StringLiteralStore { foo-bar= signal(123) constructor() { } }" `; exports[`Angular signals > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"style-prop-class-and-css\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class StylePropClassAndCss { attributes: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > subComponent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Foo } from \\"./foo-sub-component.lite\\"; @Component({ selector: \\"sub-component\\", standalone: true, imports: [CommonModule, Foo], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SubComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > svgComponent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"svg-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SvgComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > twoForsTrackBy 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
@for (item of items();track trackByItem0(i, item);let i = $index) {
{{item}}
} @for (item of items();track trackByItem1(i, item);let i = $index) {
{{item}}
}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { items = signal([1, 2, 3]); trackByItem0(_: number, item: any) { return item; } trackByItem1(_: number, item: any) { return item; } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > typeDependency 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-dependency\\", standalone: true, imports: [CommonModule], template: \`
{{foo()}}
\`, styles: \`:host { display: contents; }\`, }) export class TypeDependency { foo: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > typeExternalProps 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-external-props\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}} !
\`, styles: \`:host { display: contents; }\`, }) export class TypeExternalProps { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > typeExternalStore 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-external-store\\", standalone: true, imports: [CommonModule], template: \`
Hello {{_name()}} !
\`, styles: \`:host { display: contents; }\`, }) export class TypeExternalStore { _name = signal(\\"test\\"); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > typeGetterStore 1`] = ` "import { Component, effect, signal, computed } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-getter-store\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}} !
\`, styles: \`:host { display: contents; }\`, }) export class TypeGetterStore { name = signal(\\"test\\"); test = computed(() => { return \\"test\\"; }); getName() { if (this.name() === \\"a\\") { return \\"b\\"; } return this.name(); } constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > use-style 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > use-style-and-css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > useObjectWrapper 1`] = ` "import { Component, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, Comp], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { spreadAttrs: InputSignal = input(); attributes = signal({ id: 1, }); attributes2 = signal({ id2: 1, }); something = signal({ id3: 1, }); objSpread_val1_i10b3b = computed(() => { return { ...this.attributes2() }; }); objSpread_val2_dcdfhf = computed(() => { return { ...this.attributes(), ...this.attributes2() }; }); objSpread_val3_2cisei = computed(() => { return { ...this.something(), anything: \\"hello\\", hello: \\"world\\" }; }); objSpread_val4_wb8314 = computed(() => { return { ...this.attributes(), ...this.something(), anything: [1, 2, 3], hello: \\"hello\\", ...this.attributes2(), }; }); objSpread_val5_1ruo5o = computed(() => { return { ...this.attributes(), ...this.something(), anything: [1, 2, 3], anythingString: [\\"a\\", \\"b\\", \\"c\\"], hello: \\"hello\\", ...this.spreadAttrs(), }; }); constructor() {} } " `; exports[`Angular signals > jsx > Javascript Test > useTarget 1`] = ` "import { Component, effect, signal, computed, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"use-target-component\\", standalone: true, imports: [CommonModule], template: \`
{{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class UseTargetComponent implements AfterViewInit { lastName = signal(\\"bar\\"); foo = signal(\\"bar\\"); name = computed(() => { const prefix = true; return prefix + \\"foo\\"; }); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo()); this.foo.set(\\"bar\\"); } } } " `; exports[`Angular signals > jsx > Javascript Test > webComponent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", standalone: true, imports: [CommonModule], template: \`Slide 1 Slide 2 Slide 3 \`, styles: \`:host { display: contents; }\`, }) export class MyBasicWebComponent { constructor() {} ngOnInit() { register(); } } " `; exports[`Angular signals > jsx > Remove Internal mitosis package 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name = signal(\\"PatrickJS\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > Advanced 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", standalone: true, imports: [CommonModule], template: \`
@for (person of names();track i;let i = $index) {
{{i}} : {{person}}
} @for (person of names();track i;let i = $index) { {{person}} } @for (_ of names();track i;let i = $index) {
} @for (_ of Array.from({ length: 10 });track ee;let ee = $index) {
{{ee}}
} @for (_ of Array.from({ length: 10 });track i;let i = $index) {

{{index}}

} @for (person of names();track index;let index = $index) { {{person}} {{index}} } @for (person of Array.from({ length: 10 });track count;let count = $index) { {{person}} {{count}} } @for (person of names();track i;let i = $index) { {{person}} {{i}} } @for (person of Array.from({ length: 10 });track index;let index = $index) { {{person}} {{index}} }
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicForShowComponent { name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > AdvancedRef 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", standalone: true, imports: [CommonModule], template: \`
@if(showInput()){ } Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: \`:host { display: contents; } .input { color: red; } \`, }) export class MyBasicRefComponent { showInput: InputSignal = input(); inputRef = viewChild(\\"inputRef\\"); inputNoArgRef = viewChild(\\"inputNoArgRef\\"); name = signal(\\"PatrickJS\\"); onBlur() { // Maintain focus this.inputRef()?.nativeElement.focus(); } lowerCaseName() { return this.name().toLowerCase(); } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.inputRef(); this.inputNoArgRef(); // --- console.log(\\"Received an update\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > Basic 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { protected readonly DEFAULT_VALUES = DEFAULT_VALUES; name = signal(\\"Steve\\"); age = signal(1); sports = signal>([\\"\\"]); underscore_fn_name() { return \\"bar\\"; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > Basic 2`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", standalone: true, imports: [CommonModule], template: \`
@for (person of names();track i;let i = $index) { @if(person === name()){ Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! } }
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicForShowComponent { name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > Basic Context 1`] = ` "import { Component, effect, signal, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{myService.method('hello') + name()}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements AfterViewInit { name = signal(\\"PatrickJS\\"); onChange() { const change = this.myService.method(\\"change\\"); console.log(change); } constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } " `; exports[`Angular signals > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { Component, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOnMountUpdateComponent implements AfterViewInit { bye: InputSignal = input(); hi: InputSignal = input(); name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} ngOnInit() { this.name.set(\\"PatrickJS onInit\\" + this.hi()); } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.name.set(\\"PatrickJS onMount\\" + this.bye()); } } } " `; exports[`Angular signals > jsx > Typescript Test > Basic Outputs 1`] = ` "import { Component, output, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOutputsComponent implements AfterViewInit { message: InputSignal = input(); messageChange = output(); event = output(); name = signal(\\"PatrickJS\\"); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.messageChange.emit(this.name()); this.event.emit(this.message()); } } } " `; exports[`Angular signals > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Component, output, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOutputsComponent implements AfterViewInit { message: InputSignal = input(); messageChange = output(); event = output(); name = signal(\\"PatrickJS\\"); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.messageChange.emit(this.name()); this.event.emit(this.message()); } } } " `; exports[`Angular signals > jsx > Typescript Test > BasicAttribute 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { children: any; type: string; }; import { MyBooleanAttributeComponent } from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", standalone: true, imports: [CommonModule, MyBooleanAttributeComponent], template: \`
@if(children()){ {{type()}} }
\`, styles: \`:host { display: contents; }\`, }) export class MyBooleanAttribute { type: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { MyBasicOnMountUpdateComponent } from \\"./basic-onMount-update.raw\\"; import { MyBasicOutputsComponent } from \\"./basic-outputs.raw\\"; import { MyBasicComponent } from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", standalone: true, imports: [ CommonModule, MyBasicComponent, MyBasicOnMountUpdateComponent, MyBasicOutputsComponent, ], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicChildComponent { name = signal(\\"Steve\\"); dev = signal(\\"PatrickJS\\"); log(message: string) { console.log(message); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > BasicFor 1`] = ` "import { Component, effect, signal, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-component\\", standalone: true, imports: [CommonModule], template: \`
@for (person of names();track i;let i = $index) { Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! }
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicForComponent implements AfterViewInit { name = signal(\\"PatrickJS\\"); names = signal([\\"Steve\\", \\"PatrickJS\\"]); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } " `; exports[`Angular signals > jsx > Typescript Test > BasicRef 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", standalone: true, imports: [CommonModule], template: \`
@if(showInput()){ } Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: \`:host { display: contents; } .input { color: red; } \`, }) export class MyBasicRefComponent { showInput: InputSignal = input(); inputRef = viewChild(\\"inputRef\\"); inputNoArgRef = viewChild(\\"inputNoArgRef\\"); name = signal(\\"PatrickJS\\"); onBlur() { // Maintain focus this.inputRef()?.nativeElement?.focus(); } lowerCaseName() { return this.name().toLowerCase(); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicRefAssignmentComponent { handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", standalone: true, imports: [CommonModule], template: \`

Now: {{count()}} , before: {{prevCount}}

\`, styles: \`:host { display: contents; }\`, }) export class MyPreviousComponent { count = signal(0); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.count(); // --- this._prevCount = this.count(); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > Button 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`
@if(link()){ {{text()}} } @if(!link()){ }
\`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input(); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input(); text: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Columns 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", standalone: true, imports: [CommonModule], template: \`
@for (column of columns();track index;let index = $index) {
{{column.content}} {{index}}
}
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, }) export class Column { columns: InputSignal = input(); space: InputSignal = input(); getColumns() { return this.columns() || []; } getGutterSize() { return typeof this.space() === \\"number\\" ? this.space() || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", standalone: true, imports: [CommonModule], template: \`

\`, styles: \`:host { display: contents; }\`, }) export class ContentSlotCode { slotTesting: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, computed, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", standalone: true, imports: [CommonModule], template: \`@if(slotReference()){
@if(showContent() && slotContent()){ {{content()}} }

} \`, styles: \`:host { display: contents; }\`, }) export class ContentSlotJsxCode implements OnDestroy { slotContent: InputSignal = input( defaultProps[\\"slotContent\\"] ); slotReference: InputSignal = input< Props[\\"slotReference\\"] >(defaultProps[\\"slotReference\\"]); attributes: InputSignal = input(); content: InputSignal = input( defaultProps[\\"content\\"] ); elRef0 = viewChild(\\"elRef0\\"); name = signal(\\"king\\"); showContent = signal(false); _listenerFns = new Map(); cls = computed(() => { return this.slotContent() && this.children() ? \`\${this.name()}-content\` : \\"\\"; }); show() { this.slotContent() ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > CustomCode 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class CustomCode implements AfterViewInit { replaceNodes: InputSignal = input(); code: InputSignal = input(); elem = viewChild(\\"elem\\"); scriptsInserted = signal([]); scriptsRun = signal([]); findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem()?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem()?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted().includes(script.src)) { continue; } this.scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun().includes(script.innerText)) { continue; } try { this.scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Embed 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class CustomCode implements AfterViewInit { replaceNodes: InputSignal = input(); code: InputSignal = input(); elem = viewChild(\\"elem\\"); scriptsInserted = signal([]); scriptsRun = signal([]); findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem()?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem()?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted().includes(script.src)) { continue; } this.scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun().includes(script.innerText)) { continue; } try { this.scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Form 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, computed, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", standalone: true, imports: [CommonModule, BuilderBlockComponent, BuilderBlocks], template: \`
@if(builderBlock() && builderBlock().children){ @for (block of builderBlock()?.children;track trackByBlock0(index, block);let index = $index) { } } @if(submissionState() === 'error'){ } @if(submissionState() === 'sending'){ } @if(submissionState() === 'error' && responseData()){
        {{JSON.stringify(responseData(), null, 2)}}
} @if(submissionState() === 'success'){ }
\`, styles: \`:host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, }) export class FormComponent implements OnDestroy { previewState: InputSignal = input(); sendWithJs: InputSignal = input(); sendSubmissionsTo: InputSignal = input(); action: InputSignal = input(); customHeaders: InputSignal = input(); contentType: InputSignal = input(); sendSubmissionsToEmail: InputSignal = input(); name: InputSignal = input(); method: InputSignal = input(); errorMessagePath: InputSignal = input(); resetFormOnSubmit: InputSignal = input(); successUrl: InputSignal = input(); validate: InputSignal = input(); attributes: InputSignal = input(); builderBlock: InputSignal = input(); errorMessage: InputSignal = input(); sendingMessage: InputSignal = input(); successMessage: InputSignal = input(); formRef = viewChild(\\"formRef\\"); elRef0 = viewChild(\\"elRef0\\"); formState = signal(\\"unsubmitted\\"); responseData = signal(null); formErrorMessage = signal(\\"\\"); _listenerFns = new Map(); submissionState = computed(() => { return (Builder.isEditing && this.previewState()) || this.formState(); }); onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs() || this.sendSubmissionsTo() === \\"email\\"; if (this.sendSubmissionsTo() === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action() || this.sendSubmissionsTo() === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders() || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType(); if (this.sendSubmissionsTo() === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action()?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef()?.nativeElement) { this.formRef()?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState.set(\\"sending\\"); const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail() || \\"\\" )}&name=\${encodeURIComponent(this.name() || \\"\\")}\`; fetch( this.sendSubmissionsTo() === \\"email\\" ? formUrl : this.action()!, /* TODO: throw error if no action URL */ { body, headers, method: this.method() || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath()) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath()); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage.set(message); } } this.responseData.set(body); this.formState.set(res.ok ? \\"success\\" : \\"error\\"); if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef()?.nativeElement) { this.formRef()?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit() !== false) { this.formRef()?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl()) { if (this.formRef()?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl(), }, }); this.formRef()?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl(); } } else { location.href = this.successUrl(); } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef()?.nativeElement) { this.formRef()?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData.set(err); this.formState.set(\\"error\\"); } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index: number, block: any) { return block.id; } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Image 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, OnDestroy, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", standalone: true, imports: [CommonModule], template: \`
@if(!useLazyLoading() || load()){ }
\`, styles: \`:host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, }) export class Image implements AfterViewInit, OnDestroy { lazy: InputSignal = input(); altText: InputSignal = input(); _class: InputSignal = input(); image: InputSignal = input(); srcset: InputSignal = input(); sizes: InputSignal = input(); pictureRef = viewChild(\\"pictureRef\\"); scrollListener = signal(null); imageLoaded = signal(false); load = signal(false); setLoaded() { this.imageLoaded.set(true); } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy() && this.isBrowser(); } isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); } constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef()?.nativeElement) { const rect = this.pictureRef()?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load.set(true); this.scrollListener.set(null); window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener.set(listener); window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener()) { window.removeEventListener(\\"scroll\\", this.scrollListener()); } } } " `; exports[`Angular signals > jsx > Typescript Test > Image State 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"img-state-component\\", standalone: true, imports: [CommonModule], template: \`
@for (item of images();track itemIndex;let itemIndex = $index) { }
\`, styles: \`:host { display: contents; }\`, }) export class ImgStateComponent { canShow = signal(true); images = signal([\\"http://example.com/qwik.png\\"]); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > Img 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class ImgComponent implements OnDestroy { protected readonly Builder = Builder; backgroundSize: InputSignal = input(); backgroundPosition: InputSignal = input(); attributes: InputSignal = input(); imgSrc: InputSignal = input(); altText: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Input 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, output, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class FormInputComponent implements OnDestroy { protected readonly Builder = Builder; attributes: InputSignal = input(); defaultValue: InputSignal = input(); placeholder: InputSignal = input(); type: InputSignal = input(); name: InputSignal = input(); value: InputSignal = input(); required: InputSignal = input(); change = output< Parameters[\\"onChange\\"]>[number] | void >(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > InputParent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { FormInputComponent } from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", standalone: true, imports: [CommonModule, FormInputComponent], template: \` \`, styles: \`:host { display: contents; }\`, }) export class Stepper { handleChange(value: string) { console.log(value); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > NestedStore 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", standalone: true, imports: [CommonModule], template: \`
Test

Message

\`, styles: \`:host { display: contents; }\`, }) export class NestedStore { _id = signal(\\"abc\\"); _messageId = signal(this._id() + \\"-message\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > RawText 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class RawText { attributes: InputSignal = input(); text: InputSignal = input(); constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular signals > jsx > Typescript Test > Section 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class SectionComponent implements OnDestroy { attributes: InputSignal = input(); maxWidth: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Section 2`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", standalone: true, imports: [CommonModule], template: \`@if(max()){ @for (item of items();track i;let i = $index) {
} } \`, styles: \`:host { display: contents; }\`, }) export class SectionStateComponent implements OnDestroy { attributes: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); max = signal(42); items = signal([42]); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Select 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SelectComponent implements OnDestroy { protected readonly Builder = Builder; attributes: InputSignal = input(); value: InputSignal = input(); defaultValue: InputSignal = input(); name: InputSignal = input(); options: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > SlotDefault 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule], template: \`
Default content
\`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > SlotHtml 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule, ContentSlotCode], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > SlotJsx 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule, ContentSlotCode], template: \`
Hello
\\"> \`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > SlotNamed 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", standalone: true, imports: [CommonModule], template: \`
Default left Default Child
\`, styles: \`:host { display: contents; }\`, }) export class SlotCode { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > Stamped.io 1`] = ` "import { Component, input, effect, signal, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", standalone: true, imports: [CommonModule], template: \`
@if(showReviewPrompt() || 'asdf'){ } @for (review of reviews();track trackByReview0(index, review);let index = $index) {
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
}
\`, styles: \`:host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, }) export class SmileReviews implements AfterViewInit { apiKey: InputSignal = input(); productId: InputSignal = input(); reviews = signal([]); name = signal(\\"test\\"); showReviewPrompt = signal(false); kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index: number, review: any) { return review.id; } constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey() || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId() || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews.set(data.data); }); } } } " `; exports[`Angular signals > jsx > Typescript Test > StoreComment 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", standalone: true, imports: [CommonModule], template: \`{{foo()}} \`, styles: \`:host { display: contents; }\`, }) export class StringLiteralStore { foo = signal(true); bar() {} constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`{{foo(errors())}} \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { errors = signal({}); foo(errors) { return errors; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > StoreWithState 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`{{bar()}} \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { foo = signal(false); bar() { return this.foo(); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > Submit 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SubmitButton implements OnDestroy { attributes: InputSignal = input(); text: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > Text 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", standalone: true, imports: [CommonModule], template: \`
my name

')\\" >
\`, styles: \`:host { display: contents; }\`, }) export class Text { text: InputSignal = input(); content: InputSignal = input(); name = signal(\\"Decadef20\\"); constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular signals > jsx > Typescript Test > Textarea 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class Textarea implements OnDestroy { attributes: InputSignal = input(); placeholder: InputSignal = input(); name: InputSignal = input(); value: InputSignal = input(); defaultValue: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { Component, output, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", standalone: true, imports: [CommonModule], template: \`
Test
\`, styles: \`:host { display: contents; }\`, }) export class UseValueAndFnFromStore { change = output[\\"onChange\\"]>[number] | void>(); _id = signal(\\"abc\\"); _active = signal(false); _do(id?: string) { this._active.set(!!id); if (this.change) { this.change.emit(this._active()); } } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { if (this._do.bind(this)) { this._do(this._id()); } }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > Video 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, computed, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class Video implements OnDestroy { attributes: InputSignal = input(); fit: InputSignal = input(); position: InputSignal = input(); video: InputSignal = input(); posterImage: InputSignal = input(); autoPlay: InputSignal = input(); muted: InputSignal = input(); controls: InputSignal = input(); loop: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); objSpread_style_hq5qrw = computed(() => { return { width: \\"100%\\", height: \\"100%\\", ...this.attributes()?.style, objectFit: this.fit(), objectPosition: this.position(), // Hack to get object fit to work as expected and // not have the video overflow borderRadius: 1, }; }); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > allSpread 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent implements OnDestroy { attributes: InputSignal = input(); accessHere: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); attrsUsingUseState = signal({ hello: \\"world\\", }); properties = signal({ style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }); specifics = signal({ someSpecificState: \\"specific\\", }); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes( this.elRef0()?.nativeElement, this.attrsUsingUseState() ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.properties()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef0()?.nativeElement, { someOtherAttrs: this.accessHere(), someStateAttrs: this.specifics(), }); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0()?.nativeElement, this.attrsUsingUseState() ); this.setAttributes(this.elRef0()?.nativeElement, this.properties()); this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef0()?.nativeElement, { someOtherAttrs: this.accessHere(), someStateAttrs: this.specifics(), }); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"steve\\"); setName(value) { this.name.set(value); } updateNameWithArrowFn(value) { this.name.set(value); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > basicForFragment 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-for-fragment\\", standalone: true, imports: [CommonModule], template: \`
@for (option of ['a', 'b', 'c'];track trackByOption0(i, option);let i = $index) {
{{option}}
} @for (option of ['a', 'b', 'c'];track trackByOption1(i, option);let i = $index) {
{{option}}
}
\`, styles: \`:host { display: contents; }\`, }) export class BasicForFragment { id = signal(\\"xyz\\"); trackByOption0(_: number, option: any) { return \`key-\${option}\`; } trackByOption1(_: number, option: any) { return \`\${this.id()}-\${option}\`; } trackByOption2(_: number, option: any) { return \`\${this.id()}-\${option}\`; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicForNoTagRefComponent { myContent = signal([]); tagnamegetterTemplateRef = viewChild>( \\"tagnamegetterTemplate\\" ); tagTemplateRef = viewChild>(\\"tagTemplate\\"); tagnameTemplateRef = viewChild>(\\"tagnameTemplate\\"); iconTemplateRef = viewChild>(\\"iconTemplate\\"); actions: InputSignal = input(); name = signal(\\"VincentW\\"); TagName = signal(\\"div\\"); tag = signal(\\"span\\"); TagNameGetter = computed(() => { return \\"span\\"; }); constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView(this.tagnamegetterTemplateRef()) .rootNodes, this.viewContainer.createEmbeddedView(this.tagTemplateRef()).rootNodes, this.viewContainer.createEmbeddedView(this.tagnameTemplateRef()) .rootNodes, this.viewContainer.createEmbeddedView(this.iconTemplateRef()).rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Typescript Test > basicForwardRef 1`] = ` "import { Component, viewChild, ElementRef, input, effect, signal, InputSignal } from '@angular/core'; import { CommonModule } from '@angular/common'; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: 'my-basic-forward-ref-component',standalone: true,imports: [CommonModule],template: \`
\`,styles: \`:host { display: contents; } .input { color: red; } \` }) export class MyBasicForwardRefComponent { inputRef: InputSignal = input() props.inputRef = viewChild(\\"props.inputRef\\") name= signal('PatrickJS') constructor() { } }" `; exports[`Angular signals > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` " /** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { Component, viewChild, ElementRef, input, effect, signal, InputSignal } from '@angular/core'; import { CommonModule } from '@angular/common'; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: 'my-basic-forward-ref-component',standalone: true,imports: [CommonModule],template: \`
\`,styles: \`:host { display: contents; } .input { color: red; } \` }) export class MyBasicForwardRefComponent { inputRef: InputSignal = input() props.inputRef = viewChild(\\"props.inputRef\\") name= signal('PatrickJS') constructor() { } }" `; exports[`Angular signals > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicOnUpdateReturnComponent { name = signal(\\"PatrickJS\\"); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.name(); // --- const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name.set(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Component, viewChild, ElementRef, effect, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class BasicRefAttributePassingComponent implements AfterViewInit { buttonRef = viewChild(\\"buttonRef\\"); _root = viewChild(\\"_root\\"); constructor() {} /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { const element: HTMLElement | null = this._root()?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); console.log(\\"onMount\\"); } } } " `; exports[`Angular signals > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Component, viewChild, ElementRef, effect, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class BasicRefAttributePassingCustomRefComponent implements AfterViewInit { buttonRef = viewChild(\\"buttonRef\\"); constructor() {} /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { const element: HTMLElement | null = this.buttonRef()?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } } " `; exports[`Angular signals > jsx > Typescript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { Component, input, effect, ChangeDetectionStrategy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{count()}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: \`:host { display: contents; }\`, }) export class MyComponent { count: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { MyComp } from \\"./my-component.lite\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule, MyComp], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > class + css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > className + css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > className 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", standalone: true, imports: [CommonModule], template: \`
Without Binding
With binding
\`, styles: \`:host { display: contents; }\`, }) export class ClassNameCode { bindings = signal(\\"a binding\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > classState 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { classState = signal(\\"testClassName\\"); styleState = signal({ color: \\"red\\", }); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{type()}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { className: InputSignal = input(); type: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"complex-meta-raw\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class ComplexMetaRaw { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > componentWithContext 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", standalone: true, imports: [CommonModule], template: \`{{foo.value}} \`, styles: \`:host { display: contents; }\`, }) export class ComponentWithContext { content: InputSignal = input(); constructor(public foo: Context1) {} } " `; exports[`Angular signals > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", standalone: true, imports: [CommonModule], template: \`{{foo.value}}
other
\`, styles: \`:host { display: contents; }\`, }) export class ComponentWithContext { content: InputSignal = input(); constructor(public foo: Context1) {} } " `; exports[`Angular signals > jsx > Typescript Test > contentState 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import BuilderContext from \\"@dummy/context.js\\"; @Component({ selector: \\"render-content\\", standalone: true, imports: [CommonModule], template: \`
setting context
\`, styles: \`:host { display: contents; }\`, }) export class RenderContent { content: InputSignal = input(); customComponents: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"not-my-component\\", standalone: true, imports: [CommonModule], template: \`My selector shouldn't be my-component! \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > defaultProps 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, output, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`
@if(link()){ {{text()}} } @if(!link()){ }
\`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input( defaultProps[\\"link\\"] ); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input< ButtonProps[\\"openLinkInNewTab\\"] >(defaultProps[\\"openLinkInNewTab\\"]); text: InputSignal = input( defaultProps[\\"text\\"] ); buttonText: InputSignal = input(); click = output[\\"onClick\\"]>[number] | void>(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, output, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`
@if(link()){ {{text()}} } @if(!link()){ }
\`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input( defaultProps[\\"link\\"] ); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input< ButtonProps[\\"openLinkInNewTab\\"] >(defaultProps[\\"openLinkInNewTab\\"]); text: InputSignal = input( defaultProps[\\"text\\"] ); click = output[\\"onClick\\"]>[number] | void>(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name() || DEFAULT_VALUES.name}}
\`, styles: \`:host { display: contents; }\`, }) export class ComponentWithTypes { protected readonly DEFAULT_VALUES = DEFAULT_VALUES; name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > dynamicComponent 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` hello \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { myContent = signal([]); objTemplateRef = viewChild>(\\"objTemplate\\"); attributes: InputSignal = input(); something: InputSignal = input(); obj = signal({ name: \\"foo\\", Component: FooComponent, }); dynamicProps_37i2pk = computed(() => { return { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes(), ...this.something(), }; }); onClick() { console.log(\\"hello\\"); } constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView(this.objTemplateRef()).rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Typescript Test > dynamicComponentWithEventArg 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` hello \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { myContent = signal([]); componentTemplateRef = viewChild>(\\"componentTemplate\\"); attributes: InputSignal = input(); something: InputSignal = input(); Component = signal(HelloComponent); dynamicProps_37i2pk = computed(() => { return { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes(), ...this.something(), }; }); onClick(event: any) { console.log(\\"hello\\", event); } constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView(this.componentTemplateRef()) .rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"event-input-and-change\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .input { color: red; } \`, }) export class EventInputAndChange { name = signal(\\"Steve\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > eventProps 1`] = ` "import { Component, output, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class EventPropsComponent { getVoid = output< Parameters[\\"onGetVoid\\"]>[number] | void >(); enter = output[\\"onEnter\\"]>[number] | void>(); pass = output[\\"onPass\\"]>[number] | void>(); handleClick() { if (this.getVoid) { this.getVoid.emit(); } if (this.enter) { console.log(this.enter.emit()); } if (this.pass) { this.pass.emit(\\"test\\"); } } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > expressionState 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{refToUse()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { componentRef: InputSignal = input(); refToUse = signal(undefined); constructor() {} ngOnInit() { this.refToUse.set( !(this.componentRef() instanceof Function) ? this.componentRef() : null ); } } " `; exports[`Angular signals > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"figma-button\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class FigmaButton { icon: InputSignal = input(); interactiveState: InputSignal = input(); width: InputSignal = input(); size: InputSignal = input(); label: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > functionProps 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > getterState 1`] = ` "import { Component, input, effect, computed, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`

{{foo2()}}

{{bar()}}

{{baz(1)}}

\`, styles: \`:host { display: contents; }\`, }) export class Button { foo: InputSignal = input(); foo2 = computed(() => { return this.foo() + \\"foo\\"; }); bar = computed(() => { return \\"bar\\"; }); baz(i: number) { return i + this.foo2().length; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > import types 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import { RenderBlock } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", standalone: true, imports: [CommonModule, RenderBlock], template: \` \`, styles: \`:host { display: contents; }\`, }) export class RenderContent { renderContentProps: InputSignal = input(); getRenderContentProps(block, index) { return { block: block, index: index, }; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > importRaw 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-import-component\\", standalone: true, imports: [CommonModule], template: \`
Testing which imports get excluded!
\`, styles: \`:host { display: contents; }\`, }) export class MyImportComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > layerName 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-layer-name-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; } .layer-name { padding: 10px; } \`, }) export class MyLayerNameComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MultipleOnUpdate { constructor() { if (typeof window !== \\"undefined\\") { effect( () => { console.log(\\"Runs on every update/rerender\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { console.log(\\"Runs on every update/rerender as well\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MultipleOnUpdateWithDeps { a = signal(\\"a\\"); b = signal(\\"b\\"); c = signal(\\"c\\"); d = signal(\\"d\\"); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.a(); this.b(); // --- console.log(\\"Runs when a or b changes\\", this.a(), this.b()); if (this.a() === \\"a\\") { this.a.set(\\"b\\"); } }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.c(); this.d(); // --- console.log(\\"Runs when c or d changes\\", this.c(), this.d()); if (this.a() === \\"a\\") { this.a.set(\\"b\\"); } }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > multipleSpreads 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, effect, signal, OnDestroy, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements OnDestroy { elRef0 = viewChild(\\"elRef0\\"); attrs = signal({ hello: \\"world\\", }); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attrs()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attrs()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { disabled: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > nestedShow 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", standalone: true, imports: [CommonModule], template: \`@if(conditionA()){ @if(!conditionB()){
if condition A and condition B
}@else{
else-condition-B
} }@else{
else-condition-A
} \`, styles: \`:host { display: contents; }\`, }) export class NestedShow { conditionA: InputSignal = input(); conditionB: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > nestedStyles 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-styles\\", standalone: true, imports: [CommonModule], template: \`
Hello world
\`, styles: \`:host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, }) export class NestedStyles { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", standalone: true, imports: [CommonModule], template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: \`:host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, }) export class MyNormalizedLayerNamesComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > onEvent 1`] = ` "import { Component, viewChild, ElementRef, effect, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"embed\\", standalone: true, imports: [CommonModule], template: \`
Test
\`, styles: \`:host { display: contents; }\`, }) export class Embed implements AfterViewInit { elem = viewChild(\\"elem\\"); foo(event) { console.log(\\"test2\\"); } constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.elem()?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } " `; exports[`Angular signals > jsx > Typescript Test > onInit & onMount 1`] = ` "import { Component, effect, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnInit implements AfterViewInit { constructor() {} ngOnInit() { console.log(\\"onInit\\"); } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } " `; exports[`Angular signals > jsx > Typescript Test > onInit 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", standalone: true, imports: [CommonModule], template: \`
Default name defined by parent {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class OnInit { name: InputSignal = input(); name = signal(\\"\\"); constructor() {} ngOnInit() { this.name.set(defaultValues.name || this.name()); console.log(\\"set defaults with props\\"); } } " `; exports[`Angular signals > jsx > Typescript Test > onInitPlain 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init-plain\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnInitPlain { constructor() {} ngOnInit() { console.log(\\"onInit\\"); } } " `; exports[`Angular signals > jsx > Typescript Test > onMount 1`] = ` "import { Component, effect, OnDestroy, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class Comp implements AfterViewInit, OnDestroy { constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } " `; exports[`Angular signals > jsx > Typescript Test > onMountMultiple 1`] = ` "import { Component, effect, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class Comp implements AfterViewInit { constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); console.log(\\"Another one runs on Mount\\"); console.log(\\"SSR runs on Mount\\"); } } } " `; exports[`Angular signals > jsx > Typescript Test > onUpdate 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnUpdate { constructor() { if (typeof window !== \\"undefined\\") { effect( () => { console.log(\\"Runs on every update/rerender\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnUpdateWithDeps { size: InputSignal = input(); a = signal(\\"a\\"); b = signal(\\"b\\"); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.a(); this.b(); this.size(); // --- console.log( \\"Runs when a, b or size changes\\", this.a(), this.b(), this.size() ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"Steve\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > preserveTyping 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > prettierInline 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"prettier-inline\\", standalone: true, imports: [CommonModule], template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: \`:host { display: contents; }\`, }) export class PrettierInline { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > propsDestructure 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{type()}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { type: InputSignal = input(); name = signal(\\"Decadef20\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > propsInterface 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > propsType 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class OnUpdate { foo(params) {} bar() {} zoo() { const params = { cb: this.bar.bind(this), }; } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { this.foo({ someOption: this.bar.bind(this), }); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > renderBlock 1`] = ` "import { Component, viewChild, ElementRef, ViewContainerRef, TemplateRef, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import { BlockStyles } from \\"./block-styles.lite\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component.js\\"; import RenderComponent from \\"./render-component.js\\"; import { RenderRepeatedBlock } from \\"./render-repeated-block.lite\\"; import type { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", standalone: true, imports: [CommonModule, RenderRepeatedBlock, RenderBlock, BlockStyles], template: \`@if(shouldWrap()){ @if(isEmptyHtmlElement(tag())){ } @if(!isEmptyHtmlElement(tag()) && repeatItemData()){ @for (data of repeatItemData();track trackByData0(index, data);let index = $index) { } } @if(!isEmptyHtmlElement(tag()) && !repeatItemData()){ } }@else{ } \`, styles: \`:host { display: contents; }\`, }) export class RenderBlock { protected readonly isEmptyHtmlElement = isEmptyHtmlElement; myContent = signal([]); rendercomponenttagTemplateRef = viewChild>( \\"rendercomponenttagTemplate\\" ); tagTemplateRef = viewChild>(\\"tagTemplate\\"); block: InputSignal = input(); context: InputSignal = input(); component = computed(() => { const componentName = getProcessedBlock({ block: this.block(), state: this.context().state, context: this.context().context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context().registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); tag = computed(() => { return getBlockTag(this.useBlock()); }); useBlock = computed(() => { return this.repeatItemData() ? this.block() : getProcessedBlock({ block: this.block(), state: this.context().state, context: this.context().context, shouldEvaluateBindings: true, }); }); actions = computed(() => { return getBlockActions({ block: this.useBlock(), state: this.context().state, context: this.context().context, }); }); attributes = computed(() => { const blockProperties = getBlockProperties(this.useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock(), context: this.context(), blockStyles: blockProperties.style, }), } : {}), }; }); shouldWrap = computed(() => { return !this.component()?.noWrap; }); renderComponentProps = computed(() => { return { blockChildren: this.useChildren(), componentRef: this.component()?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap() ? {} : { attributes: { ...this.attributes(), ...this.actions() }, }), customBreakpoints: this.childrenContext()?.content?.meta?.breakpoints, }, context: this.childrenContext(), }; }); useChildren = computed(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock().children ?? []; }); childrenWithoutParentComponent = computed(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component()?.component && !this.repeatItemData(); return shouldRenderChildrenOutsideRef ? this.useChildren() : []; }); repeatItemData = computed(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block(); if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context().state, context: this.context().context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context(), state: { ...this.context().state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); inheritedTextStyles = computed(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock(), context: this.context(), blockStyles: this.attributes().style, }); return extractTextStyles(styles); }); childrenContext = computed(() => { return { apiKey: this.context().apiKey, state: this.context().state, content: this.context().content, context: this.context().context, registeredComponents: this.context().registeredComponents, inheritedStyles: this.inheritedTextStyles(), }; }); renderComponentTag = computed(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); dynamicProps_ya7n4j = computed(() => { return { ...this.attributes(), ...this.actions() }; }); dynamicProps_emn6k5 = computed(() => { return { ...this.renderComponentProps() }; }); trackByData0(index: number, data: any) { return index; } trackByChild1(_: number, child: any) { return \\"render-block-\\" + child.id; } trackByChild2(_: number, child: any) { return \\"block-style-\\" + child.id; } constructor(private viewContainer: ViewContainerRef) {} _updateView() { this.myContent.set([ this.viewContainer.createEmbeddedView( this.rendercomponenttagTemplateRef() ).rootNodes, this.viewContainer.createEmbeddedView(this.tagTemplateRef()).rootNodes, ]); } ngAfterContentInit() { if (typeof window !== \\"undefined\\") { this._updateView(); } } } " `; exports[`Angular signals > jsx > Typescript Test > renderContentExample 1`] = ` "import { Component, input, effect, AfterViewInit, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import { RenderBlocks } from \\"@dummy/RenderBlocks.lite.tsx\\"; @Component({ selector: \\"render-content\\", standalone: true, imports: [CommonModule, RenderBlocks], template: \`
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: columns; } \`, }) export class RenderContent implements AfterViewInit { protected readonly trackClick = trackClick; customComponents: InputSignal = input(); content: InputSignal = input(); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.content(); // --- dispatchNewContentToVisualEditor(this.content()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents()); } } } " `; exports[`Angular signals > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", standalone: true, imports: [CommonModule], template: \`@if(link()){ {{text()}} } @if(!link()){ } \`, styles: \`:host { display: contents; }\`, }) export class Button implements OnDestroy { link: InputSignal = input(); attributes: InputSignal = input(); openLinkInNewTab: InputSignal = input(); text: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); elRef1 = viewChild(\\"elRef1\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); effect( () => { this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.attributes()); this.setAttributes(this.elRef1()?.nativeElement, this.attributes()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > rootShow 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", standalone: true, imports: [CommonModule], template: \`@if(foo() === 'bar'){
Bar
}@else{
Foo
} \`, styles: \`:host { display: contents; }\`, }) export class RenderStyles { foo: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { html: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > self-referencing component 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, MyComponent], template: \`
{{name()}} @if(name() === 'Batman'){ }
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, MyComponent], template: \`
{{name()}} @if(name() === 'Batman'){
Wayne
}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > setState 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"set-state\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class SetState { n = signal([\\"123\\"]); someFn() { this.n.update((n) => { n[0] = \\"123\\"; return n; }); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > showExpressions 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", standalone: true, imports: [CommonModule], template: \`
@if(conditionA()){ Content0 }@else{ ContentA } @if(conditionA()){ ContentA } @if(conditionA()){ }@else{ ContentA } @if(conditionA()){ ContentB }@else{ {{undefined}} } @if(conditionA()){ {{undefined}} }@else{ ContentB } @if(conditionA()){ ContentC } @if(conditionA()){ }@else{ ContentC } @if(conditionA()){ ContentD } @if(conditionA()){ }@else{ ContentD } @if(conditionA()){ ContentE }@else{ hello } @if(conditionA()){ hello }@else{ ContentE } @if(conditionA()){ ContentF }@else{ 123 } @if(conditionA()){ 123 }@else{ ContentF } @if(conditionA() === 'Default'){ 4mb }@else{ @if(conditionB() === 'Complete'){ 20mb }@else{ 9mb } } @if(conditionA() === 'Default'){ @if(conditionB() === 'Complete'){ 20mb }@else{ 9mb } }@else{ 4mb } @if(conditionA() === 'Default'){ @if(conditionB() === 'Complete'){
complete
}@else{ 9mb } }@else{ @if(conditionC() === 'Complete'){ dff }@else{
complete else
} }
\`, styles: \`:host { display: contents; }\`, }) export class ShowWithOtherValues { conditionA: InputSignal = input(); conditionB: InputSignal = input(); conditionC: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > showWithFor 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", standalone: true, imports: [CommonModule], template: \`@if(conditionA()){ @for (item of items();track trackByItem0(idx, item);let idx = $index) {
{{item}}
} }@else{
else-condition-A
} \`, styles: \`:host { display: contents; }\`, }) export class NestedShow { conditionA: InputSignal = input(); items: InputSignal = input(); trackByItem0(idx: number, item: any) { return idx; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", standalone: true, imports: [CommonModule], template: \`
@if(conditionA()){ ContentA } @if(conditionA()){ ContentB }@else{ {{undefined}} } @if(conditionA()){ ContentC } @if(conditionA()){ ContentD } @if(conditionA()){ ContentE }@else{ hello } @if(conditionA()){ ContentF }@else{ 123 }
\`, styles: \`:host { display: contents; }\`, }) export class ShowWithOtherValues { conditionA: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > showWithRootText 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", standalone: true, imports: [CommonModule], template: \`@if(conditionA()){ ContentA }@else{
else-condition-A
} \`, styles: \`:host { display: contents; }\`, }) export class ShowRootText { conditionA: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { Component, viewChild, ElementRef, model, output, input, effect, signal, InputSignal, ModelSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SignalsTestComponent { testInput: InputSignal = input( defaultProps[\\"testInput\\"] ); label: InputSignal = input.required( defaultProps[\\"label\\"] ); disabled: ModelSignal = model(); testOutput = output< Parameters[\\"onTestOutput\\"]>[number] | void >(); buttonRef = viewChild(\\"buttonRef\\"); _counter = signal(0); _innerText = signal(\\"a\\"); handleOutput() { this._counter.update((_counter) => { _counter++; return _counter; }); this._innerText.set(\\"b\\"); console.log(this.testInput(), this._counter()); if (this.testOutput) { this.testOutput.emit(); } } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this._counter(); this.buttonRef(); // --- console.log(this._counter(), this.buttonRef()?.nativeElement); this.buttonRef()?.nativeElement?.setAttribute( \\"data-counter\\", this._counter().toString() ); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \`
{{id()}} {{foo().bar.baz}}
\`, styles: \`:host { display: contents; } .div { padding: 10px; } \`, }) export class MyBasicComponent { id: InputSignal = input(); foo: InputSignal = input(); constructor() { if (typeof window !== \\"undefined\\") { effect( () => { // --- Mitosis: Workaround to make sure the effect() is triggered --- this.id(); // --- console.log(\\"props.id changed\\", this.id()); console.log(\\"props.foo.value.bar.baz changed\\", this.foo().bar.baz); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > jsx > Typescript Test > spreadAttrs 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, effect, signal, OnDestroy, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements OnDestroy { elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, attrs); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, attrs); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { Component, viewChild, ElementRef, Renderer2, input, effect, signal, OnDestroy, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent implements OnDestroy { nested: InputSignal = input(); elRef0 = viewChild(\\"elRef0\\"); _listenerFns = new Map(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) { if (typeof window !== \\"undefined\\") { effect( () => { this.setAttributes(this.elRef0()?.nativeElement, this.nested()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { this.setAttributes(this.elRef0()?.nativeElement, this.nested()); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular signals > jsx > Typescript Test > spreadProps 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyBasicComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > stateInit 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{asfas()}}
{{someCompute()}}
{{someOtherVal()}}
{{sf()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { val: InputSignal = input(); asfas = signal(\\"asga\\"); someCompute = signal(this.add(1, 2)); someOtherVal = signal(undefined); sf = signal(undefined); add(a, b) { return a + b; } subtract() { return this.someCompute() - this.someOtherVal(); } constructor() {} ngOnInit() { this.sf.set(this.add(this.val(), 34)); this.someOtherVal.set(this.val()); } } " `; exports[`Angular signals > jsx > Typescript Test > stateInitSequence 1`] = ` "import { Component, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, Comp], template: \`{{val()}} \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { value: InputSignal = input(); val = signal(undefined); objSpread_val_yy75n1 = computed(() => { return { ...this.val() }; }); constructor() {} ngOnInit() { this.val.set(this.value()); } } " `; exports[`Angular signals > jsx > Typescript Test > store-async-function 1`] = ` "import { Component, effect } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'string-literal-store',standalone: true,imports: [CommonModule],template: \`
\`,styles: \`:host { display: contents; }\` }) export class StringLiteralStore { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } constructor() { } }" `; exports[`Angular signals > jsx > Typescript Test > string-literal-store 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", standalone: true, imports: [CommonModule], template: \`
{{foo()}}
\`, styles: \`:host { display: contents; }\`, }) export class StringLiteralStore { foo = signal(123); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "import { Component, effect, signal } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'string-literal-store',standalone: true,imports: [CommonModule],template: \`
{{'foo-bar'}}
\`,styles: \`:host { display: contents; }\` }) export class StringLiteralStore { foo-bar= signal(123) constructor() { } }" `; exports[`Angular signals > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"style-prop-class-and-css\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class StylePropClassAndCss { attributes: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > subComponent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Foo } from \\"./foo-sub-component.lite\\"; @Component({ selector: \\"sub-component\\", standalone: true, imports: [CommonModule, Foo], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SubComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > svgComponent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"svg-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class SvgComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > twoForsTrackBy 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
@for (item of items();track trackByItem0(i, item);let i = $index) {
{{item}}
} @for (item of items();track trackByItem1(i, item);let i = $index) {
{{item}}
}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { items = signal([1, 2, 3]); trackByItem0(_: number, item: any) { return item; } trackByItem1(_: number, item: any) { return item; } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > typeDependency 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export.js\\"; @Component({ selector: \\"type-dependency\\", standalone: true, imports: [CommonModule], template: \`
{{foo()}}
\`, styles: \`:host { display: contents; }\`, }) export class TypeDependency { foo: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > typeExternalProps 1`] = ` "import { Component, input, effect, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}} !
\`, styles: \`:host { display: contents; }\`, }) export class TypeExternalProps { name: InputSignal = input(); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > typeExternalStore 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", standalone: true, imports: [CommonModule], template: \`
Hello {{_name()}} !
\`, styles: \`:host { display: contents; }\`, }) export class TypeExternalStore { _name = signal(\\"test\\"); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > typeGetterStore 1`] = ` "import { Component, effect, signal, computed } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", standalone: true, imports: [CommonModule], template: \`
Hello {{name()}} !
\`, styles: \`:host { display: contents; }\`, }) export class TypeGetterStore { name = signal(\\"test\\"); test = computed(() => { return \\"test\\"; }); getName() { if (this.name() === \\"a\\") { return \\"b\\"; } return this.name(); } constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > use-style 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > use-style-and-css 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > useObjectWrapper 1`] = ` "import { Component, input, effect, signal, computed, InputSignal, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, Comp], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { spreadAttrs: InputSignal = input(); attributes = signal({ id: 1, }); attributes2 = signal({ id2: 1, }); something = signal({ id3: 1, }); objSpread_val1_i10b3b = computed(() => { return { ...this.attributes2() }; }); objSpread_val2_dcdfhf = computed(() => { return { ...this.attributes(), ...this.attributes2() }; }); objSpread_val3_2cisei = computed(() => { return { ...this.something(), anything: \\"hello\\", hello: \\"world\\" }; }); objSpread_val4_wb8314 = computed(() => { return { ...this.attributes(), ...this.something(), anything: [1, 2, 3], hello: \\"hello\\", ...this.attributes2(), }; }); objSpread_val5_1ruo5o = computed(() => { return { ...this.attributes(), ...this.something(), anything: [1, 2, 3], anythingString: [\\"a\\", \\"b\\", \\"c\\"], hello: \\"hello\\", ...this.spreadAttrs(), }; }); constructor() {} } " `; exports[`Angular signals > jsx > Typescript Test > useTarget 1`] = ` "import { Component, effect, signal, computed, AfterViewInit, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"use-target-component\\", standalone: true, imports: [CommonModule], template: \`
{{name()}}
\`, styles: \`:host { display: contents; }\`, }) export class UseTargetComponent implements AfterViewInit { lastName = signal(\\"bar\\"); foo = signal(\\"bar\\"); name = computed(() => { const prefix = true; return prefix + \\"foo\\"; }); constructor() {} ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo()); this.foo.set(\\"bar\\"); } } } " `; exports[`Angular signals > jsx > Typescript Test > webComponent 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", standalone: true, imports: [CommonModule], template: \`Slide 1 Slide 2 Slide 3 \`, styles: \`:host { display: contents; }\`, }) export class MyBasicWebComponent { constructor() {} ngOnInit() { register(); } } " `; exports[`Angular signals > svelte > Javascript Test > basic 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"Steve\\"); constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > bindGroup 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`


Tortilla: {{tortilla()}}

Fillings: {{fillings()}}

\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { tortilla = signal(\\"Plain\\"); fillings = signal([]); constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > bindProperty 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { value = signal(\\"hello\\"); constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > classDirective 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { disabled: InputSignal = input(); focus = signal(true); templateStr_slfe7x() { return \`form-input \${this.disabled() ? \\"disabled\\" : \\"\\"} \${ this.focus() ? \\"focus\\" : \\"\\" }\`; } constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > context 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{activeTab()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { activeTab = signal(0); constructor(public disabled: \\"disabled\\") {} } " `; exports[`Angular signals > svelte > Javascript Test > each 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
    @for (num of numbers();track i;let i = $index) {
  • {{num}}
  • }
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { numbers = signal([\\"one\\", \\"two\\", \\"three\\"]); constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > eventHandlers 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { log(msg = \\"hello\\") { console.log(msg); } constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > html 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { html = signal(\\"bold\\"); constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular signals > svelte > Javascript Test > ifElse 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`@if(show()){ }@else{ } \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { show = signal(true); toggle() { this.show.set(!this.show()); } constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > imports 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Button } from \\"./Button.lite\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, Button], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { disabled = signal(false); constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { Component, effect, OnDestroy, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent implements AfterViewInit, OnDestroy { constructor() { if (typeof window !== \\"undefined\\") { effect( () => { console.log(\\"onAfterUpdate\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } " `; exports[`Angular signals > svelte > Javascript Test > reactive 1`] = ` "import { Component, effect, signal, computed } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Lowercase: {{lowercaseName()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"Steve\\"); lowercaseName = computed(() => { return this.name().toLowerCase(); }); constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Result: {{result()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { a = signal(2); b = signal(5); result = signal(null); calculateResult(a_, b_) { this.result.set(a_ * b_); } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { this.calculateResult(this.a(), this.b()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > svelte > Javascript Test > slots 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
default
default
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > style 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > svelte > Javascript Test > textExpressions 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
normal: {{a() + b()}}
conditional {{a() > 2 ? 'hello' : 'bye'}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { a = signal(5); b = signal(12); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > basic 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"Steve\\"); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > bindGroup 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`


Tortilla: {{tortilla()}}

Fillings: {{fillings()}}

\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { tortilla = signal(\\"Plain\\"); fillings = signal([]); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > bindProperty 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { value = signal(\\"hello\\"); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > classDirective 1`] = ` "import { Component, input, effect, signal, InputSignal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { disabled: InputSignal = input(); focus = signal(true); templateStr_slfe7x() { return \`form-input \${this.disabled() ? \\"disabled\\" : \\"\\"} \${ this.focus() ? \\"focus\\" : \\"\\" }\`; } constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > context 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
{{activeTab()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { activeTab = signal(0); constructor(public disabled: \\"disabled\\") {} } " `; exports[`Angular signals > svelte > Typescript Test > each 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
    @for (num of numbers();track i;let i = $index) {
  • {{num}}
  • }
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { numbers = signal([\\"one\\", \\"two\\", \\"three\\"]); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > eventHandlers 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { log(msg = \\"hello\\") { console.log(msg); } constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > html 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { html = signal(\\"bold\\"); constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular signals > svelte > Typescript Test > ifElse 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`@if(show()){ }@else{ } \`, styles: \`:host { display: contents; }\`, }) export class MyComponent { show = signal(true); toggle() { this.show.set(!this.show()); } constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > imports 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Button } from \\"./Button.lite\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule, Button], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { disabled = signal(false); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { Component, effect, OnDestroy, AfterViewInit } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent implements AfterViewInit, OnDestroy { constructor() { if (typeof window !== \\"undefined\\") { effect( () => { console.log(\\"onAfterUpdate\\"); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } ngAfterViewInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } " `; exports[`Angular signals > svelte > Typescript Test > reactive 1`] = ` "import { Component, effect, signal, computed } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Lowercase: {{lowercaseName()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { name = signal(\\"Steve\\"); lowercaseName = computed(() => { return this.name().toLowerCase(); }); constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
Result: {{result()}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { a = signal(2); b = signal(5); result = signal(null); calculateResult(a_, b_) { this.result.set(a_ * b_); } constructor() { if (typeof window !== \\"undefined\\") { effect( () => { this.calculateResult(this.a(), this.b()); }, { allowSignalWrites: true, // Enable writing to signals inside effects } ); } } } " `; exports[`Angular signals > svelte > Typescript Test > slots 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
default
default
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > style 1`] = ` "import { Component, effect } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \` \`, styles: \`:host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, }) export class MyComponent { constructor() {} } " `; exports[`Angular signals > svelte > Typescript Test > textExpressions 1`] = ` "import { Component, effect, signal } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", standalone: true, imports: [CommonModule], template: \`
normal: {{a() + b()}}
conditional {{a() > 2 ? 'hello' : 'bye'}}
\`, styles: \`:host { display: contents; }\`, }) export class MyComponent { a = signal(5); b = signal(12); constructor() {} } " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/angular.state.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; node_0_For = null; ngOnInit() { this.node_0_For = Array.from({ length: 10, }); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_For = Array.from({ length: 10, }); } } } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{node_1_div}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; node_1_div = null; ngOnInit() { this.node_1_div = this.lowerCaseName(); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); this.node_1_div = this.lowerCaseName(); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age = 1; sports = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; node_0_input_event = (event, person) => { this.name = event.target.value + \\" and \\" + person; }; node_0_input = (event, person) => this.node_0_input_event(event, person); } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{node_0_div}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; node_0_div = null; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); this.node_0_div = this.myService.method(\\"hello\\") + this.name; if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.myService.method(\\"hello\\") + this.name; } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye; @Input() hi; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; node_0_input_event = (event, person) => { this.name = event.target.value + \\" and \\" + person; }; node_0_input = (event, person) => this.node_0_input_event(event, person); ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{node_1_div}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; node_1_div = null; ngOnInit() { this.node_1_div = this.lowerCaseName(); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_1_div = this.lowerCaseName(); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns; @Input() space; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent = defaultProps[\\"slotContent\\"]; @Input() slotReference = defaultProps[\\"slotReference\\"]; @Input() attributes; @Input() content = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } node_0_div = null; constructor(protected sanitizer) {} ngOnInit() { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } node_0_div = null; constructor(protected sanitizer) {} ngOnInit() { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{node_1_div}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState; @Input() sendWithJs; @Input() sendSubmissionsTo; @Input() action; @Input() customHeaders; @Input() contentType; @Input() sendSubmissionsToEmail; @Input() name; @Input() method; @Input() errorMessagePath; @Input() resetFormOnSubmit; @Input() successUrl; @Input() validate; @Input() attributes; @Input() builderBlock; @Input() errorMessage; @Input() sendingMessage; @Input() successMessage; @ViewChild(\\"formRef\\") formRef; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } node_1_div = null; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer) {} ngOnInit() { this.node_1_div = JSON.stringify(this.responseData, null, 2); } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_1_div = JSON.stringify(this.responseData, null, 2); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() _class; @Input() lazy; @Input() altText; @Input() image; @Input() srcset; @Input() sizes; @ViewChild(\\"pictureRef\\") pictureRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; node_0_Show = null; node_1_img = null; ngOnInit() { this.node_0_Show = !this.useLazyLoading() || this.load; this.node_1_img = \\"builder-image\\" + (this._class ? \\" \\" + this._class : \\"\\"); if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_Show = !this.useLazyLoading() || this.load; this.node_1_img = \\"builder-image\\" + (this._class ? \\" \\" + this._class : \\"\\"); } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize; @Input() backgroundPosition; @Input() attributes; @Input() imgSrc; @Input() altText; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); node_0_img = null; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngOnInit() { this.node_0_img = { objectFit: this.backgroundSize || \\"cover\\", objectPosition: this.backgroundPosition || \\"center\\", }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_img = { objectFit: this.backgroundSize || \\"cover\\", objectPosition: this.backgroundPosition || \\"center\\", }; this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes; @Input() defaultValue; @Input() placeholder; @Input() type; @Input() name; @Input() value; @Input() required; @Input() onChange; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id = \\"abc\\"; _messageId = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes; @Input() text; constructor(protected sanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() maxWidth; @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); node_0_section = null; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngOnInit() { this.node_0_section = this.maxWidth && typeof this.maxWidth === \\"number\\" ? { maxWidth: this.maxWidth, } : undefined; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_section = this.maxWidth && typeof this.maxWidth === \\"number\\" ? { maxWidth: this.maxWidth, } : undefined; this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); max = 42; items = [42]; node_0_section = (item) => ({ maxWidth: item + this.max, }); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes; @Input() value; @Input() defaultValue; @Input() name; @Input() options; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey; @Input() productId; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } node_0_button = (ev) => { ev.preventDefault(); this.showReviewPrompt = false; }; trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{node_0_div}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } node_0_div = null; ngOnInit() { this.node_0_div = this.foo(this.errors); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.foo(this.errors); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{node_0_div}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } node_0_div = null; ngOnInit() { this.node_0_div = this.bar(); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.bar(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes; @Input() text; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text; @Input() content; name = \\"Decadef20\\"; node_0_div = null; constructor(protected sanitizer) {} ngOnInit() { this.node_0_div = { test: this.name || \\"any name\\", }; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = { test: this.name || \\"any name\\", }; } } } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes; @Input() placeholder; @Input() name; @Input() value; @Input() defaultValue; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id = \\"abc\\"; _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes; @Input() fit; @Input() position; @Input() video; @Input() posterImage; @Input() autoPlay; @Input() muted; @Input() controls; @Input() loop; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); node_0_video = null; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngOnInit() { this.node_0_video = { width: \\"100%\\", height: \\"100%\\", ...this.attributes?.style, objectFit: this.fit, objectPosition: this.position, // Hack to get object fit to work as expected and // not have the video overflow borderRadius: 1, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_video = { width: \\"100%\\", height: \\"100%\\", ...this.attributes?.style, objectFit: this.fit, objectPosition: this.position, // Hack to get object fit to work as expected and // not have the video overflow borderRadius: 1, }; this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() accessHere; @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; node_0_div = null; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngOnInit() { this.node_0_div = { ...{ someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.node_0_div); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = { ...{ someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }, }; this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.node_0_div, changes[\\"node_0_div\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef; myContent; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } mergedInputs_0 = {}; constructor(private vcRef) {} ngOnInit() { this.mergedInputs_0 = {}; this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.mergedInputs_0 = {}; } } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef; @ViewChild(\\"_root\\") _root; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className; @Input() type; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content; @Input() customComponents; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Input() buttonText; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef; myContent; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; mergedInputs_mlw9p4 = {}; constructor(private vcRef) {} ngOnInit() { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef; myContent; Component = HelloComponent; onClick = function onClick(event) { console.log(\\"hello\\", event); }; mergedInputs_mlw9p4 = {}; constructor(private vcRef) {} ngOnInit() { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick() { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon; @Input() interactiveState; @Input() width; @Input() size; @Input() label; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f2]=\\"node_1_p\\" [attr.f3]=\\"node_2_p\\" [attr.f4]=\\"node_3_p\\" [attr.f5]=\\"node_4_p\\" [attr.f6]=\\"node_5_p\\" [attr.f7]=\\"node_6_p\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { node_0_p = null; node_1_p = null; node_2_p = null; node_3_p = null; node_4_p = null; node_5_p = null; node_6_p = null; ngOnInit() { this.node_0_p = () => x; this.node_1_p = (x) => {}; this.node_2_p = function () { return x; }; this.node_3_p = function (x) { return x; }; this.node_4_p = function (x) { return; }; this.node_5_p = function () { return; }; this.node_6_p = (a, b, c) => a + b + c; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_p = () => x; this.node_1_p = (x) => {}; this.node_2_p = function () { return x; }; this.node_3_p = function (x) { return x; }; this.node_4_p = function (x) { return; }; this.node_5_p = function () { return; }; this.node_6_p = (a, b, c) => a + b + c; } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{node_0_div}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } node_0_div = null; ngOnInit() { this.node_0_div = this.baz(1); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.baz(1); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import RenderBlock from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps; getRenderContentProps(block, index) { return { block: block, index: index, }; } node_0_RenderBlock = null; ngOnInit() { this.node_0_RenderBlock = { ...this.getRenderContentProps(this.renderContentProps.block, 0), }; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_RenderBlock = { ...this.getRenderContentProps(this.renderContentProps.block, 0), }; } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrs = { hello: \\"world\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() conditionB; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { @Input() block; @Input() context; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; myContent; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } node_0_Show = null; node_1_Show = null; node_2_Show = null; mergedInputs_3ka5tf = {}; trackByData0(index, data) { return index; } mergedInputs_r2fkt2 = {}; trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef) {} ngOnInit() { this.node_0_Show = isEmptyHtmlElement(this.tag); this.node_1_Show = !isEmptyHtmlElement(this.tag) && this.repeatItemData; this.node_2_Show = !isEmptyHtmlElement(this.tag) && !this.repeatItemData; this.mergedInputs_3ka5tf = { ...this.attributes, ...this.actions }; this.mergedInputs_r2fkt2 = { ...this.renderComponentProps }; this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_Show = isEmptyHtmlElement(this.tag); this.node_1_Show = !isEmptyHtmlElement(this.tag) && this.repeatItemData; this.node_2_Show = !isEmptyHtmlElement(this.tag) && !this.repeatItemData; this.mergedInputs_3ka5tf = { ...this.attributes, ...this.actions }; this.mergedInputs_r2fkt2 = { ...this.renderComponentProps }; } } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents; @Input() content; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; @Input() conditionB; @Input() conditionC; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() items; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, } from \\"@angular/core\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput = defaultProps[\\"testInput\\"]; @Input() label = defaultProps[\\"label\\"]; @Input() disabled; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef; _counter = 0; _innerText = \\"a\\"; handleOutput() { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.value.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id; @Input() foo; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value; val = null; node_0_Comp = null; ngOnInit() { this.val = this.value; this.node_0_Comp = { ...this.val }; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_Comp = { ...this.val }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent { node_0_div = null; ngOnInit() { this.node_0_div = { width: \\"100%\\", }; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_div = { width: \\"100%\\", }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; node_0_Comp = null; node_1_Comp = null; node_2_Comp = null; node_3_Comp = null; node_4_Comp = null; node_5_Comp = null; ngOnInit() { this.node_0_Comp = { ...this.attributes2 }; this.node_1_Comp = { ...this.attributes, ...this.attributes2 }; this.node_2_Comp = { ...this.something, anything: \\"hello\\", hello: \\"world\\" }; this.node_3_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], hello: \\"hello\\", ...this.attributes2, }; this.node_4_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], anythingString: [\\"a\\", \\"b\\", \\"c\\"], hello: \\"hello\\", ...this.spreadAttrs, }; this.node_5_Comp = { anything: [1, 2, 3], }; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_Comp = { ...this.attributes2 }; this.node_1_Comp = { ...this.attributes, ...this.attributes2 }; this.node_2_Comp = { ...this.something, anything: \\"hello\\", hello: \\"world\\", }; this.node_3_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], hello: \\"hello\\", ...this.attributes2, }; this.node_4_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], anythingString: [\\"a\\", \\"b\\", \\"c\\"], hello: \\"hello\\", ...this.spreadAttrs, }; this.node_5_Comp = { anything: [1, 2, 3], }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Javascript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Remove Internal mitosis package 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; node_0_For = null; ngOnInit() { this.node_0_For = Array.from({ length: 10, }); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_For = Array.from({ length: 10, }); } } } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{node_1_div}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; node_1_div = null; ngOnInit() { this.node_1_div = this.lowerCaseName(); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); this.node_1_div = this.lowerCaseName(); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age: number = 1; sports: Array = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; node_0_input_event = (event, person) => { this.name = event.target.value + \\" and \\" + person; }; node_0_input = (event, person) => this.node_0_input_event(event, person); } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{node_0_div}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; node_0_div = null; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); this.node_0_div = this.myService.method(\\"hello\\") + this.name; if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.myService.method(\\"hello\\") + this.name; } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye!: Props[\\"bye\\"]; @Input() hi!: Props[\\"hi\\"]; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; node_0_input_event = (event, person) => { this.name = event.target.value + \\" and \\" + person; }; node_0_input = (event, person) => this.node_0_input_event(event, person); ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{node_1_div}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; node_1_div = null; ngOnInit() { this.node_1_div = this.lowerCaseName(); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_1_div = this.lowerCaseName(); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns!: ColumnProps[\\"columns\\"]; @Input() space!: ColumnProps[\\"space\\"]; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting!: Props[\\"slotTesting\\"]; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent: Props[\\"slotContent\\"] = defaultProps[\\"slotContent\\"]; @Input() slotReference: Props[\\"slotReference\\"] = defaultProps[\\"slotReference\\"]; @Input() attributes!: Props[\\"attributes\\"]; @Input() content: Props[\\"content\\"] = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } node_0_div = null; constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } node_0_div = null; constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = \\"builder-custom-code\\" + (this.replaceNodes ? \\" replace-nodes\\" : \\"\\"); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{node_1_div}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState!: FormProps[\\"previewState\\"]; @Input() sendWithJs!: FormProps[\\"sendWithJs\\"]; @Input() sendSubmissionsTo!: FormProps[\\"sendSubmissionsTo\\"]; @Input() action!: FormProps[\\"action\\"]; @Input() customHeaders!: FormProps[\\"customHeaders\\"]; @Input() contentType!: FormProps[\\"contentType\\"]; @Input() sendSubmissionsToEmail!: FormProps[\\"sendSubmissionsToEmail\\"]; @Input() name!: FormProps[\\"name\\"]; @Input() method!: FormProps[\\"method\\"]; @Input() errorMessagePath!: FormProps[\\"errorMessagePath\\"]; @Input() resetFormOnSubmit!: FormProps[\\"resetFormOnSubmit\\"]; @Input() successUrl!: FormProps[\\"successUrl\\"]; @Input() validate!: FormProps[\\"validate\\"]; @Input() attributes!: FormProps[\\"attributes\\"]; @Input() builderBlock!: FormProps[\\"builderBlock\\"]; @Input() errorMessage!: FormProps[\\"errorMessage\\"]; @Input() sendingMessage!: FormProps[\\"sendingMessage\\"]; @Input() successMessage!: FormProps[\\"successMessage\\"]; @ViewChild(\\"formRef\\") formRef!: ElementRef; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } node_1_div = null; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer: Renderer2) {} ngOnInit() { this.node_1_div = JSON.stringify(this.responseData, null, 2); } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_1_div = JSON.stringify(this.responseData, null, 2); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() _class!: ImageProps[\\"_class\\"]; @Input() lazy!: ImageProps[\\"lazy\\"]; @Input() altText!: ImageProps[\\"altText\\"]; @Input() image!: ImageProps[\\"image\\"]; @Input() srcset!: ImageProps[\\"srcset\\"]; @Input() sizes!: ImageProps[\\"sizes\\"]; @ViewChild(\\"pictureRef\\") pictureRef!: ElementRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; node_0_Show = null; node_1_img = null; ngOnInit() { this.node_0_Show = !this.useLazyLoading() || this.load; this.node_1_img = \\"builder-image\\" + (this._class ? \\" \\" + this._class : \\"\\"); if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_Show = !this.useLazyLoading() || this.load; this.node_1_img = \\"builder-image\\" + (this._class ? \\" \\" + this._class : \\"\\"); } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize!: ImgProps[\\"backgroundSize\\"]; @Input() backgroundPosition!: ImgProps[\\"backgroundPosition\\"]; @Input() attributes!: ImgProps[\\"attributes\\"]; @Input() imgSrc!: ImgProps[\\"imgSrc\\"]; @Input() altText!: ImgProps[\\"altText\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); node_0_img = null; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngOnInit() { this.node_0_img = { objectFit: this.backgroundSize || \\"cover\\", objectPosition: this.backgroundPosition || \\"center\\", }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_img = { objectFit: this.backgroundSize || \\"cover\\", objectPosition: this.backgroundPosition || \\"center\\", }; this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes!: FormInputProps[\\"attributes\\"]; @Input() defaultValue!: FormInputProps[\\"defaultValue\\"]; @Input() placeholder!: FormInputProps[\\"placeholder\\"]; @Input() type!: FormInputProps[\\"type\\"]; @Input() name!: FormInputProps[\\"name\\"]; @Input() value!: FormInputProps[\\"value\\"]; @Input() required!: FormInputProps[\\"required\\"]; @Input() onChange!: FormInputProps[\\"onChange\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value: string) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id: MyStore[\\"_id\\"] = \\"abc\\"; _messageId: MyStore[\\"_messageId\\"] = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes!: RawTextProps[\\"attributes\\"]; @Input() text!: RawTextProps[\\"text\\"]; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() maxWidth!: SectionProps[\\"maxWidth\\"]; @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); node_0_section = null; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngOnInit() { this.node_0_section = this.maxWidth && typeof this.maxWidth === \\"number\\" ? { maxWidth: this.maxWidth, } : undefined; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_section = this.maxWidth && typeof this.maxWidth === \\"number\\" ? { maxWidth: this.maxWidth, } : undefined; this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); max = 42; items = [42]; node_0_section = (item) => ({ maxWidth: item + this.max, }); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes!: FormSelectProps[\\"attributes\\"]; @Input() value!: FormSelectProps[\\"value\\"]; @Input() defaultValue!: FormSelectProps[\\"defaultValue\\"]; @Input() name!: FormSelectProps[\\"name\\"]; @Input() options!: FormSelectProps[\\"options\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey!: SmileReviewsProps[\\"apiKey\\"]; @Input() productId!: SmileReviewsProps[\\"productId\\"]; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } node_0_button = (ev) => { ev.preventDefault(); this.showReviewPrompt = false; }; trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{node_0_div}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } node_0_div = null; ngOnInit() { this.node_0_div = this.foo(this.errors); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.foo(this.errors); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{node_0_div}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } node_0_div = null; ngOnInit() { this.node_0_div = this.bar(); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.bar(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text!: TextProps[\\"text\\"]; @Input() content!: TextProps[\\"content\\"]; name = \\"Decadef20\\"; node_0_div = null; constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { this.node_0_div = { test: this.name || \\"any name\\", }; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = { test: this.name || \\"any name\\", }; } } } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes!: TextareaProps[\\"attributes\\"]; @Input() placeholder!: TextareaProps[\\"placeholder\\"]; @Input() name!: TextareaProps[\\"name\\"]; @Input() value!: TextareaProps[\\"value\\"]; @Input() defaultValue!: TextareaProps[\\"defaultValue\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, SimpleChanges } from \\"@angular/core\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id: MyStore[\\"_id\\"] = \\"abc\\"; _active: MyStore[\\"_active\\"] = false; _do(id?: string): ReturnType { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes!: VideoProps[\\"attributes\\"]; @Input() fit!: VideoProps[\\"fit\\"]; @Input() position!: VideoProps[\\"position\\"]; @Input() video!: VideoProps[\\"video\\"]; @Input() posterImage!: VideoProps[\\"posterImage\\"]; @Input() autoPlay!: VideoProps[\\"autoPlay\\"]; @Input() muted!: VideoProps[\\"muted\\"]; @Input() controls!: VideoProps[\\"controls\\"]; @Input() loop!: VideoProps[\\"loop\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); node_0_video = null; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngOnInit() { this.node_0_video = { width: \\"100%\\", height: \\"100%\\", ...this.attributes?.style, objectFit: this.fit, objectPosition: this.position, // Hack to get object fit to work as expected and // not have the video overflow borderRadius: 1, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_video = { width: \\"100%\\", height: \\"100%\\", ...this.attributes?.style, objectFit: this.fit, objectPosition: this.position, // Hack to get object fit to work as expected and // not have the video overflow borderRadius: 1, }; this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() accessHere!: any; @Input() attributes!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; node_0_div = null; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngOnInit() { this.node_0_div = { ...{ someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.node_0_div); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = { ...{ someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }, }; this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.node_0_div, changes[\\"node_0_div\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions!: any; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef!: TemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef!: TemplateRef; myContent?: any[][]; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } mergedInputs_0 = {} as any; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.mergedInputs_0 = {}; this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.mergedInputs_0 = {}; } } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; @ViewChild(\\"_root\\") _root!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className!: Props[\\"className\\"]; @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content!: any; @Input() customComponents!: any; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Input() buttonText!: ButtonProps[\\"buttonText\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name!: Props[\\"name\\"]; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef!: TemplateRef; myContent?: any[][]; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; mergedInputs_mlw9p4 = {} as any; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef!: TemplateRef; myContent?: any[][]; Component = HelloComponent; onClick = function onClick(event: any) { console.log(\\"hello\\", event); }; mergedInputs_mlw9p4 = {} as any; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.mergedInputs_mlw9p4 = { hello: \\"world\\", onClick: this.onClick.bind(this), ...this.attributes, ...this.something, }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick(): ReturnType { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef!: any; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon!: any; @Input() interactiveState!: any; @Input() width!: any; @Input() size!: any; @Input() label!: any; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f2]=\\"node_1_p\\" [attr.f3]=\\"node_2_p\\" [attr.f4]=\\"node_3_p\\" [attr.f5]=\\"node_4_p\\" [attr.f6]=\\"node_5_p\\" [attr.f7]=\\"node_6_p\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { node_0_p = null; node_1_p = null; node_2_p = null; node_3_p = null; node_4_p = null; node_5_p = null; node_6_p = null; ngOnInit() { this.node_0_p = () => x; this.node_1_p = (x) => {}; this.node_2_p = function () { return x; }; this.node_3_p = function (x) { return x; }; this.node_4_p = function (x) { return; }; this.node_5_p = function () { return; }; this.node_6_p = (a, b, c) => a + b + c; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_p = () => x; this.node_1_p = (x) => {}; this.node_2_p = function () { return x; }; this.node_3_p = function (x) { return x; }; this.node_4_p = function (x) { return; }; this.node_5_p = function () { return; }; this.node_6_p = (a, b, c) => a + b + c; } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{node_0_div}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo!: ButtonProps[\\"foo\\"]; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } node_0_div = null; ngOnInit() { this.node_0_div = this.baz(1); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = this.baz(1); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps!: RenderContentProps[\\"renderContentProps\\"]; getRenderContentProps(block, index) { return { block: block, index: index, }; } node_0_RenderBlock = null; ngOnInit() { this.node_0_RenderBlock = { ...this.getRenderContentProps(this.renderContentProps.block, 0), }; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_RenderBlock = { ...this.getRenderContentProps(this.renderContentProps.block, 0), }; } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrs = { hello: \\"world\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem!: ElementRef; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name!: Props[\\"name\\"]; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size!: Props[\\"size\\"]; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: MyBasicComponentProps[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type!: Props[\\"type\\"]; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person | never[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, SimpleChanges, } from \\"@angular/core\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import type { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { @Input() block!: RenderBlockProps[\\"block\\"]; @Input() context!: RenderBlockProps[\\"context\\"]; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; myContent?: any[][]; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } node_0_Show = null; node_1_Show = null; node_2_Show = null; mergedInputs_3ka5tf = {} as any; trackByData0(index, data) { return index; } mergedInputs_r2fkt2 = {} as any; trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.node_0_Show = isEmptyHtmlElement(this.tag); this.node_1_Show = !isEmptyHtmlElement(this.tag) && this.repeatItemData; this.node_2_Show = !isEmptyHtmlElement(this.tag) && !this.repeatItemData; this.mergedInputs_3ka5tf = { ...this.attributes, ...this.actions }; this.mergedInputs_r2fkt2 = { ...this.renderComponentProps }; this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_Show = isEmptyHtmlElement(this.tag); this.node_1_Show = !isEmptyHtmlElement(this.tag) && this.repeatItemData; this.node_2_Show = !isEmptyHtmlElement(this.tag) && !this.repeatItemData; this.mergedInputs_3ka5tf = { ...this.attributes, ...this.actions }; this.mergedInputs_r2fkt2 = { ...this.renderComponentProps }; } } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents!: Props[\\"customComponents\\"]; @Input() content!: Props[\\"content\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo!: RenderStylesProps[\\"foo\\"]; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; @Input() conditionC!: Props[\\"conditionC\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() items!: Props[\\"items\\"]; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput: Props[\\"testInput\\"] = defaultProps[\\"testInput\\"]; @Input() label: Props[\\"label\\"] = defaultProps[\\"label\\"]; @Input() disabled!: Props[\\"disabled\\"]; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; _counter: Store[\\"_counter\\"] = 0; _innerText: Store[\\"_innerText\\"] = \\"a\\"; handleOutput(): ReturnType { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id!: Props[\\"id\\"]; @Input() foo!: Props[\\"foo\\"]; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val!: any; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value!: any; val = null; node_0_Comp = null; ngOnInit() { this.val = this.value; this.node_0_Comp = { ...this.val }; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_Comp = { ...this.val }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent { node_0_div = null; ngOnInit() { this.node_0_div = { width: \\"100%\\", }; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_div = { width: \\"100%\\", }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes!: any; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo!: TypeDependencyProps[\\"foo\\"]; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name!: FooProps[\\"name\\"]; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name: FooStore[\\"_name\\"] = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name: GetterStore[\\"name\\"] = \\"test\\"; getName(): ReturnType { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test(): ReturnType { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs!: any; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; node_0_Comp = null; node_1_Comp = null; node_2_Comp = null; node_3_Comp = null; node_4_Comp = null; node_5_Comp = null; ngOnInit() { this.node_0_Comp = { ...this.attributes2 }; this.node_1_Comp = { ...this.attributes, ...this.attributes2 }; this.node_2_Comp = { ...this.something, anything: \\"hello\\", hello: \\"world\\" }; this.node_3_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], hello: \\"hello\\", ...this.attributes2, }; this.node_4_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], anythingString: [\\"a\\", \\"b\\", \\"c\\"], hello: \\"hello\\", ...this.spreadAttrs, }; this.node_5_Comp = { anything: [1, 2, 3], }; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_Comp = { ...this.attributes2 }; this.node_1_Comp = { ...this.attributes, ...this.attributes2 }; this.node_2_Comp = { ...this.something, anything: \\"hello\\", hello: \\"world\\", }; this.node_3_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], hello: \\"hello\\", ...this.attributes2, }; this.node_4_Comp = { ...this.attributes, ...this.something, anything: [1, 2, 3], anythingString: [\\"a\\", \\"b\\", \\"c\\"], hello: \\"hello\\", ...this.spreadAttrs, }; this.node_5_Comp = { anything: [1, 2, 3], }; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > jsx > Typescript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; node_0_input = null; node_1_input = \`Guac (extra)\`; ngOnInit() { this.node_0_input = this.fillings === \\"Guac (extra)\\"; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_input = this.fillings === \\"Guac (extra)\\"; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; focus = true; node_0_input = null; ngOnInit() { this.node_0_input = \`form-input \${this.disabled ? \\"disabled\\" : \\"\\"} \${ this.focus ? \\"focus\\" : \\"\\" }\`; } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.node_0_input = \`form-input \${this.disabled ? \\"disabled\\" : \\"\\"} \${ this.focus ? \\"focus\\" : \\"\\" }\`; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Javascript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; node_0_input = null; node_1_input = \`Guac (extra)\`; ngOnInit() { this.node_0_input = this.fillings === \\"Guac (extra)\\"; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_input = this.fillings === \\"Guac (extra)\\"; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; focus = true; node_0_input = null; ngOnInit() { this.node_0_input = \`form-input \${this.disabled ? \\"disabled\\" : \\"\\"} \${ this.focus ? \\"focus\\" : \\"\\" }\`; } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.node_0_input = \`form-input \${this.disabled ? \\"disabled\\" : \\"\\"} \${ this.focus ? \\"focus\\" : \\"\\" }\`; } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with manually creating and handling class properties as bindings (more stable) > svelte > Typescript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/angular.styles.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age = 1; sports = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, }) export default class MyBasicOnMountUpdateComponent { @Input() bye; @Input() hi; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, }) export default class MyBooleanAttribute { @Input() type; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns; @Input() space; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, }) export default class ContentSlotCode { @Input() slotTesting; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, }) export default class ContentSlotJsxCode { @Input() slotContent = defaultProps[\\"slotContent\\"]; @Input() slotReference = defaultProps[\\"slotReference\\"]; @Input() attributes; @Input() content = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState; @Input() sendWithJs; @Input() sendSubmissionsTo; @Input() action; @Input() customHeaders; @Input() contentType; @Input() sendSubmissionsToEmail; @Input() name; @Input() method; @Input() errorMessagePath; @Input() resetFormOnSubmit; @Input() successUrl; @Input() validate; @Input() attributes; @Input() builderBlock; @Input() errorMessage; @Input() sendingMessage; @Input() successMessage; @ViewChild(\\"formRef\\") formRef; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy; @Input() altText; @Input() _class; @Input() image; @Input() srcset; @Input() sizes; @ViewChild(\\"pictureRef\\") pictureRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, }) export default class ImgComponent { @Input() backgroundSize; @Input() backgroundPosition; @Input() attributes; @Input() imgSrc; @Input() altText; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, }) export default class FormInputComponent { @Input() attributes; @Input() defaultValue; @Input() placeholder; @Input() type; @Input() name; @Input() value; @Input() required; @Input() onChange; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, }) export default class Stepper { handleChange(value) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, }) export default class NestedStore { _id = \\"abc\\"; _messageId = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"raw-text\\", template: \` \`, }) export default class RawText { @Input() attributes; @Input() text; constructor(protected sanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-component\\", template: \`
\`, }) export default class SectionComponent { @Input() attributes; @Input() maxWidth; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-state-component\\", template: \`
\`, }) export default class SectionStateComponent { @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); max = 42; items = [42]; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, }) export default class SelectComponent { @Input() attributes; @Input() value; @Input() defaultValue; @Input() name; @Input() options; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey; @Input() productId; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"submit-button\\", template: \` \`, }) export default class SubmitButton { @Input() attributes; @Input() text; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, }) export default class Text { @Input() text; @Input() content; name = \\"Decadef20\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"textarea\\", template: \` \`, }) export default class Textarea { @Input() attributes; @Input() placeholder; @Input() name; @Input() value; @Input() defaultValue; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id = \\"abc\\"; _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"video\\", template: \` \`, }) export default class Video { @Input() attributes; @Input() fit; @Input() position; @Input() video; @Input() posterImage; @Input() autoPlay; @Input() muted; @Input() controls; @Input() loop; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, }) export default class MyComponent { @Input() attributes; @Input() accessHere; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, }) export default class MyBasicForNoTagRefComponent { @Input() actions; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef; myContent; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef; @ViewChild(\\"_root\\") _root; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, }) export default class MyComponent { @Input() count; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { @Input() className; @Input() type; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, }) export default class RenderContent { @Input() content; @Input() customComponents; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Input() buttonText; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef; myContent; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef; myContent; Component = HelloComponent; onClick = function onClick(event) { console.log(\\"hello\\", event); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick() { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, }) export default class MyComponent { @Input() componentRef; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, }) export default class FigmaButton { @Input() icon; @Input() interactiveState; @Input() width; @Input() size; @Input() label; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, }) export default class Button { @Input() foo; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import RenderBlock from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, }) export default class RenderContent { @Input() renderContentProps; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, }) export default class MultipleOnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrs = { hello: \\"world\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, }) export default class MyComponent { @Input() disabled; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, }) export default class NestedShow { @Input() conditionA; @Input() conditionB; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, }) export default class Embed { @ViewChild(\\"elem\\") elem; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, }) export default class OnInit { @Input() name; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, }) export default class OnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, }) export default class OnUpdateWithDeps { @Input() size; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { @Input() type; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block; @Input() context; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; myContent; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents; @Input() content; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \` {{text}} \`, }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, }) export default class RenderStyles { @Input() foo; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { @Input() html; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, }) export default class ShowWithOtherValues { @Input() conditionA; @Input() conditionB; @Input() conditionC; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, }) export default class NestedShow { @Input() conditionA; @Input() items; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, }) export default class ShowWithOtherValues { @Input() conditionA; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, }) export default class ShowRootText { @Input() conditionA; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, } from \\"@angular/core\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, }) export default class SignalsTestComponent { @Input() testInput = defaultProps[\\"testInput\\"]; @Input() label = defaultProps[\\"label\\"]; @Input() disabled; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef; _counter = 0; _innerText = \\"a\\"; handleOutput() { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.value.bar.baz}}
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id; @Input() foo; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent { @Input() nested; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, }) export default class MyComponent { @Input() val; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, }) export default class MyComponent { @Input() value; val = null; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\` }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"sub-component\\", template: \` \`, }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, }) export default class TypeDependency { @Input() foo; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, }) export default class TypeExternalProps { @Input() name; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, }) export default class TypeExternalStore { _name = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, }) export default class TypeGetterStore { name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { @Input() spreadAttrs; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Javascript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Remove Internal mitosis package 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age: number = 1; sports: Array = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, }) export default class MyBasicOnMountUpdateComponent { @Input() bye!: Props[\\"bye\\"]; @Input() hi!: Props[\\"hi\\"]; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, }) export default class MyBooleanAttribute { @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \`
{{text}}
\`, }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns!: ColumnProps[\\"columns\\"]; @Input() space!: ColumnProps[\\"space\\"]; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, }) export default class ContentSlotCode { @Input() slotTesting!: Props[\\"slotTesting\\"]; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, }) export default class ContentSlotJsxCode { @Input() slotContent: Props[\\"slotContent\\"] = defaultProps[\\"slotContent\\"]; @Input() slotReference: Props[\\"slotReference\\"] = defaultProps[\\"slotReference\\"]; @Input() attributes!: Props[\\"attributes\\"]; @Input() content: Props[\\"content\\"] = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState!: FormProps[\\"previewState\\"]; @Input() sendWithJs!: FormProps[\\"sendWithJs\\"]; @Input() sendSubmissionsTo!: FormProps[\\"sendSubmissionsTo\\"]; @Input() action!: FormProps[\\"action\\"]; @Input() customHeaders!: FormProps[\\"customHeaders\\"]; @Input() contentType!: FormProps[\\"contentType\\"]; @Input() sendSubmissionsToEmail!: FormProps[\\"sendSubmissionsToEmail\\"]; @Input() name!: FormProps[\\"name\\"]; @Input() method!: FormProps[\\"method\\"]; @Input() errorMessagePath!: FormProps[\\"errorMessagePath\\"]; @Input() resetFormOnSubmit!: FormProps[\\"resetFormOnSubmit\\"]; @Input() successUrl!: FormProps[\\"successUrl\\"]; @Input() validate!: FormProps[\\"validate\\"]; @Input() attributes!: FormProps[\\"attributes\\"]; @Input() builderBlock!: FormProps[\\"builderBlock\\"]; @Input() errorMessage!: FormProps[\\"errorMessage\\"]; @Input() sendingMessage!: FormProps[\\"sendingMessage\\"]; @Input() successMessage!: FormProps[\\"successMessage\\"]; @ViewChild(\\"formRef\\") formRef!: ElementRef; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy!: ImageProps[\\"lazy\\"]; @Input() altText!: ImageProps[\\"altText\\"]; @Input() _class!: ImageProps[\\"_class\\"]; @Input() image!: ImageProps[\\"image\\"]; @Input() srcset!: ImageProps[\\"srcset\\"]; @Input() sizes!: ImageProps[\\"sizes\\"]; @ViewChild(\\"pictureRef\\") pictureRef!: ElementRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, }) export default class ImgComponent { @Input() backgroundSize!: ImgProps[\\"backgroundSize\\"]; @Input() backgroundPosition!: ImgProps[\\"backgroundPosition\\"]; @Input() attributes!: ImgProps[\\"attributes\\"]; @Input() imgSrc!: ImgProps[\\"imgSrc\\"]; @Input() altText!: ImgProps[\\"altText\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, }) export default class FormInputComponent { @Input() attributes!: FormInputProps[\\"attributes\\"]; @Input() defaultValue!: FormInputProps[\\"defaultValue\\"]; @Input() placeholder!: FormInputProps[\\"placeholder\\"]; @Input() type!: FormInputProps[\\"type\\"]; @Input() name!: FormInputProps[\\"name\\"]; @Input() value!: FormInputProps[\\"value\\"]; @Input() required!: FormInputProps[\\"required\\"]; @Input() onChange!: FormInputProps[\\"onChange\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, }) export default class Stepper { handleChange(value: string) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, }) export default class NestedStore { _id: MyStore[\\"_id\\"] = \\"abc\\"; _messageId: MyStore[\\"_messageId\\"] = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", template: \` \`, }) export default class RawText { @Input() attributes!: RawTextProps[\\"attributes\\"]; @Input() text!: RawTextProps[\\"text\\"]; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", template: \`
\`, }) export default class SectionComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @Input() maxWidth!: SectionProps[\\"maxWidth\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", template: \`
\`, }) export default class SectionStateComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); max = 42; items = [42]; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, }) export default class SelectComponent { @Input() attributes!: FormSelectProps[\\"attributes\\"]; @Input() value!: FormSelectProps[\\"value\\"]; @Input() defaultValue!: FormSelectProps[\\"defaultValue\\"]; @Input() name!: FormSelectProps[\\"name\\"]; @Input() options!: FormSelectProps[\\"options\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey!: SmileReviewsProps[\\"apiKey\\"]; @Input() productId!: SmileReviewsProps[\\"productId\\"]; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", template: \` \`, }) export default class SubmitButton { @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, }) export default class Text { @Input() text!: TextProps[\\"text\\"]; @Input() content!: TextProps[\\"content\\"]; name = \\"Decadef20\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", template: \` \`, }) export default class Textarea { @Input() attributes!: TextareaProps[\\"attributes\\"]; @Input() placeholder!: TextareaProps[\\"placeholder\\"]; @Input() name!: TextareaProps[\\"name\\"]; @Input() value!: TextareaProps[\\"value\\"]; @Input() defaultValue!: TextareaProps[\\"defaultValue\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, SimpleChanges } from \\"@angular/core\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id: MyStore[\\"_id\\"] = \\"abc\\"; _active: MyStore[\\"_active\\"] = false; _do(id?: string): ReturnType { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", template: \` \`, }) export default class Video { @Input() attributes!: VideoProps[\\"attributes\\"]; @Input() fit!: VideoProps[\\"fit\\"]; @Input() position!: VideoProps[\\"position\\"]; @Input() video!: VideoProps[\\"video\\"]; @Input() posterImage!: VideoProps[\\"posterImage\\"]; @Input() autoPlay!: VideoProps[\\"autoPlay\\"]; @Input() muted!: VideoProps[\\"muted\\"]; @Input() controls!: VideoProps[\\"controls\\"]; @Input() loop!: VideoProps[\\"loop\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, }) export default class MyComponent { @Input() attributes!: any; @Input() accessHere!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer: Renderer2) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, }) export default class MyBasicForNoTagRefComponent { @Input() actions!: any; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef!: TemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef!: TemplateRef; myContent?: any[][]; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; @ViewChild(\\"_root\\") _root!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, }) export default class MyComponent { @Input() count!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { @Input() className!: Props[\\"className\\"]; @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, }) export default class RenderContent { @Input() content!: any; @Input() customComponents!: any; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Input() buttonText!: ButtonProps[\\"buttonText\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name!: Props[\\"name\\"]; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef!: TemplateRef; myContent?: any[][]; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef!: TemplateRef; myContent?: any[][]; Component = HelloComponent; onClick = function onClick(event: any) { console.log(\\"hello\\", event); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick(): ReturnType { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, }) export default class MyComponent { @Input() componentRef!: any; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, }) export default class FigmaButton { @Input() icon!: any; @Input() interactiveState!: any; @Input() width!: any; @Input() size!: any; @Input() label!: any; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, }) export default class Button { @Input() foo!: ButtonProps[\\"foo\\"]; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, }) export default class RenderContent { @Input() renderContentProps!: RenderContentProps[\\"renderContentProps\\"]; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, }) export default class MultipleOnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrs = { hello: \\"world\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, }) export default class MyComponent { @Input() disabled!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, }) export default class Embed { @ViewChild(\\"elem\\") elem!: ElementRef; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, }) export default class OnInit { @Input() name!: Props[\\"name\\"]; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, }) export default class OnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, }) export default class OnUpdateWithDeps { @Input() size!: Props[\\"size\\"]; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, }) export default class MyBasicComponent { @Input() name!: MyBasicComponentProps[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyBasicComponent { @Input() type!: Props[\\"type\\"]; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, }) export default class MyBasicComponent { @Input() name!: Person | never[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, }) export default class MyBasicComponent { @Input() name!: Person[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import type { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block!: RenderBlockProps[\\"block\\"]; @Input() context!: RenderBlockProps[\\"context\\"]; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; myContent?: any[][]; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents!: Props[\\"customComponents\\"]; @Input() content!: Props[\\"content\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \` {{text}} \`, }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, }) export default class RenderStyles { @Input() foo!: RenderStylesProps[\\"foo\\"]; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { @Input() html!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; @Input() conditionC!: Props[\\"conditionC\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() items!: Props[\\"items\\"]; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, }) export default class ShowRootText { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, }) export default class SignalsTestComponent { @Input() testInput: Props[\\"testInput\\"] = defaultProps[\\"testInput\\"]; @Input() label: Props[\\"label\\"] = defaultProps[\\"label\\"]; @Input() disabled!: Props[\\"disabled\\"]; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; _counter: Store[\\"_counter\\"] = 0; _innerText: Store[\\"_innerText\\"] = \\"a\\"; handleOutput(): ReturnType { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.bar.baz}}
\`, styles: [ \` .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id!: Props[\\"id\\"]; @Input() foo!: Props[\\"foo\\"]; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent { @Input() nested!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, }) export default class MyComponent { @Input() val!: any; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, }) export default class MyComponent { @Input() value!: any; val = null; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\` }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes!: any; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"sub-component\\", template: \` \`, }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, }) export default class TypeDependency { @Input() foo!: TypeDependencyProps[\\"foo\\"]; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, }) export default class TypeExternalProps { @Input() name!: FooProps[\\"name\\"]; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, }) export default class TypeExternalStore { _name: FooStore[\\"_name\\"] = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, }) export default class TypeGetterStore { name: GetterStore[\\"name\\"] = \\"test\\"; getName(): ReturnType { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test(): ReturnType { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { @Input() spreadAttrs!: any; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > jsx > Typescript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent { @Input() disabled; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Javascript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent { @Input() disabled!: any; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular with visuallyIgnoreHostElement = false > svelte > Typescript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/angular.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Angular > jsx > Javascript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Advanced 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } " `; exports[`Angular > jsx > Javascript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular > jsx > Javascript Test > AdvancedRef 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } " `; exports[`Angular > jsx > Javascript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age = 1; sports = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Basic 3`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age = 1; sports = [\\"\\"]; } " `; exports[`Angular > jsx > Javascript Test > Basic 4`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } " `; exports[`Angular > jsx > Javascript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Basic Context 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } " `; exports[`Angular > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye; @Input() hi; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Basic OnMount Update 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOnMountUpdateComponent { @Input() bye; @Input() hi; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } " `; exports[`Angular > jsx > Javascript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Basic Outputs 2`] = ` "import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } " `; exports[`Angular > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Basic Outputs Meta 2`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOutputsComponent { @Input() message; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } " `; exports[`Angular > jsx > Javascript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > BasicAttribute 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular > jsx > Javascript Test > BasicBooleanAttribute 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, MyBooleanAttributeComponent], }) export default class MyBooleanAttribute { @Input() type; } " `; exports[`Angular > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular > jsx > Javascript Test > BasicChildComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [ CommonModule, MyBasicComponent, MyBasicOnMountUpdateComponent, MyBasicOutputsComponent, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; } " `; exports[`Angular > jsx > Javascript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular > jsx > Javascript Test > BasicFor 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } " `; exports[`Angular > jsx > Javascript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular > jsx > Javascript Test > BasicRef 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicRefComponent { @Input() showInput; @ViewChild(\\"inputRef\\") inputRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } " `; exports[`Angular > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular > jsx > Javascript Test > BasicRefAssignment 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } " `; exports[`Angular > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular > jsx > Javascript Test > BasicRefPrevious 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } " `; exports[`Angular > jsx > Javascript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Javascript Test > Button 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns; @Input() space; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular > jsx > Javascript Test > Columns 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], standalone: true, imports: [CommonModule], }) export default class Column { @Input() columns; @Input() space; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } " `; exports[`Angular > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular > jsx > Javascript Test > ContentSlotHtml 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ContentSlotCode { @Input() slotTesting; } " `; exports[`Angular > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent = defaultProps[\\"slotContent\\"]; @Input() slotReference = defaultProps[\\"slotReference\\"]; @Input() attributes; @Input() content = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular > jsx > Javascript Test > ContentSlotJSX 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ContentSlotJsxCode { @Input() slotContent = defaultProps[\\"slotContent\\"]; @Input() slotReference = defaultProps[\\"slotReference\\"]; @Input() attributes; @Input() content = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular > jsx > Javascript Test > CustomCode 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular > jsx > Javascript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular > jsx > Javascript Test > Embed 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class CustomCode { @Input() replaceNodes; @Input() code; @ViewChild(\\"elem\\") elem; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular > jsx > Javascript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState; @Input() sendWithJs; @Input() sendSubmissionsTo; @Input() action; @Input() customHeaders; @Input() contentType; @Input() sendSubmissionsToEmail; @Input() name; @Input() method; @Input() errorMessagePath; @Input() resetFormOnSubmit; @Input() successUrl; @Input() validate; @Input() attributes; @Input() builderBlock; @Input() errorMessage; @Input() sendingMessage; @Input() successMessage; @ViewChild(\\"formRef\\") formRef; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Form 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], standalone: true, imports: [CommonModule, BuilderBlockComponent, BuilderBlocks], }) export default class FormComponent { builder = builder; @Input() previewState; @Input() sendWithJs; @Input() sendSubmissionsTo; @Input() action; @Input() customHeaders; @Input() contentType; @Input() sendSubmissionsToEmail; @Input() name; @Input() method; @Input() errorMessagePath; @Input() resetFormOnSubmit; @Input() successUrl; @Input() validate; @Input() attributes; @Input() builderBlock; @Input() errorMessage; @Input() sendingMessage; @Input() successMessage; @ViewChild(\\"formRef\\") formRef; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy; @Input() altText; @Input() _class; @Input() image; @Input() srcset; @Input() sizes; @ViewChild(\\"pictureRef\\") pictureRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular > jsx > Javascript Test > Image 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], standalone: true, imports: [CommonModule], }) export default class Image { @Input() lazy; @Input() altText; @Input() _class; @Input() image; @Input() srcset; @Input() sizes; @ViewChild(\\"pictureRef\\") pictureRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } " `; exports[`Angular > jsx > Javascript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Image State 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } " `; exports[`Angular > jsx > Javascript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize; @Input() backgroundPosition; @Input() attributes; @Input() imgSrc; @Input() altText; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Img 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ImgComponent { @Input() backgroundSize; @Input() backgroundPosition; @Input() attributes; @Input() imgSrc; @Input() altText; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes; @Input() defaultValue; @Input() placeholder; @Input() type; @Input() name; @Input() value; @Input() required; @Input() onChange; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Input 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class FormInputComponent { @Input() attributes; @Input() defaultValue; @Input() placeholder; @Input() type; @Input() name; @Input() value; @Input() required; @Input() onChange; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular > jsx > Javascript Test > InputParent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, FormInputComponent], }) export default class Stepper { handleChange(value) { console.log(value); } } " `; exports[`Angular > jsx > Javascript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id = \\"abc\\"; _messageId = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular > jsx > Javascript Test > NestedStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedStore { _id = \\"abc\\"; _messageId = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } " `; exports[`Angular > jsx > Javascript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes; @Input() text; constructor(protected sanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular > jsx > Javascript Test > RawText 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class RawText { @Input() attributes; @Input() text; constructor(protected sanitizer) {} } " `; exports[`Angular > jsx > Javascript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() attributes; @Input() maxWidth; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); max = 42; items = [42]; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Section 3`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SectionComponent { @Input() attributes; @Input() maxWidth; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > Section 4`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SectionStateComponent { @Input() attributes; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); max = 42; items = [42]; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes; @Input() value; @Input() defaultValue; @Input() name; @Input() options; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular > jsx > Javascript Test > Select 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SelectComponent { @Input() attributes; @Input() value; @Input() defaultValue; @Input() name; @Input() options; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Javascript Test > SlotDefault 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SlotCode {} " `; exports[`Angular > jsx > Javascript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Javascript Test > SlotHtml 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, ContentSlotCode], }) export default class SlotCode {} " `; exports[`Angular > jsx > Javascript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Javascript Test > SlotJsx 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, ContentSlotCode], }) export default class SlotCode {} " `; exports[`Angular > jsx > Javascript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Javascript Test > SlotNamed 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SlotCode {} " `; exports[`Angular > jsx > Javascript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey; @Input() productId; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular > jsx > Javascript Test > Stamped.io 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class SmileReviews { @Input() apiKey; @Input() productId; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } " `; exports[`Angular > jsx > Javascript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular > jsx > Javascript Test > StoreComment 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class StringLiteralStore { foo = true; bar() {} } " `; exports[`Angular > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > StoreShadowVars 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } " `; exports[`Angular > jsx > Javascript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > StoreWithState 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { foo = false; bar() { return this.foo; } } " `; exports[`Angular > jsx > Javascript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes; @Input() text; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular > jsx > Javascript Test > Submit 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SubmitButton { @Input() attributes; @Input() text; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text; @Input() content; name = \\"Decadef20\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular > jsx > Javascript Test > Text 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Text { @Input() text; @Input() content; name = \\"Decadef20\\"; constructor(protected sanitizer) {} } " `; exports[`Angular > jsx > Javascript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes; @Input() placeholder; @Input() name; @Input() value; @Input() defaultValue; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular > jsx > Javascript Test > Textarea 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Textarea { @Input() attributes; @Input() placeholder; @Input() name; @Input() value; @Input() defaultValue; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id = \\"abc\\"; _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular > jsx > Javascript Test > UseValueAndFnFromStore 2`] = ` "import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id = \\"abc\\"; _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } " `; exports[`Angular > jsx > Javascript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes; @Input() fit; @Input() position; @Input() video; @Input() posterImage; @Input() autoPlay; @Input() muted; @Input() controls; @Input() loop; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular > jsx > Javascript Test > Video 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Video { @Input() attributes; @Input() fit; @Input() position; @Input() video; @Input() posterImage; @Input() autoPlay; @Input() muted; @Input() controls; @Input() loop; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() accessHere; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > allSpread 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() attributes; @Input() accessHere; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > arrowFunctionInUseStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } " `; exports[`Angular > jsx > Javascript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular > jsx > Javascript Test > basicForFragment 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } " `; exports[`Angular > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef; myContent; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular > jsx > Javascript Test > basicForNoTagReference 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForNoTagRefComponent { @Input() actions; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef; myContent; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Javascript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular > jsx > Javascript Test > basicForwardRef 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } " `; exports[`Angular > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular > jsx > Javascript Test > basicForwardRefMetadata 2`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } " `; exports[`Angular > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular > jsx > Javascript Test > basicOnUpdateReturn 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } " `; exports[`Angular > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef; @ViewChild(\\"_root\\") _root; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular > jsx > Javascript Test > basicRefAttributePassing 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef; @ViewChild(\\"_root\\") _root; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } " `; exports[`Angular > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular > jsx > Javascript Test > basicRefAttributePassingCustomRef 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing(element, customElementSelector) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } " `; exports[`Angular > jsx > Javascript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > changeDetection 2`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() count; } " `; exports[`Angular > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > class + ClassName + css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import MyComp from \\"./my-component.js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule, MyComp], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Javascript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > class + css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Javascript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > className + css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Javascript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular > jsx > Javascript Test > className 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ClassNameCode { bindings = \\"a binding\\"; } " `; exports[`Angular > jsx > Javascript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > classState 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } " `; exports[`Angular > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className; @Input() type; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > classnameProps 2`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() className; @Input() type; } " `; exports[`Angular > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular > jsx > Javascript Test > complexMeta 2`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComplexMetaRaw {} " `; exports[`Angular > jsx > Javascript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular > jsx > Javascript Test > componentWithContext 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } " `; exports[`Angular > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular > jsx > Javascript Test > componentWithContextMultiRoot 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComponentWithContext { @Input() content; constructor(public foo: Context1) {} } " `; exports[`Angular > jsx > Javascript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content; @Input() customComponents; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular > jsx > Javascript Test > contentState 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import BuilderContext from \\"@dummy/context.js\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class RenderContent { @Input() content; @Input() customComponents; } " `; exports[`Angular > jsx > Javascript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > customSelector 2`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Javascript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Input() buttonText; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Javascript Test > defaultProps 2`] = ` "import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Input() buttonText; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Javascript Test > defaultPropsOutsideComponent 2`] = ` "import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link = defaultProps[\\"link\\"]; @Input() attributes; @Input() openLinkInNewTab = defaultProps[\\"openLinkInNewTab\\"]; @Input() text = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular > jsx > Javascript Test > defaultValsWithTypes 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name; } " `; exports[`Angular > jsx > Javascript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef; myContent; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > dynamicComponent 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef; myContent; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Javascript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef; myContent; Component = HelloComponent; onClick = function onClick(event) { console.log(\\"hello\\", event); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > dynamicComponentWithEventArg 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() attributes; @Input() something; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef; myContent; Component = HelloComponent; onClick = function onClick(event) { console.log(\\"hello\\", event); }; constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular > jsx > Javascript Test > eventInputAndChange 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class EventInputAndChange { name = \\"Steve\\"; } " `; exports[`Angular > jsx > Javascript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick() { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular > jsx > Javascript Test > eventProps 2`] = ` "import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick() { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } " `; exports[`Angular > jsx > Javascript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > expressionState 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() componentRef; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } " `; exports[`Angular > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon; @Input() interactiveState; @Input() width; @Input() size; @Input() label; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular > jsx > Javascript Test > figmaMeta 2`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class FigmaButton { @Input() icon; @Input() interactiveState; @Input() width; @Input() size; @Input() label; } " `; exports[`Angular > jsx > Javascript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > functionProps 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Javascript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Javascript Test > getterState 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() foo; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } } " `; exports[`Angular > jsx > Javascript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import RenderBlock from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular > jsx > Javascript Test > import types 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import RenderBlock from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, RenderBlock], }) export default class RenderContent { @Input() renderContentProps; getRenderContentProps(block, index) { return { block: block, index: index, }; } } " `; exports[`Angular > jsx > Javascript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular > jsx > Javascript Test > importRaw 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyImportComponent {} " `; exports[`Angular > jsx > Javascript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular > jsx > Javascript Test > layerName 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyLayerNameComponent {} " `; exports[`Angular > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular > jsx > Javascript Test > multipleOnUpdate 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MultipleOnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } " `; exports[`Angular > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular > jsx > Javascript Test > multipleOnUpdateWithDeps 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } " `; exports[`Angular > jsx > Javascript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrs = { hello: \\"world\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > multipleSpreads 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); attrs = { hello: \\"world\\", }; setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > nativeAttributes 2`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() disabled; } " `; exports[`Angular > jsx > Javascript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() conditionB; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular > jsx > Javascript Test > nestedShow 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedShow { @Input() conditionA; @Input() conditionB; } " `; exports[`Angular > jsx > Javascript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular > jsx > Javascript Test > nestedStyles 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedStyles {} " `; exports[`Angular > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular > jsx > Javascript Test > normalizeLayerNames 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyNormalizedLayerNamesComponent {} " `; exports[`Angular > jsx > Javascript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular > jsx > Javascript Test > onEvent 2`] = ` "import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Embed { @ViewChild(\\"elem\\") elem; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } " `; exports[`Angular > jsx > Javascript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular > jsx > Javascript Test > onInit & onMount 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } " `; exports[`Angular > jsx > Javascript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular > jsx > Javascript Test > onInit 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnInit { @Input() name; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } " `; exports[`Angular > jsx > Javascript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular > jsx > Javascript Test > onInitPlain 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } " `; exports[`Angular > jsx > Javascript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular > jsx > Javascript Test > onMount 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } " `; exports[`Angular > jsx > Javascript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular > jsx > Javascript Test > onMountMultiple 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } " `; exports[`Angular > jsx > Javascript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular > jsx > Javascript Test > onUpdate 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnUpdate { ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } " `; exports[`Angular > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular > jsx > Javascript Test > onUpdateWithDeps 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnUpdateWithDeps { @Input() size; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } " `; exports[`Angular > jsx > Javascript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > outputEventBinding 2`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"Steve\\"; } " `; exports[`Angular > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > preserveExportOrLocalStatement 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Javascript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > preserveTyping 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() name; } " `; exports[`Angular > jsx > Javascript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular > jsx > Javascript Test > prettierInline 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class PrettierInline {} " `; exports[`Angular > jsx > Javascript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > propsDestructure 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() type; name = \\"Decadef20\\"; } " `; exports[`Angular > jsx > Javascript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > propsInterface 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() name; } " `; exports[`Angular > jsx > Javascript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > propsType 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() name; } " `; exports[`Angular > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular > jsx > Javascript Test > referencingFunInsideHook 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } " `; exports[`Angular > jsx > Javascript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block; @Input() context; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; myContent; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular > jsx > Javascript Test > renderBlock 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component.js\\"; import RenderRepeatedBlock from \\"./render-repeated-block.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, RenderRepeatedBlock, RenderBlock, BlockStyles], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block; @Input() context; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef; myContent; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Javascript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents; @Input() content; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular > jsx > Javascript Test > renderContentExample 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks.js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], standalone: true, imports: [CommonModule, RenderBlocks], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents; @Input() content; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } " `; exports[`Angular > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Javascript Test > rootFragmentMultiNode 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link; @Input() attributes; @Input() openLinkInNewTab; @Input() text; @ViewChild(\\"elRef0\\") elRef0; @ViewChild(\\"elRef1\\") elRef1; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular > jsx > Javascript Test > rootShow 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class RenderStyles { @Input() foo; } " `; exports[`Angular > jsx > Javascript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > sanitizeInnerHTML 2`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() html; } " `; exports[`Angular > jsx > Javascript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > self-referencing component 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, MyComponent], }) export default class MyComponent { @Input() name; } " `; exports[`Angular > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > self-referencing component with children 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, MyComponent], }) export default class MyComponent { @Input() name; } " `; exports[`Angular > jsx > Javascript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular > jsx > Javascript Test > setState 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } " `; exports[`Angular > jsx > Javascript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; @Input() conditionB; @Input() conditionC; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular > jsx > Javascript Test > showExpressions 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ShowWithOtherValues { @Input() conditionA; @Input() conditionB; @Input() conditionC; } " `; exports[`Angular > jsx > Javascript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA; @Input() items; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular > jsx > Javascript Test > showWithFor 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedShow { @Input() conditionA; @Input() items; trackByItem0(idx, item) { return idx; } } " `; exports[`Angular > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular > jsx > Javascript Test > showWithOtherValues 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ShowWithOtherValues { @Input() conditionA; } " `; exports[`Angular > jsx > Javascript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular > jsx > Javascript Test > showWithRootText 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ShowRootText { @Input() conditionA; } " `; exports[`Angular > jsx > Javascript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, } from \\"@angular/core\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput = defaultProps[\\"testInput\\"]; @Input() label = defaultProps[\\"label\\"]; @Input() disabled; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef; _counter = 0; _innerText = \\"a\\"; handleOutput() { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular > jsx > Javascript Test > signals 2`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SignalsTestComponent { @Input() testInput = defaultProps[\\"testInput\\"]; @Input() label = defaultProps[\\"label\\"]; @Input() disabled; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef; _counter = 0; _innerText = \\"a\\"; handleOutput() { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } " `; exports[`Angular > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.value.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id; @Input() foo; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > signalsOnUpdate 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.value.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() id; @Input() foo; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } } } " `; exports[`Angular > jsx > Javascript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > spreadAttrs 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2 } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > spreadNestedProps 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() nested; @ViewChild(\\"elRef0\\") elRef0; _listenerFns = new Map(); setAttributes(el, value, changes) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Javascript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Javascript Test > spreadProps 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Javascript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > stateInit 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() val; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } " `; exports[`Angular > jsx > Javascript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value; val = null; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > stateInitSequence 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Comp], }) export default class MyComponent { @Input() value; val = null; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } " `; exports[`Angular > jsx > Javascript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular > jsx > Javascript Test > store-async-function 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } " `; exports[`Angular > jsx > Javascript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular > jsx > Javascript Test > string-literal-store 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class StringLiteralStore { foo = 123; } " `; exports[`Angular > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular > jsx > Javascript Test > string-literal-store-kebab 2`] = ` "import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`],standalone: true,imports: [CommonModule] }) export default class StringLiteralStore { foo-bar= 123 }" `; exports[`Angular > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > styleClassAndCss 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular > jsx > Javascript Test > stylePropClassAndCss 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], standalone: true, imports: [CommonModule], }) export default class StylePropClassAndCss { @Input() attributes; } " `; exports[`Angular > jsx > Javascript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular > jsx > Javascript Test > subComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Foo from \\"./foo-sub-component.js\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Foo], }) export default class SubComponent {} " `; exports[`Angular > jsx > Javascript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular > jsx > Javascript Test > svgComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SvgComponent {} " `; exports[`Angular > jsx > Javascript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > twoForsTrackBy 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } " `; exports[`Angular > jsx > Javascript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular > jsx > Javascript Test > typeDependency 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeDependency { @Input() foo; } " `; exports[`Angular > jsx > Javascript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular > jsx > Javascript Test > typeExternalProps 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeExternalProps { @Input() name; } " `; exports[`Angular > jsx > Javascript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular > jsx > Javascript Test > typeExternalStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeExternalStore { _name = \\"test\\"; } " `; exports[`Angular > jsx > Javascript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular > jsx > Javascript Test > typeGetterStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeGetterStore { name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } } " `; exports[`Angular > jsx > Javascript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > use-style 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Javascript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > use-style-and-css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > use-style-outside-component 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Javascript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Javascript Test > useObjectWrapper 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Comp], }) export default class MyComponent { @Input() spreadAttrs; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } " `; exports[`Angular > jsx > Javascript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular > jsx > Javascript Test > useTarget 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } " `; exports[`Angular > jsx > Javascript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular > jsx > Javascript Test > webComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } " `; exports[`Angular > jsx > Remove Internal mitosis package 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Remove Internal mitosis package 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; } " `; exports[`Angular > jsx > Typescript Test > Advanced 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Advanced 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
{{i}} : {{person}}
{{person}}
{{ee}}

{{index}}

{{person}} {{index}} {{person}} {{count}} {{person}} {{i}} {{person}} {{index}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } " `; exports[`Angular > jsx > Typescript Test > AdvancedRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular > jsx > Typescript Test > AdvancedRef 2`] = ` "import { Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Received an update\\"); } } } " `; exports[`Angular > jsx > Typescript Test > Basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age: number = 1; sports: Array = [\\"\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Basic 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } @NgModule({ declarations: [MyBasicForShowComponent], imports: [CommonModule], exports: [MyBasicForShowComponent], }) export class MyBasicForShowComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Basic 3`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! >
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { DEFAULT_VALUES = DEFAULT_VALUES; name = \\"Steve\\"; underscore_fn_name() { return \\"bar\\"; } age: number = 1; sports: Array = [\\"\\"]; } " `; exports[`Angular > jsx > Typescript Test > Basic 4`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-show-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForShowComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; } " `; exports[`Angular > jsx > Typescript Test > Basic Context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Basic Context 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
{{myService.method('hello') + name}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; constructor(public myService: MyService) {} ngOnInit() { const hi = this.myService.method(\\"hi\\"); console.log(hi); if (typeof window !== \\"undefined\\") { const bye = this.myService.method(\\"hi\\"); console.log(bye); } } } " `; exports[`Angular > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnMountUpdateComponent { @Input() bye!: Props[\\"bye\\"]; @Input() hi!: Props[\\"hi\\"]; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } @NgModule({ declarations: [MyBasicOnMountUpdateComponent], imports: [CommonModule], exports: [MyBasicOnMountUpdateComponent], }) export class MyBasicOnMountUpdateComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Basic OnMount Update 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { hi: string; bye: string; } @Component({ selector: \\"my-basic-on-mount-update-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOnMountUpdateComponent { @Input() bye!: Props[\\"bye\\"]; @Input() hi!: Props[\\"hi\\"]; name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { this.name = \\"PatrickJS onInit\\" + this.hi; if (typeof window !== \\"undefined\\") { this.name = \\"PatrickJS onMount\\" + this.bye; } } } " `; exports[`Angular > jsx > Typescript Test > Basic Outputs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Basic Outputs 2`] = ` "import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessageChange = new EventEmitter(); @Output() onEvent = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } " `; exports[`Angular > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } @NgModule({ declarations: [MyBasicOutputsComponent], imports: [CommonModule], exports: [MyBasicOutputsComponent], }) export class MyBasicOutputsComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Basic Outputs Meta 2`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Output, EventEmitter, Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-outputs-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOutputsComponent { @Input() message!: any; @Output() onMessage = new EventEmitter(); @Output() onEvent = new EventEmitter(); @Output() onMessageChange = new EventEmitter(); name = \\"PatrickJS\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { this.onMessageChange.emit(this.name); this.onEvent.emit(this.message); } } } " `; exports[`Angular > jsx > Typescript Test > BasicAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > BasicAttribute 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBooleanAttribute { @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBooleanAttribute], imports: [CommonModule, MyBooleanAttributeComponentModule], exports: [MyBooleanAttribute], }) export class MyBooleanAttributeModule {} " `; exports[`Angular > jsx > Typescript Test > BasicBooleanAttribute 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; @Component({ selector: \\"my-boolean-attribute\\", template: \`
{{type}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, MyBooleanAttributeComponent], }) export default class MyBooleanAttribute { @Input() type!: Props[\\"type\\"]; } " `; exports[`Angular > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; } @NgModule({ declarations: [MyBasicChildComponent], imports: [ CommonModule, MyBasicComponentModule, MyBasicOnMountUpdateComponentModule, MyBasicOutputsComponentModule, ], exports: [MyBasicChildComponent], }) export class MyBasicChildComponentModule {} " `; exports[`Angular > jsx > Typescript Test > BasicChildComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; @Component({ selector: \\"my-basic-child-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [ CommonModule, MyBasicComponent, MyBasicOnMountUpdateComponent, MyBasicOutputsComponent, ], }) export default class MyBasicChildComponent { name = \\"Steve\\"; dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; } " `; exports[`Angular > jsx > Typescript Test > BasicFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } @NgModule({ declarations: [MyBasicForComponent], imports: [CommonModule], exports: [MyBasicForComponent], }) export class MyBasicForComponentModule {} " `; exports[`Angular > jsx > Typescript Test > BasicFor 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-component\\", template: \`
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForComponent { name = \\"PatrickJS\\"; names = [\\"Steve\\", \\"PatrickJS\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount code\\"); } } } " `; exports[`Angular > jsx > Typescript Test > BasicRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } @NgModule({ declarations: [MyBasicRefComponent], imports: [CommonModule], exports: [MyBasicRefComponent], }) export class MyBasicRefComponentModule {} " `; exports[`Angular > jsx > Typescript Test > BasicRef 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-component\\", template: \`
Hello {{lowerCaseName()}} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicRefComponent { @Input() showInput!: Props[\\"showInput\\"]; @ViewChild(\\"inputRef\\") inputRef!: ElementRef; @ViewChild(\\"inputNoArgRef\\") inputNoArgRef!: ElementRef; name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.nativeElement?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; } " `; exports[`Angular > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } @NgModule({ declarations: [MyBasicRefAssignmentComponent], imports: [CommonModule], exports: [MyBasicRefAssignmentComponent], }) export class MyBasicRefAssignmentComponentModule {} " `; exports[`Angular > jsx > Typescript Test > BasicRefAssignment 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } @Component({ selector: \\"my-basic-ref-assignment-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicRefAssignmentComponent { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this._holdValueRef); this._holdValueRef = this._holdValueRef + \\"JS\\"; }; private _holdValueRef = \\"Patrick\\"; } " `; exports[`Angular > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } @NgModule({ declarations: [MyPreviousComponent], imports: [CommonModule], exports: [MyPreviousComponent], }) export class MyPreviousComponentModule {} " `; exports[`Angular > jsx > Typescript Test > BasicRefPrevious 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } @Component({ selector: \\"my-previous-component\\", template: \`

Now: {{count}} , before: {{this._prevCount}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyPreviousComponent { count = 0; private _prevCount = this.count; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this._prevCount = this.count; } } } " `; exports[`Angular > jsx > Typescript Test > Button 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Typescript Test > Button 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > Columns 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], }) export default class Column { @Input() columns!: ColumnProps[\\"columns\\"]; @Input() space!: ColumnProps[\\"space\\"]; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } @NgModule({ declarations: [Column], imports: [CommonModule], exports: [Column], }) export class ColumnModule {} " `; exports[`Angular > jsx > Typescript Test > Columns 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @Component({ selector: \\"column\\", template: \`
{{column.content}} {{index}}
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, ], standalone: true, imports: [CommonModule], }) export default class Column { @Input() columns!: ColumnProps[\\"columns\\"]; @Input() space!: ColumnProps[\\"space\\"]; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } " `; exports[`Angular > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotCode { @Input() slotTesting!: Props[\\"slotTesting\\"]; } @NgModule({ declarations: [ContentSlotCode], imports: [CommonModule], exports: [ContentSlotCode], }) export class ContentSlotCodeModule {} " `; exports[`Angular > jsx > Typescript Test > ContentSlotHtml 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-code\\", template: \`

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ContentSlotCode { @Input() slotTesting!: Props[\\"slotTesting\\"]; } " `; exports[`Angular > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ContentSlotJsxCode { @Input() slotContent: Props[\\"slotContent\\"] = defaultProps[\\"slotContent\\"]; @Input() slotReference: Props[\\"slotReference\\"] = defaultProps[\\"slotReference\\"]; @Input() attributes!: Props[\\"attributes\\"]; @Input() content: Props[\\"content\\"] = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ContentSlotJsxCode], imports: [CommonModule], exports: [ContentSlotJsxCode], }) export class ContentSlotJsxCodeModule {} " `; exports[`Angular > jsx > Typescript Test > ContentSlotJSX 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string | JSX.Element; }; const defaultProps: any = { content: \\"\\", slotReference: undefined, slotContent: undefined, }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"content-slot-jsx-code\\", template: \`
{{content}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ContentSlotJsxCode { @Input() slotContent: Props[\\"slotContent\\"] = defaultProps[\\"slotContent\\"]; @Input() slotReference: Props[\\"slotReference\\"] = defaultProps[\\"slotReference\\"]; @Input() attributes!: Props[\\"attributes\\"]; @Input() content: Props[\\"content\\"] = defaultProps[\\"content\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); name = \\"king\\"; showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > CustomCode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular > jsx > Typescript Test > CustomCode 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular > jsx > Typescript Test > Embed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } @NgModule({ declarations: [CustomCode], imports: [CommonModule], exports: [CustomCode], }) export class CustomCodeModule {} " `; exports[`Angular > jsx > Typescript Test > Embed 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @Component({ selector: \\"custom-code\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class CustomCode { @Input() replaceNodes!: CustomCodeProps[\\"replaceNodes\\"]; @Input() code!: CustomCodeProps[\\"code\\"]; @ViewChild(\\"elem\\") elem!: ElementRef; scriptsInserted = []; scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem?.nativeElement && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem?.nativeElement.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } constructor(protected sanitizer: DomSanitizer) {} ngOnInit() { if (typeof window !== \\"undefined\\") { this.findAndRunScripts(); } } } " `; exports[`Angular > jsx > Typescript Test > Form 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], }) export default class FormComponent { builder = builder; @Input() previewState!: FormProps[\\"previewState\\"]; @Input() sendWithJs!: FormProps[\\"sendWithJs\\"]; @Input() sendSubmissionsTo!: FormProps[\\"sendSubmissionsTo\\"]; @Input() action!: FormProps[\\"action\\"]; @Input() customHeaders!: FormProps[\\"customHeaders\\"]; @Input() contentType!: FormProps[\\"contentType\\"]; @Input() sendSubmissionsToEmail!: FormProps[\\"sendSubmissionsToEmail\\"]; @Input() name!: FormProps[\\"name\\"]; @Input() method!: FormProps[\\"method\\"]; @Input() errorMessagePath!: FormProps[\\"errorMessagePath\\"]; @Input() resetFormOnSubmit!: FormProps[\\"resetFormOnSubmit\\"]; @Input() successUrl!: FormProps[\\"successUrl\\"]; @Input() validate!: FormProps[\\"validate\\"]; @Input() attributes!: FormProps[\\"attributes\\"]; @Input() builderBlock!: FormProps[\\"builderBlock\\"]; @Input() errorMessage!: FormProps[\\"errorMessage\\"]; @Input() sendingMessage!: FormProps[\\"sendingMessage\\"]; @Input() successMessage!: FormProps[\\"successMessage\\"]; @ViewChild(\\"formRef\\") formRef!: ElementRef; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormComponent], imports: [CommonModule, BuilderBlockComponentModule, BuilderBlocksModule], exports: [FormComponent], }) export class FormComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Form 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; @Component({ selector: \\"form-component\\", template: \`
{{responseData | json}}
\`, styles: [ \` :host { display: contents; } .pre { padding: 10px; color: red; text-align: center; } \`, ], standalone: true, imports: [CommonModule, BuilderBlockComponent, BuilderBlocks], }) export default class FormComponent { builder = builder; @Input() previewState!: FormProps[\\"previewState\\"]; @Input() sendWithJs!: FormProps[\\"sendWithJs\\"]; @Input() sendSubmissionsTo!: FormProps[\\"sendSubmissionsTo\\"]; @Input() action!: FormProps[\\"action\\"]; @Input() customHeaders!: FormProps[\\"customHeaders\\"]; @Input() contentType!: FormProps[\\"contentType\\"]; @Input() sendSubmissionsToEmail!: FormProps[\\"sendSubmissionsToEmail\\"]; @Input() name!: FormProps[\\"name\\"]; @Input() method!: FormProps[\\"method\\"]; @Input() errorMessagePath!: FormProps[\\"errorMessagePath\\"]; @Input() resetFormOnSubmit!: FormProps[\\"resetFormOnSubmit\\"]; @Input() successUrl!: FormProps[\\"successUrl\\"]; @Input() validate!: FormProps[\\"validate\\"]; @Input() attributes!: FormProps[\\"attributes\\"]; @Input() builderBlock!: FormProps[\\"builderBlock\\"]; @Input() errorMessage!: FormProps[\\"errorMessage\\"]; @Input() sendingMessage!: FormProps[\\"sendingMessage\\"]; @Input() successMessage!: FormProps[\\"successMessage\\"]; @ViewChild(\\"formRef\\") formRef!: ElementRef; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); formState = \\"unsubmitted\\"; responseData = null; formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef?.nativeElement.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef?.nativeElement) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef?.nativeElement.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef?.nativeElement) { this.formRef?.nativeElement.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } trackByBlock0(index, block) { return block.id; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > Image 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], }) export default class Image { @Input() lazy!: ImageProps[\\"lazy\\"]; @Input() altText!: ImageProps[\\"altText\\"]; @Input() _class!: ImageProps[\\"_class\\"]; @Input() image!: ImageProps[\\"image\\"]; @Input() srcset!: ImageProps[\\"srcset\\"]; @Input() sizes!: ImageProps[\\"sizes\\"]; @ViewChild(\\"pictureRef\\") pictureRef!: ElementRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } @NgModule({ declarations: [Image], imports: [CommonModule], exports: [Image], }) export class ImageModule {} " `; exports[`Angular > jsx > Typescript Test > Image 2`] = ` "import { Component, ViewChild, ElementRef, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @Component({ selector: \\"image\\", template: \`
\`, styles: [ \` :host { display: contents; } .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, ], standalone: true, imports: [CommonModule], }) export default class Image { @Input() lazy!: ImageProps[\\"lazy\\"]; @Input() altText!: ImageProps[\\"altText\\"]; @Input() _class!: ImageProps[\\"_class\\"]; @Input() image!: ImageProps[\\"image\\"]; @Input() srcset!: ImageProps[\\"srcset\\"]; @Input() sizes!: ImageProps[\\"sizes\\"]; @ViewChild(\\"pictureRef\\") pictureRef!: ElementRef; scrollListener = null; imageLoaded = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; load = false; ngOnInit() { if (typeof window !== \\"undefined\\") { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef?.nativeElement) { const rect = this.pictureRef?.nativeElement.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } } ngOnDestroy() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } } " `; exports[`Angular > jsx > Typescript Test > Image State 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } @NgModule({ declarations: [ImgStateComponent], imports: [CommonModule], exports: [ImgStateComponent], }) export class ImgStateComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Image State 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"img-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ImgStateComponent { canShow = true; images = [\\"http://example.com/qwik.png\\"]; } " `; exports[`Angular > jsx > Typescript Test > Img 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ImgComponent { @Input() backgroundSize!: ImgProps[\\"backgroundSize\\"]; @Input() backgroundPosition!: ImgProps[\\"backgroundPosition\\"]; @Input() attributes!: ImgProps[\\"attributes\\"]; @Input() imgSrc!: ImgProps[\\"imgSrc\\"]; @Input() altText!: ImgProps[\\"altText\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [ImgComponent], imports: [CommonModule], exports: [ImgComponent], }) export class ImgComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Img 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"img-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ImgComponent { @Input() backgroundSize!: ImgProps[\\"backgroundSize\\"]; @Input() backgroundPosition!: ImgProps[\\"backgroundPosition\\"]; @Input() attributes!: ImgProps[\\"attributes\\"]; @Input() imgSrc!: ImgProps[\\"imgSrc\\"]; @Input() altText!: ImgProps[\\"altText\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > Input 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FormInputComponent { @Input() attributes!: FormInputProps[\\"attributes\\"]; @Input() defaultValue!: FormInputProps[\\"defaultValue\\"]; @Input() placeholder!: FormInputProps[\\"placeholder\\"]; @Input() type!: FormInputProps[\\"type\\"]; @Input() name!: FormInputProps[\\"name\\"]; @Input() value!: FormInputProps[\\"value\\"]; @Input() required!: FormInputProps[\\"required\\"]; @Input() onChange!: FormInputProps[\\"onChange\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [FormInputComponent], imports: [CommonModule], exports: [FormInputComponent], }) export class FormInputComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Input 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"form-input-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class FormInputComponent { @Input() attributes!: FormInputProps[\\"attributes\\"]; @Input() defaultValue!: FormInputProps[\\"defaultValue\\"]; @Input() placeholder!: FormInputProps[\\"placeholder\\"]; @Input() type!: FormInputProps[\\"type\\"]; @Input() name!: FormInputProps[\\"name\\"]; @Input() value!: FormInputProps[\\"value\\"]; @Input() required!: FormInputProps[\\"required\\"]; @Input() onChange!: FormInputProps[\\"onChange\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > InputParent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Stepper { handleChange(value: string) { console.log(value); } } @NgModule({ declarations: [Stepper], imports: [CommonModule, FormInputComponentModule], exports: [Stepper], }) export class StepperModule {} " `; exports[`Angular > jsx > Typescript Test > InputParent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import FormInputComponent from \\"./input.raw\\"; @Component({ selector: \\"stepper\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, FormInputComponent], }) export default class Stepper { handleChange(value: string) { console.log(value); } } " `; exports[`Angular > jsx > Typescript Test > NestedStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedStore { _id: MyStore[\\"_id\\"] = \\"abc\\"; _messageId: MyStore[\\"_messageId\\"] = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } @NgModule({ declarations: [NestedStore], imports: [CommonModule], exports: [NestedStore], }) export class NestedStoreModule {} " `; exports[`Angular > jsx > Typescript Test > NestedStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type MyStore = { _id?: string; _messageId?: string; }; @Component({ selector: \\"nested-store\\", template: \`
Test

Message

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedStore { _id: MyStore[\\"_id\\"] = \\"abc\\"; _messageId: MyStore[\\"_messageId\\"] = null; ngOnInit() { this._messageId = this._id + \\"-message\\"; } } " `; exports[`Angular > jsx > Typescript Test > RawText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RawText { @Input() attributes!: RawTextProps[\\"attributes\\"]; @Input() text!: RawTextProps[\\"text\\"]; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [RawText], imports: [CommonModule], exports: [RawText], }) export class RawTextModule {} " `; exports[`Angular > jsx > Typescript Test > RawText 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @Component({ selector: \\"raw-text\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class RawText { @Input() attributes!: RawTextProps[\\"attributes\\"]; @Input() text!: RawTextProps[\\"text\\"]; constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular > jsx > Typescript Test > Section 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @Input() maxWidth!: SectionProps[\\"maxWidth\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionComponent], imports: [CommonModule], exports: [SectionComponent], }) export class SectionComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Section 2`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SectionStateComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); max = 42; items = [42]; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SectionStateComponent], imports: [CommonModule], exports: [SectionStateComponent], }) export class SectionStateComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Section 3`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SectionComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @Input() maxWidth!: SectionProps[\\"maxWidth\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > Section 4`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } @Component({ selector: \\"section-state-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SectionStateComponent { @Input() attributes!: SectionProps[\\"attributes\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); max = 42; items = [42]; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > Select 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SelectComponent { @Input() attributes!: FormSelectProps[\\"attributes\\"]; @Input() value!: FormSelectProps[\\"value\\"]; @Input() defaultValue!: FormSelectProps[\\"defaultValue\\"]; @Input() name!: FormSelectProps[\\"name\\"]; @Input() options!: FormSelectProps[\\"options\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SelectComponent], imports: [CommonModule], exports: [SelectComponent], }) export class SelectComponentModule {} " `; exports[`Angular > jsx > Typescript Test > Select 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"select-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SelectComponent { @Input() attributes!: FormSelectProps[\\"attributes\\"]; @Input() value!: FormSelectProps[\\"value\\"]; @Input() defaultValue!: FormSelectProps[\\"defaultValue\\"]; @Input() name!: FormSelectProps[\\"name\\"]; @Input() options!: FormSelectProps[\\"options\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > SlotDefault 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Typescript Test > SlotDefault 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default content
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SlotCode {} " `; exports[`Angular > jsx > Typescript Test > SlotHtml 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Typescript Test > SlotHtml 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, ContentSlotCode], }) export default class SlotCode {} " `; exports[`Angular > jsx > Typescript Test > SlotJsx 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule, ContentSlotCodeModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Typescript Test > SlotJsx 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; @Component({ selector: \\"slot-code\\", template: \`
Hello
\\"> \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, ContentSlotCode], }) export default class SlotCode {} " `; exports[`Angular > jsx > Typescript Test > SlotNamed 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SlotCode {} @NgModule({ declarations: [SlotCode], imports: [CommonModule], exports: [SlotCode], }) export class SlotCodeModule {} " `; exports[`Angular > jsx > Typescript Test > SlotNamed 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string; }; @Component({ selector: \\"slot-code\\", template: \`
Default left Default Child
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SlotCode {} " `; exports[`Angular > jsx > Typescript Test > Stamped.io 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], }) export default class SmileReviews { @Input() apiKey!: SmileReviewsProps[\\"apiKey\\"]; @Input() productId!: SmileReviewsProps[\\"productId\\"]; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } @NgModule({ declarations: [SmileReviews], imports: [CommonModule], exports: [SmileReviews], }) export class SmileReviewsModule {} " `; exports[`Angular > jsx > Typescript Test > Stamped.io 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; @Component({ selector: \\"smile-reviews\\", template: \`
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
\`, styles: [ \` :host { display: contents; } .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class SmileReviews { @Input() apiKey!: SmileReviewsProps[\\"apiKey\\"]; @Input() productId!: SmileReviewsProps[\\"productId\\"]; reviews = []; name = \\"test\\"; showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } trackByReview0(index, review) { return review.id; } ngOnInit() { if (typeof window !== \\"undefined\\") { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } } } " `; exports[`Angular > jsx > Typescript Test > StoreComment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = true; bar() {} } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular > jsx > Typescript Test > StoreComment 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", template: \` {{foo}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class StringLiteralStore { foo = true; bar() {} } " `; exports[`Angular > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > StoreShadowVars 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` {{foo(errors)}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { errors = {}; foo(errors) { return errors; } } " `; exports[`Angular > jsx > Typescript Test > StoreWithState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { foo = false; bar() { return this.foo; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > StoreWithState 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` {{bar()}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { foo = false; bar() { return this.foo; } } " `; exports[`Angular > jsx > Typescript Test > Submit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubmitButton { @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [SubmitButton], imports: [CommonModule], exports: [SubmitButton], }) export class SubmitButtonModule {} " `; exports[`Angular > jsx > Typescript Test > Submit 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; } @Component({ selector: \\"submit-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SubmitButton { @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > Text 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Text { @Input() text!: TextProps[\\"text\\"]; @Input() content!: TextProps[\\"content\\"]; name = \\"Decadef20\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [Text], imports: [CommonModule], exports: [Text], }) export class TextModule {} " `; exports[`Angular > jsx > Typescript Test > Text 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; @Component({ selector: \\"text\\", template: \`
my name

')\\" >
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Text { @Input() text!: TextProps[\\"text\\"]; @Input() content!: TextProps[\\"content\\"]; name = \\"Decadef20\\"; constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular > jsx > Typescript Test > Textarea 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Textarea { @Input() attributes!: TextareaProps[\\"attributes\\"]; @Input() placeholder!: TextareaProps[\\"placeholder\\"]; @Input() name!: TextareaProps[\\"name\\"]; @Input() value!: TextareaProps[\\"value\\"]; @Input() defaultValue!: TextareaProps[\\"defaultValue\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Textarea], imports: [CommonModule], exports: [Textarea], }) export class TextareaModule {} " `; exports[`Angular > jsx > Typescript Test > Textarea 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } @Component({ selector: \\"textarea\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Textarea { @Input() attributes!: TextareaProps[\\"attributes\\"]; @Input() placeholder!: TextareaProps[\\"placeholder\\"]; @Input() name!: TextareaProps[\\"name\\"]; @Input() value!: TextareaProps[\\"value\\"]; @Input() defaultValue!: TextareaProps[\\"defaultValue\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, SimpleChanges } from \\"@angular/core\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id: MyStore[\\"_id\\"] = \\"abc\\"; _active: MyStore[\\"_active\\"] = false; _do(id?: string): ReturnType { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } @NgModule({ declarations: [UseValueAndFnFromStore], imports: [CommonModule], exports: [UseValueAndFnFromStore], }) export class UseValueAndFnFromStoreModule {} " `; exports[`Angular > jsx > Typescript Test > UseValueAndFnFromStore 2`] = ` "import { Output, EventEmitter, Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @Component({ selector: \\"use-value-and-fn-from-store\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class UseValueAndFnFromStore { @Output() onChange = new EventEmitter(); _id: MyStore[\\"_id\\"] = \\"abc\\"; _active: MyStore[\\"_active\\"] = false; _do(id?: string): ReturnType { this._active = !!id; if (this.onChange) { this.onChange.emit(this._active); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { if (this._do) { this._do(this._id); } } } } " `; exports[`Angular > jsx > Typescript Test > Video 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Video { @Input() attributes!: VideoProps[\\"attributes\\"]; @Input() fit!: VideoProps[\\"fit\\"]; @Input() position!: VideoProps[\\"position\\"]; @Input() video!: VideoProps[\\"video\\"]; @Input() posterImage!: VideoProps[\\"posterImage\\"]; @Input() autoPlay!: VideoProps[\\"autoPlay\\"]; @Input() muted!: VideoProps[\\"muted\\"]; @Input() controls!: VideoProps[\\"controls\\"]; @Input() loop!: VideoProps[\\"loop\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Video], imports: [CommonModule], exports: [Video], }) export class VideoModule {} " `; exports[`Angular > jsx > Typescript Test > Video 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } @Component({ selector: \\"video\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Video { @Input() attributes!: VideoProps[\\"attributes\\"]; @Input() fit!: VideoProps[\\"fit\\"]; @Input() position!: VideoProps[\\"position\\"]; @Input() video!: VideoProps[\\"video\\"]; @Input() posterImage!: VideoProps[\\"posterImage\\"]; @Input() autoPlay!: VideoProps[\\"autoPlay\\"]; @Input() muted!: VideoProps[\\"muted\\"]; @Input() controls!: VideoProps[\\"controls\\"]; @Input() loop!: VideoProps[\\"loop\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > allSpread 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() accessHere!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer: Renderer2) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > allSpread 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run natively in React, Vue, Svelte, Qwik, and many more frameworks!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() attributes!: any; @Input() accessHere!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrsUsingUseState = { hello: \\"world\\", }; properties = { style: \\"color: blue\\", onClick: () => console.log(\\"pressed\\"), }; specifics = { someSpecificState: \\"specific\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } elRef0_state_0 = null; constructor(private renderer: Renderer2) {} ngOnInit() { this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; } ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrsUsingUseState); this.setAttributes(this.elRef0?.nativeElement, this.properties); this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef0?.nativeElement, this.elRef0_state_0); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrsUsingUseState, changes[\\"attrsUsingUseState\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.properties, changes[\\"properties\\"]?.currentValue ); this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.elRef0_state_0 = { someOtherAttrs: this.accessHere, someStateAttrs: this.specifics, }; this.setAttributes( this.elRef0?.nativeElement, this.elRef0_state_0, changes[\\"elRef0_state_0\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > arrowFunctionInUseStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } } " `; exports[`Angular > jsx > Typescript Test > basicForFragment 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } @NgModule({ declarations: [BasicForFragment], imports: [CommonModule], exports: [BasicForFragment], }) export class BasicForFragmentModule {} " `; exports[`Angular > jsx > Typescript Test > basicForFragment 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-for-fragment\\", template: \`
{{option}}
{{option}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class BasicForFragment { id = \\"xyz\\"; trackByOption0(_, option) { return \`key-\${option}\`; } trackByOption1(_, option) { return \`\${this.id}-\${option}\`; } trackByOption2(_, option) { return \`\${this.id}-\${option}\`; } } " `; exports[`Angular > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicForNoTagRefComponent { @Input() actions!: any; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef!: TemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef!: TemplateRef; myContent?: any[][]; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyBasicForNoTagRefComponent], imports: [CommonModule], exports: [MyBasicForNoTagRefComponent], }) export class MyBasicForNoTagRefComponentModule {} " `; exports[`Angular > jsx > Typescript Test > basicForNoTagReference 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-for-no-tag-ref-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForNoTagRefComponent { @Input() actions!: any; @ViewChild(\\"tagnamegetterTemplate\\", { static: true }) tagnamegetterTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; @ViewChild(\\"tagnameTemplate\\", { static: true }) tagnameTemplateRef!: TemplateRef; @ViewChild(\\"iconTemplate\\", { static: true }) iconTemplateRef!: TemplateRef; myContent?: any[][]; name = \\"VincentW\\"; TagName = \\"div\\"; tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.tagnamegetterTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.tagnameTemplateRef).rootNodes, this.vcRef.createEmbeddedView(this.iconTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Typescript Test > basicForwardRef 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular > jsx > Typescript Test > basicForwardRef 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } " `; exports[`Angular > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } @NgModule({ declarations: [MyBasicForwardRefComponent], imports: [CommonModule], exports: [MyBasicForwardRefComponent], }) export class MyBasicForwardRefComponentModule {} " `; exports[`Angular > jsx > Typescript Test > basicForwardRefMetadata 2`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @Component({ selector: \\"my-basic-forward-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicForwardRefComponent { name = \\"PatrickJS\\"; } " `; exports[`Angular > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } @NgModule({ declarations: [MyBasicOnUpdateReturnComponent], imports: [CommonModule], exports: [MyBasicOnUpdateReturnComponent], }) export class MyBasicOnUpdateReturnComponentModule {} " `; exports[`Angular > jsx > Typescript Test > basicOnUpdateReturn 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-on-update-return-component\\", template: \`
Hello! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicOnUpdateReturnComponent { name = \\"PatrickJS\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } } } " `; exports[`Angular > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; @ViewChild(\\"_root\\") _root!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingComponent], imports: [CommonModule], exports: [BasicRefAttributePassingComponent], }) export class BasicRefAttributePassingComponentModule {} " `; exports[`Angular > jsx > Typescript Test > basicRefAttributePassing 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class BasicRefAttributePassingComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; @ViewChild(\\"_root\\") _root!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngAfterViewInit() { const element: HTMLElement | null = this._root?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-component\\" ); } } " `; exports[`Angular > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } @NgModule({ declarations: [BasicRefAttributePassingCustomRefComponent], imports: [CommonModule], exports: [BasicRefAttributePassingCustomRefComponent], }) export class BasicRefAttributePassingCustomRefComponentModule {} " `; exports[`Angular > jsx > Typescript Test > basicRefAttributePassingCustomRef 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"basic-ref-attribute-passing-custom-ref-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class BasicRefAttributePassingCustomRefComponent { @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } ngAfterViewInit() { const element: HTMLElement | null = this.buttonRef?.nativeElement; this.enableAttributePassing( element, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } } " `; exports[`Angular > jsx > Typescript Test > changeDetection 1`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() count!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > changeDetection 2`] = ` "/** useMetadata: {\\"angular\\":{\\"changeDetection\\":\\"OnPush\\"}} */ import { Component, Input, ChangeDetectionStrategy } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{count}}
\`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() count!: any; } " `; exports[`Angular > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule, MyCompModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > class + ClassName + css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import MyComp from \\"./my-component.js\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule, MyComp], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Typescript Test > class + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > class + css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Typescript Test > className + css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > className + css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Typescript Test > className 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ClassNameCode { bindings = \\"a binding\\"; } @NgModule({ declarations: [ClassNameCode], imports: [CommonModule], exports: [ClassNameCode], }) export class ClassNameCodeModule {} " `; exports[`Angular > jsx > Typescript Test > className 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; @Component({ selector: \\"class-name-code\\", template: \`
Without Binding
With binding
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ClassNameCode { bindings = \\"a binding\\"; } " `; exports[`Angular > jsx > Typescript Test > classState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > classState 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { classState = \\"testClassName\\"; styleState = { color: \\"red\\", }; } " `; exports[`Angular > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() className!: Props[\\"className\\"]; @Input() type!: Props[\\"type\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > classnameProps 2`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { children: any; className: string; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() className!: Props[\\"className\\"]; @Input() type!: Props[\\"type\\"]; } " `; exports[`Angular > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComplexMetaRaw {} @NgModule({ declarations: [ComplexMetaRaw], imports: [CommonModule], exports: [ComplexMetaRaw], }) export class ComplexMetaRawModule {} " `; exports[`Angular > jsx > Typescript Test > complexMeta 2`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"complex-meta-raw\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComplexMetaRaw {} " `; exports[`Angular > jsx > Typescript Test > componentWithContext 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular > jsx > Typescript Test > componentWithContext 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } " `; exports[`Angular > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } @NgModule({ declarations: [ComponentWithContext], imports: [CommonModule], exports: [ComponentWithContext], }) export class ComponentWithContextModule {} " `; exports[`Angular > jsx > Typescript Test > componentWithContextMultiRoot 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; @Component({ selector: \\"component-with-context\\", template: \` {{foo.value}}
other
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComponentWithContext { @Input() content!: ComponentWithContextProps[\\"content\\"]; constructor(public foo: Context1) {} } " `; exports[`Angular > jsx > Typescript Test > contentState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() content!: any; @Input() customComponents!: any; } @NgModule({ declarations: [RenderContent], imports: [CommonModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular > jsx > Typescript Test > contentState 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import BuilderContext from \\"@dummy/context.js\\"; @Component({ selector: \\"render-content\\", template: \`
setting context
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class RenderContent { @Input() content!: any; @Input() customComponents!: any; } " `; exports[`Angular > jsx > Typescript Test > customSelector 1`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > customSelector 2`] = ` "/** useMetadata: {\\"angular\\":{\\"selector\\":\\"not-my-component\\"}} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"not-my-component\\", template: \` My selector shouldn't be my-component! \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Typescript Test > defaultProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Input() buttonText!: ButtonProps[\\"buttonText\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Typescript Test > defaultProps 2`] = ` "import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Input() buttonText!: ButtonProps[\\"buttonText\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Typescript Test > defaultPropsOutsideComponent 2`] = ` "import { Output, EventEmitter, Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const defaultProps: any = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, }; @Component({ selector: \\"button\\", template: \`
{{text}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link: ButtonProps[\\"link\\"] = defaultProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab: ButtonProps[\\"openLinkInNewTab\\"] = defaultProps[\\"openLinkInNewTab\\"]; @Input() text: ButtonProps[\\"text\\"] = defaultProps[\\"text\\"]; @Output() onClick = new EventEmitter(); @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name!: Props[\\"name\\"]; } @NgModule({ declarations: [ComponentWithTypes], imports: [CommonModule], exports: [ComponentWithTypes], }) export class ComponentWithTypesModule {} " `; exports[`Angular > jsx > Typescript Test > defaultValsWithTypes 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; @Component({ selector: \\"component-with-types\\", template: \`
Hello {{name || DEFAULT_VALUES.name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ComponentWithTypes { DEFAULT_VALUES = DEFAULT_VALUES; @Input() name!: Props[\\"name\\"]; } " `; exports[`Angular > jsx > Typescript Test > dynamicComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef!: TemplateRef; myContent?: any[][]; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > dynamicComponent 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"objTemplate\\", { static: true }) objTemplateRef!: TemplateRef; myContent?: any[][]; obj = { name: \\"foo\\", Component: FooComponent, }; onClick = function onClick() { console.log(\\"hello\\"); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.objTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Typescript Test > dynamicComponentWithEventArg 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef!: TemplateRef; myContent?: any[][]; Component = HelloComponent; onClick = function onClick(event: any) { console.log(\\"hello\\", event); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > dynamicComponentWithEventArg 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` hello \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() attributes!: any; @Input() something!: any; @ViewChild(\\"componentTemplate\\", { static: true }) componentTemplateRef!: TemplateRef; myContent?: any[][]; Component = HelloComponent; onClick = function onClick(event: any) { console.log(\\"hello\\", event); }; constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.componentTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], }) export default class EventInputAndChange { name = \\"Steve\\"; } @NgModule({ declarations: [EventInputAndChange], imports: [CommonModule], exports: [EventInputAndChange], }) export class EventInputAndChangeModule {} " `; exports[`Angular > jsx > Typescript Test > eventInputAndChange 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"event-input-and-change\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .input { color: red; } \`, ], standalone: true, imports: [CommonModule], }) export default class EventInputAndChange { name = \\"Steve\\"; } " `; exports[`Angular > jsx > Typescript Test > eventProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick(): ReturnType { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } @NgModule({ declarations: [EventPropsComponent], imports: [CommonModule], exports: [EventPropsComponent], }) export class EventPropsComponentModule {} " `; exports[`Angular > jsx > Typescript Test > eventProps 2`] = ` "import { Output, EventEmitter, Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { EventProps, EventState } from \\"./event-props.type\\"; @Component({ selector: \\"event-props-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class EventPropsComponent { @Output() onGetVoid = new EventEmitter(); @Output() onEnter = new EventEmitter(); @Output() onPass = new EventEmitter(); handleClick(): ReturnType { if (this.onGetVoid) { this.onGetVoid.emit(); } if (this.onEnter) { console.log(this.onEnter.emit()); } if (this.onPass) { this.onPass.emit(\\"test\\"); } } } " `; exports[`Angular > jsx > Typescript Test > expressionState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() componentRef!: any; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > expressionState 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{refToUse}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() componentRef!: any; refToUse = null; ngOnInit() { this.refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; } } " `; exports[`Angular > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class FigmaButton { @Input() icon!: any; @Input() interactiveState!: any; @Input() width!: any; @Input() size!: any; @Input() label!: any; } @NgModule({ declarations: [FigmaButton], imports: [CommonModule], exports: [FigmaButton], }) export class FigmaButtonModule {} " `; exports[`Angular > jsx > Typescript Test > figmaMeta 2`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"figma-button\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class FigmaButton { @Input() icon!: any; @Input() interactiveState!: any; @Input() width!: any; @Input() size!: any; @Input() label!: any; } " `; exports[`Angular > jsx > Typescript Test > functionProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > functionProps 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface MyBasicComponentProps { id: string; } @Component({ selector: \\"my-basic-component\\", template: \`

x\\" [attr.f1]=\\"x => x\\" [attr.f2]=\\"x => {}\\" [attr.f3]=\\"function () { return x; }\\" [attr.f4]=\\"function (x) { return x; }\\" [attr.f5]=\\"function (x) { return; }\\" [attr.f6]=\\"function () { return; }\\" [attr.f7]=\\"(a, b, c) => a + b + c\\" >

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Typescript Test > getterState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() foo!: ButtonProps[\\"foo\\"]; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Typescript Test > getterState 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { foo: string; } @Component({ selector: \\"button\\", template: \`

{{foo2}}

{{bar}}

{{baz(1)}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() foo!: ButtonProps[\\"foo\\"]; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } } " `; exports[`Angular > jsx > Typescript Test > import types 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderContent { @Input() renderContentProps!: RenderContentProps[\\"renderContentProps\\"]; getRenderContentProps(block, index) { return { block: block, index: index, }; } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlockModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular > jsx > Typescript Test > import types 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; @Component({ selector: \\"render-content\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, RenderBlock], }) export default class RenderContent { @Input() renderContentProps!: RenderContentProps[\\"renderContentProps\\"]; getRenderContentProps(block, index) { return { block: block, index: index, }; } } " `; exports[`Angular > jsx > Typescript Test > importRaw 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyImportComponent {} @NgModule({ declarations: [MyImportComponent], imports: [CommonModule], exports: [MyImportComponent], }) export class MyImportComponentModule {} " `; exports[`Angular > jsx > Typescript Test > importRaw 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-import-component\\", template: \`
Testing which imports get excluded!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyImportComponent {} " `; exports[`Angular > jsx > Typescript Test > layerName 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], }) export default class MyLayerNameComponent {} @NgModule({ declarations: [MyLayerNameComponent], imports: [CommonModule], exports: [MyLayerNameComponent], }) export class MyLayerNameComponentModule {} " `; exports[`Angular > jsx > Typescript Test > layerName 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-layer-name-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } .layer-name { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyLayerNameComponent {} " `; exports[`Angular > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } @NgModule({ declarations: [MultipleOnUpdate], imports: [CommonModule], exports: [MultipleOnUpdate], }) export class MultipleOnUpdateModule {} " `; exports[`Angular > jsx > Typescript Test > multipleOnUpdate 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MultipleOnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } } } " `; exports[`Angular > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } @NgModule({ declarations: [MultipleOnUpdateWithDeps], imports: [CommonModule], exports: [MultipleOnUpdateWithDeps], }) export class MultipleOnUpdateWithDepsModule {} " `; exports[`Angular > jsx > Typescript Test > multipleOnUpdateWithDeps 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"multiple-on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MultipleOnUpdateWithDeps { a = \\"a\\"; b = \\"b\\"; c = \\"c\\"; d = \\"d\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } } } " `; exports[`Angular > jsx > Typescript Test > multipleSpreads 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrs = { hello: \\"world\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > multipleSpreads 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); attrs = { hello: \\"world\\", }; setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > nativeAttributes 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > nativeAttributes 2`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeAttributes\\":[\\"disabled\\"]}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! If someone passes \\\\\`[disabled]=\\"false\\"\\\\\` to me, disabled shouldn't be visible in the DOM.
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() disabled!: any; } " `; exports[`Angular > jsx > Typescript Test > nestedShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular > jsx > Typescript Test > nestedShow 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"nested-show\\", template: \`
if condition A and condition B
else-condition-B
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; } " `; exports[`Angular > jsx > Typescript Test > nestedStyles 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], }) export default class NestedStyles {} @NgModule({ declarations: [NestedStyles], imports: [CommonModule], exports: [NestedStyles], }) export class NestedStylesModule {} " `; exports[`Angular > jsx > Typescript Test > nestedStyles 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"nested-styles\\", template: \`
Hello world
\`, styles: [ \` :host { display: contents; } .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedStyles {} " `; exports[`Angular > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], }) export default class MyNormalizedLayerNamesComponent {} @NgModule({ declarations: [MyNormalizedLayerNamesComponent], imports: [CommonModule], exports: [MyNormalizedLayerNamesComponent], }) export class MyNormalizedLayerNamesComponentModule {} " `; exports[`Angular > jsx > Typescript Test > normalizeLayerNames 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @Component({ selector: \\"my-normalized-layer-names-component\\", template: \`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`, styles: [ \` :host { display: contents; } .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyNormalizedLayerNamesComponent {} " `; exports[`Angular > jsx > Typescript Test > onEvent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Embed { @ViewChild(\\"elem\\") elem!: ElementRef; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } @NgModule({ declarations: [Embed], imports: [CommonModule], exports: [Embed], }) export class EmbedModule {} " `; exports[`Angular > jsx > Typescript Test > onEvent 2`] = ` "import { Component, ViewChild, ElementRef } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"embed\\", template: \`
Test
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Embed { @ViewChild(\\"elem\\") elem!: ElementRef; foo(event) { console.log(\\"test2\\"); } ngOnInit() { if (typeof window !== \\"undefined\\") { this.elem?.nativeElement.dispatchEvent( new CustomEvent(\\"initEditingBldr\\") ); } } } " `; exports[`Angular > jsx > Typescript Test > onInit & onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular > jsx > Typescript Test > onInit & onMount 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnInit { ngOnInit() { console.log(\\"onInit\\"); if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } } " `; exports[`Angular > jsx > Typescript Test > onInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInit { @Input() name!: Props[\\"name\\"]; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } @NgModule({ declarations: [OnInit], imports: [CommonModule], exports: [OnInit], }) export class OnInitModule {} " `; exports[`Angular > jsx > Typescript Test > onInit 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; @Component({ selector: \\"on-init\\", template: \`
Default name defined by parent {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnInit { @Input() name!: Props[\\"name\\"]; name = \\"\\"; ngOnInit() { this.name = defaultValues.name || this.name; console.log(\\"set defaults with props\\"); } } " `; exports[`Angular > jsx > Typescript Test > onInitPlain 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } @NgModule({ declarations: [OnInitPlain], imports: [CommonModule], exports: [OnInitPlain], }) export class OnInitPlainModule {} " `; exports[`Angular > jsx > Typescript Test > onInitPlain 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-init-plain\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnInitPlain { ngOnInit() { console.log(\\"onInit\\"); } } " `; exports[`Angular > jsx > Typescript Test > onMount 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular > jsx > Typescript Test > onMount 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on mount\\"); } } ngOnDestroy() { console.log(\\"Runs on unMount\\"); } } " `; exports[`Angular > jsx > Typescript Test > onMountMultiple 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } @NgModule({ declarations: [Comp], imports: [CommonModule], exports: [Comp], }) export class CompModule {} " `; exports[`Angular > jsx > Typescript Test > onMountMultiple 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"comp\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Comp { ngOnInit() { if (typeof window !== \\"undefined\\") { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } } } " `; exports[`Angular > jsx > Typescript Test > onUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular > jsx > Typescript Test > onUpdate 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnUpdate { ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs on every update/rerender\\"); } } } " `; exports[`Angular > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdateWithDeps { @Input() size!: Props[\\"size\\"]; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } @NgModule({ declarations: [OnUpdateWithDeps], imports: [CommonModule], exports: [OnUpdateWithDeps], }) export class OnUpdateWithDepsModule {} " `; exports[`Angular > jsx > Typescript Test > onUpdateWithDeps 2`] = ` "import { Component, Input, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { size: string; }; @Component({ selector: \\"on-update-with-deps\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnUpdateWithDeps { @Input() size!: Props[\\"size\\"]; a = \\"a\\"; b = \\"b\\"; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } } } " `; exports[`Angular > jsx > Typescript Test > outputEventBinding 1`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > outputEventBinding 2`] = ` "/** useMetadata: {\\"angular\\":{\\"nativeEvents\\":[\\"onFakeNative\\"]}} */ import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"Steve\\"; } " `; exports[`Angular > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > preserveExportOrLocalStatement 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} @Component({ selector: \\"my-basic-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Typescript Test > preserveTyping 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: MyBasicComponentProps[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > preserveTyping 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() name!: MyBasicComponentProps[\\"name\\"]; } " `; exports[`Angular > jsx > Typescript Test > prettierInline 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class PrettierInline {} @NgModule({ declarations: [PrettierInline], imports: [CommonModule], exports: [PrettierInline], }) export class PrettierInlineModule {} " `; exports[`Angular > jsx > Typescript Test > prettierInline 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"prettier-inline\\", template: \`
Est molestiae sunt facilis qui rem.
Architecto rerum architecto incidunt sint.
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class PrettierInline {} " `; exports[`Angular > jsx > Typescript Test > propsDestructure 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() type!: Props[\\"type\\"]; name = \\"Decadef20\\"; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > propsDestructure 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { children: any; type: string; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{type}} Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() type!: Props[\\"type\\"]; name = \\"Decadef20\\"; } " `; exports[`Angular > jsx > Typescript Test > propsInterface 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person | never[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > propsInterface 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Person { name: string; age?: number; } @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() name!: Person | never[\\"name\\"]; } " `; exports[`Angular > jsx > Typescript Test > propsType 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() name!: Person[\\"name\\"]; } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > propsType 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Person = { name: string; age?: number; }; @Component({ selector: \\"my-basic-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() name!: Person[\\"name\\"]; } " `; exports[`Angular > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } @NgModule({ declarations: [OnUpdate], imports: [CommonModule], exports: [OnUpdate], }) export class OnUpdateModule {} " `; exports[`Angular > jsx > Typescript Test > referencingFunInsideHook 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"on-update\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.foo({ someOption: this.bar, }); } } } " `; exports[`Angular > jsx > Typescript Test > renderBlock 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import type { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block!: RenderBlockProps[\\"block\\"]; @Input() context!: RenderBlockProps[\\"context\\"]; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; myContent?: any[][]; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } @NgModule({ declarations: [RenderBlock], imports: [ CommonModule, RenderRepeatedBlockModule, RenderBlockModule, BlockStylesModule, ], exports: [RenderBlock], }) export class RenderBlockModule {} " `; exports[`Angular > jsx > Typescript Test > renderBlock 2`] = ` "import { Component, ViewChild, ElementRef, Input, ViewContainerRef, TemplateRef, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles.js\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component.js\\"; import RenderComponent from \\"./render-component.js\\"; import RenderRepeatedBlock from \\"./render-repeated-block.js\\"; import type { RepeatData } from \\"./types.js\\"; @Component({ selector: \\"render-block\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, RenderRepeatedBlock, RenderBlock, BlockStyles], }) export default class RenderBlock { isEmptyHtmlElement = isEmptyHtmlElement; @Input() block!: RenderBlockProps[\\"block\\"]; @Input() context!: RenderBlockProps[\\"context\\"]; @ViewChild(\\"rendercomponenttagTemplate\\", { static: true }) rendercomponenttagTemplateRef!: TemplateRef; @ViewChild(\\"tagTemplate\\", { static: true }) tagTemplateRef!: TemplateRef; myContent?: any[][]; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } trackByData0(index, data) { return index; } trackByChild1(_, child) { return \\"render-block-\\" + child.id; } trackByChild2(_, child) { return \\"block-style-\\" + child.id; } constructor(private vcRef: ViewContainerRef) {} ngOnInit() { this.myContent = [ this.vcRef.createEmbeddedView(this.rendercomponenttagTemplateRef) .rootNodes, this.vcRef.createEmbeddedView(this.tagTemplateRef).rootNodes, ]; } } " `; exports[`Angular > jsx > Typescript Test > renderContentExample 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents!: Props[\\"customComponents\\"]; @Input() content!: Props[\\"content\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } @NgModule({ declarations: [RenderContent], imports: [CommonModule, RenderBlocksModule], exports: [RenderContent], }) export class RenderContentModule {} " `; exports[`Angular > jsx > Typescript Test > renderContentExample 2`] = ` "import { Component, Input, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks.js\\"; @Component({ selector: \\"render-content\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: columns; } \`, ], standalone: true, imports: [CommonModule, RenderBlocks], }) export default class RenderContent { trackClick = trackClick; @Input() customComponents!: Props[\\"customComponents\\"]; @Input() content!: Props[\\"content\\"]; ngOnInit() { if (typeof window !== \\"undefined\\") { sendComponentsToVisualEditor(this.customComponents); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { dispatchNewContentToVisualEditor(this.content); } } } " `; exports[`Angular > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [Button], imports: [CommonModule], exports: [Button], }) export class ButtonModule {} " `; exports[`Angular > jsx > Typescript Test > rootFragmentMultiNode 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } @Component({ selector: \\"button\\", template: \` {{text}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class Button { @Input() link!: ButtonProps[\\"link\\"]; @Input() attributes!: ButtonProps[\\"attributes\\"]; @Input() openLinkInNewTab!: ButtonProps[\\"openLinkInNewTab\\"]; @Input() text!: ButtonProps[\\"text\\"]; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; @ViewChild(\\"elRef1\\") elRef1!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.attributes); this.setAttributes(this.elRef1?.nativeElement, this.attributes); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); this.setAttributes( this.elRef1?.nativeElement, this.attributes, changes[\\"attributes\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > rootShow 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class RenderStyles { @Input() foo!: RenderStylesProps[\\"foo\\"]; } @NgModule({ declarations: [RenderStyles], imports: [CommonModule], exports: [RenderStyles], }) export class RenderStylesModule {} " `; exports[`Angular > jsx > Typescript Test > rootShow 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export interface RenderStylesProps { foo: string; } @Component({ selector: \\"render-styles\\", template: \`
Bar
Foo
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class RenderStyles { @Input() foo!: RenderStylesProps[\\"foo\\"]; } " `; exports[`Angular > jsx > Typescript Test > sanitizeInnerHTML 1`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() html!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > sanitizeInnerHTML 2`] = ` "/** useMetadata: {\\"angular\\":{\\"sanitizeInnerHTML\\":true}} */ import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() html!: any; } " `; exports[`Angular > jsx > Typescript Test > self-referencing component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > self-referencing component 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, MyComponent], }) export default class MyComponent { @Input() name!: any; } " `; exports[`Angular > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() name!: any; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, MyComponentModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > self-referencing component with children 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{name}}
Wayne
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, MyComponent], }) export default class MyComponent { @Input() name!: any; } " `; exports[`Angular > jsx > Typescript Test > setState 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } @NgModule({ declarations: [SetState], imports: [CommonModule], exports: [SetState], }) export class SetStateModule {} " `; exports[`Angular > jsx > Typescript Test > setState 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"set-state\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SetState { n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } } " `; exports[`Angular > jsx > Typescript Test > showExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; @Input() conditionC!: Props[\\"conditionC\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular > jsx > Typescript Test > showExpressions 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; conditionB: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
Content0ContentA ContentA ContentA ContentB{{undefined}} {{undefined}}ContentB ContentC ContentC ContentD ContentD ContentEhello helloContentE ContentF123 123ContentF 4mb20mb9mb 20mb9mb4mb
complete
9mb
dff
complete else
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() conditionB!: Props[\\"conditionB\\"]; @Input() conditionC!: Props[\\"conditionC\\"]; } " `; exports[`Angular > jsx > Typescript Test > showWithFor 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() items!: Props[\\"items\\"]; trackByItem0(idx, item) { return idx; } } @NgModule({ declarations: [NestedShow], imports: [CommonModule], exports: [NestedShow], }) export class NestedShowModule {} " `; exports[`Angular > jsx > Typescript Test > showWithFor 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; items: string[]; } @Component({ selector: \\"nested-show\\", template: \`
{{item}}
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class NestedShow { @Input() conditionA!: Props[\\"conditionA\\"]; @Input() items!: Props[\\"items\\"]; trackByItem0(idx, item) { return idx; } } " `; exports[`Angular > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowWithOtherValues], imports: [CommonModule], exports: [ShowWithOtherValues], }) export class ShowWithOtherValuesModule {} " `; exports[`Angular > jsx > Typescript Test > showWithOtherValues 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-with-other-values\\", template: \`
ContentA ContentB {{undefined}} ContentC ContentD ContentE hello ContentF 123
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ShowWithOtherValues { @Input() conditionA!: Props[\\"conditionA\\"]; } " `; exports[`Angular > jsx > Typescript Test > showWithRootText 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class ShowRootText { @Input() conditionA!: Props[\\"conditionA\\"]; } @NgModule({ declarations: [ShowRootText], imports: [CommonModule], exports: [ShowRootText], }) export class ShowRootTextModule {} " `; exports[`Angular > jsx > Typescript Test > showWithRootText 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; interface Props { conditionA: boolean; } @Component({ selector: \\"show-root-text\\", template: \` ContentA
else-condition-A
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class ShowRootText { @Input() conditionA!: Props[\\"conditionA\\"]; } " `; exports[`Angular > jsx > Typescript Test > signals 1`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SignalsTestComponent { @Input() testInput: Props[\\"testInput\\"] = defaultProps[\\"testInput\\"]; @Input() label: Props[\\"label\\"] = defaultProps[\\"label\\"]; @Input() disabled!: Props[\\"disabled\\"]; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; _counter: Store[\\"_counter\\"] = 0; _innerText: Store[\\"_innerText\\"] = \\"a\\"; handleOutput(): ReturnType { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } @NgModule({ declarations: [SignalsTestComponent], imports: [CommonModule], exports: [SignalsTestComponent], }) export class SignalsTestComponentModule {} " `; exports[`Angular > jsx > Typescript Test > signals 2`] = ` "/** useMetadata: {\\"angular\\":{\\"signals\\":{\\"writeable\\":[\\"disabled\\"],\\"required\\":[\\"label\\"]}}} */ import { Output, EventEmitter, Component, ViewChild, ElementRef, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { label: string; testInput: string; onTestOutput?: () => void; disabled?: boolean; }; type Store = { _counter: number; _innerText: string; handleOutput: () => void; }; const defaultProps: any = { testInput: \\"Test\\", label: \\"Bla\\" }; @Component({ selector: \\"signals-test-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SignalsTestComponent { @Input() testInput: Props[\\"testInput\\"] = defaultProps[\\"testInput\\"]; @Input() label: Props[\\"label\\"] = defaultProps[\\"label\\"]; @Input() disabled!: Props[\\"disabled\\"]; @Output() onTestOutput = new EventEmitter(); @ViewChild(\\"buttonRef\\") buttonRef!: ElementRef; _counter: Store[\\"_counter\\"] = 0; _innerText: Store[\\"_innerText\\"] = \\"a\\"; handleOutput(): ReturnType { this._counter++; this._innerText = \\"b\\"; console.log(this.testInput, this._counter); if (this.onTestOutput) { this.onTestOutput.emit(); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(this._counter, this.buttonRef?.nativeElement); this.buttonRef?.nativeElement?.setAttribute( \\"data-counter\\", this._counter.toString() ); } } } " `; exports[`Angular > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input, SimpleChanges } from \\"@angular/core\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], }) export default class MyBasicComponent { @Input() id!: Props[\\"id\\"]; @Input() foo!: Props[\\"foo\\"]; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > signalsOnUpdate 2`] = ` "import { Component, Input, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @Component({ selector: \\"my-basic-component\\", template: \`
{{id}} {{foo.bar.baz}}
\`, styles: [ \` :host { display: contents; } .div { padding: 10px; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() id!: Props[\\"id\\"]; @Input() foo!: Props[\\"foo\\"]; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } } } " `; exports[`Angular > jsx > Typescript Test > spreadAttrs 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > spreadAttrs 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, attrs); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, attrs, changes[\\"attrs\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent { @Input() nested!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > spreadNestedProps 2`] = ` "import { Component, ViewChild, ElementRef, Renderer2, Input, SimpleChanges, } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent { @Input() nested!: any; @ViewChild(\\"elRef0\\") elRef0!: ElementRef; _listenerFns = new Map void>(); setAttributes(el: HTMLElement, value: any, changes?: any) { if (!el) { return; } const target = typeof changes === \\"undefined\\" ? value : changes; Object.keys(target).forEach((key) => { if (key.startsWith(\\"on\\")) { if (this._listenerFns.has(key)) { this._listenerFns.get(key)!(); } this._listenerFns.set( key, this.renderer.listen( el, key.replace(\\"on\\", \\"\\").toLowerCase(), target[key] ) ); } else { this.renderer.setAttribute(el, key.toLowerCase(), target[key] ?? \\"\\"); } }); } constructor(private renderer: Renderer2) {} ngAfterViewInit() { this.setAttributes(this.elRef0?.nativeElement, this.nested); } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.setAttributes( this.elRef0?.nativeElement, this.nested, changes[\\"nested\\"]?.currentValue ); } } ngOnDestroy() { for (const fn of this._listenerFns.values()) { fn(); } } } " `; exports[`Angular > jsx > Typescript Test > spreadProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicComponent {} @NgModule({ declarations: [MyBasicComponent], imports: [CommonModule], exports: [MyBasicComponent], }) export class MyBasicComponentModule {} " `; exports[`Angular > jsx > Typescript Test > spreadProps 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-basic-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicComponent {} " `; exports[`Angular > jsx > Typescript Test > stateInit 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() val!: any; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > stateInit 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{asfas}}
{{someCompute}}
{{someOtherVal}}
{{sf}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() val!: any; add = function add(a, b) { return a + b; }; asfas = \\"asga\\"; subtract() { return this.someCompute - this.someOtherVal; } someCompute = null; someOtherVal = null; sf = null; ngOnInit() { this.someCompute = this.add(1, 2); this.someOtherVal = this.val; this.sf = this.add(this.val, 34); } } " `; exports[`Angular > jsx > Typescript Test > stateInitSequence 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() value!: any; val = null; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > stateInitSequence 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` {{val}} \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Comp], }) export default class MyComponent { @Input() value!: any; val = null; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } ngOnInit() { this.val = this.value; } } " `; exports[`Angular > jsx > Typescript Test > store-async-function 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular > jsx > Typescript Test > store-async-function 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; } " `; exports[`Angular > jsx > Typescript Test > string-literal-store 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class StringLiteralStore { foo = 123; } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {} " `; exports[`Angular > jsx > Typescript Test > string-literal-store 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"string-literal-store\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class StringLiteralStore { foo = 123; } " `; exports[`Angular > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from '@angular/core'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`] }) export default class StringLiteralStore { foo-bar= 123 } @NgModule({ declarations: [StringLiteralStore], imports: [CommonModule], exports: [StringLiteralStore], }) export class StringLiteralStoreModule {}" `; exports[`Angular > jsx > Typescript Test > string-literal-store-kebab 2`] = ` "import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; @Component({ selector: 'string-literal-store',template: \`
{{'foo-bar'}}
\`,styles: [\`:host { display: contents; }\`],standalone: true,imports: [CommonModule] }) export default class StringLiteralStore { foo-bar= 123 }" `; exports[`Angular > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > styleClassAndCss 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], }) export default class StylePropClassAndCss { @Input() attributes!: any; } @NgModule({ declarations: [StylePropClassAndCss], imports: [CommonModule], exports: [StylePropClassAndCss], }) export class StylePropClassAndCssModule {} " `; exports[`Angular > jsx > Typescript Test > stylePropClassAndCss 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"style-prop-class-and-css\\", template: \`
\`, styles: [ \` :host { display: contents; } .div { display: flex; flex-direction: column; align-items: stretch; } \`, ], standalone: true, imports: [CommonModule], }) export default class StylePropClassAndCss { @Input() attributes!: any; } " `; exports[`Angular > jsx > Typescript Test > subComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SubComponent {} @NgModule({ declarations: [SubComponent], imports: [CommonModule, FooModule], exports: [SubComponent], }) export class SubComponentModule {} " `; exports[`Angular > jsx > Typescript Test > subComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Foo from \\"./foo-sub-component.js\\"; @Component({ selector: \\"sub-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Foo], }) export default class SubComponent {} " `; exports[`Angular > jsx > Typescript Test > svgComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class SvgComponent {} @NgModule({ declarations: [SvgComponent], imports: [CommonModule], exports: [SvgComponent], }) export class SvgComponentModule {} " `; exports[`Angular > jsx > Typescript Test > svgComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"svg-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class SvgComponent {} " `; exports[`Angular > jsx > Typescript Test > twoForsTrackBy 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > twoForsTrackBy 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{item}}
{{item}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { items = [1, 2, 3]; trackByItem0(_, item) { return item; } trackByItem1(_, item) { return item; } } " `; exports[`Angular > jsx > Typescript Test > typeDependency 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeDependency { @Input() foo!: TypeDependencyProps[\\"foo\\"]; } @NgModule({ declarations: [TypeDependency], imports: [CommonModule], exports: [TypeDependency], }) export class TypeDependencyModule {} " `; exports[`Angular > jsx > Typescript Test > typeDependency 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export.js\\"; @Component({ selector: \\"type-dependency\\", template: \`
{{foo}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeDependency { @Input() foo!: TypeDependencyProps[\\"foo\\"]; } " `; exports[`Angular > jsx > Typescript Test > typeExternalProps 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalProps { @Input() name!: FooProps[\\"name\\"]; } @NgModule({ declarations: [TypeExternalProps], imports: [CommonModule], exports: [TypeExternalProps], }) export class TypeExternalPropsModule {} " `; exports[`Angular > jsx > Typescript Test > typeExternalProps 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { FooProps } from \\"./foo-props\\"; @Component({ selector: \\"type-external-props\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeExternalProps { @Input() name!: FooProps[\\"name\\"]; } " `; exports[`Angular > jsx > Typescript Test > typeExternalStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeExternalStore { _name: FooStore[\\"_name\\"] = \\"test\\"; } @NgModule({ declarations: [TypeExternalStore], imports: [CommonModule], exports: [TypeExternalStore], }) export class TypeExternalStoreModule {} " `; exports[`Angular > jsx > Typescript Test > typeExternalStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { FooStore } from \\"./foo-store\\"; @Component({ selector: \\"type-external-store\\", template: \`
Hello {{_name}} !
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeExternalStore { _name: FooStore[\\"_name\\"] = \\"test\\"; } " `; exports[`Angular > jsx > Typescript Test > typeGetterStore 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class TypeGetterStore { name: GetterStore[\\"name\\"] = \\"test\\"; getName(): ReturnType { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test(): ReturnType { return \\"test\\"; } } @NgModule({ declarations: [TypeGetterStore], imports: [CommonModule], exports: [TypeGetterStore], }) export class TypeGetterStoreModule {} " `; exports[`Angular > jsx > Typescript Test > typeGetterStore 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @Component({ selector: \\"type-getter-store\\", template: \`
Hello {{name}} !
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class TypeGetterStore { name: GetterStore[\\"name\\"] = \\"test\\"; getName(): ReturnType { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test(): ReturnType { return \\"test\\"; } } " `; exports[`Angular > jsx > Typescript Test > use-style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > use-style 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Typescript Test > use-style-and-css 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > use-style-and-css 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > use-style-outside-component 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > jsx > Typescript Test > useObjectWrapper 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() spreadAttrs!: any; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } @NgModule({ declarations: [MyComponent], imports: [CommonModule, CompModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > jsx > Typescript Test > useObjectWrapper 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Comp], }) export default class MyComponent { @Input() spreadAttrs!: any; attributes = { id: 1, }; attributes2 = { id2: 1, }; something = { id3: 1, }; useObjectWrapper(...args: any[]) { let obj = {}; args.forEach((arg) => { obj = { ...obj, ...arg }; }); return obj; } } " `; exports[`Angular > jsx > Typescript Test > useTarget 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } @NgModule({ declarations: [UseTargetComponent], imports: [CommonModule], exports: [UseTargetComponent], }) export class UseTargetComponentModule {} " `; exports[`Angular > jsx > Typescript Test > useTarget 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"use-target-component\\", template: \`
{{name}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class UseTargetComponent { get name() { const prefix = true; return prefix + \\"foo\\"; } lastName = \\"bar\\"; foo = \\"bar\\"; ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(this.foo); this.foo = \\"bar\\"; } } } " `; exports[`Angular > jsx > Typescript Test > webComponent 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } @NgModule({ declarations: [MyBasicWebComponent], imports: [CommonModule], exports: [MyBasicWebComponent], }) export class MyBasicWebComponentModule {} " `; exports[`Angular > jsx > Typescript Test > webComponent 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { register } from \\"swiper/element/bundle\\"; @Component({ selector: \\"my-basic-web-component\\", template: \` Slide 1 Slide 2 Slide 3 \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyBasicWebComponent { ngOnInit() { register(); } } " `; exports[`Angular > svelte > Javascript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > basic 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"Steve\\"; } " `; exports[`Angular > svelte > Javascript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > bindGroup 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } " `; exports[`Angular > svelte > Javascript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > bindProperty 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { value = \\"hello\\"; } " `; exports[`Angular > svelte > Javascript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > classDirective 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() disabled; focus = true; } " `; exports[`Angular > svelte > Javascript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > context 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } " `; exports[`Angular > svelte > Javascript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > each 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } " `; exports[`Angular > svelte > Javascript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > eventHandlers 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } " `; exports[`Angular > svelte > Javascript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > html 2`] = ` "import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer) {} } " `; exports[`Angular > svelte > Javascript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > ifElse 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } " `; exports[`Angular > svelte > Javascript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > imports 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Button from \\"./Button.js\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Button], }) export default class MyComponent { disabled = false; } " `; exports[`Angular > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > lifecycleHooks 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } " `; exports[`Angular > svelte > Javascript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > reactive 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } " `; exports[`Angular > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > reactiveWithFn 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } " `; exports[`Angular > svelte > Javascript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > slots 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > svelte > Javascript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > style 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > svelte > Javascript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Javascript Test > textExpressions 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { a = 5; b = 12; } " `; exports[`Angular > svelte > Typescript Test > basic 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > basic 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Hello! I can run in React, Vue, Solid, or Liquid!
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"Steve\\"; } " `; exports[`Angular > svelte > Typescript Test > bindGroup 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > bindGroup 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`


Tortilla: {{tortilla}}

Fillings: {{fillings}}

\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { tortilla = \\"Plain\\"; fillings = []; } " `; exports[`Angular > svelte > Typescript Test > bindProperty 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { value = \\"hello\\"; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > bindProperty 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { value = \\"hello\\"; } " `; exports[`Angular > svelte > Typescript Test > classDirective 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, Input } from \\"@angular/core\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { @Input() disabled!: any; focus = true; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > classDirective 2`] = ` "import { Component, Input } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; const defaultProps: any = {}; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { @Input() disabled!: any; focus = true; } " `; exports[`Angular > svelte > Typescript Test > context 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > context 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
{{activeTab}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { activeTab = 0; constructor(public disabled: \\"disabled\\") {} } " `; exports[`Angular > svelte > Typescript Test > each 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > each 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
  • {{num}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { numbers = [\\"one\\", \\"two\\", \\"three\\"]; } " `; exports[`Angular > svelte > Typescript Test > eventHandlers 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > eventHandlers 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; } " `; exports[`Angular > svelte > Typescript Test > html 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer: DomSanitizer) {} } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > html 2`] = ` "import { Component } from \\"@angular/core\\"; import { DomSanitizer } from \\"@angular/platform-browser\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { html = \\"bold\\"; constructor(protected sanitizer: DomSanitizer) {} } " `; exports[`Angular > svelte > Typescript Test > ifElse 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > ifElse 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { show = true; toggle = function toggle() { this.show = !this.show; }; } " `; exports[`Angular > svelte > Typescript Test > imports 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { disabled = false; } @NgModule({ declarations: [MyComponent], imports: [CommonModule, ButtonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > imports 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import Button from \\"./Button.js\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule, Button], }) export default class MyComponent { disabled = false; } " `; exports[`Angular > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > lifecycleHooks 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { ngOnInit() { if (typeof window !== \\"undefined\\") { console.log(\\"onMount\\"); } } ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { console.log(\\"onAfterUpdate\\"); } } ngOnDestroy() { console.log(\\"onDestroy\\"); } } " `; exports[`Angular > svelte > Typescript Test > reactive 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > reactive 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Lowercase: {{lowercaseName}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } } " `; exports[`Angular > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component, SimpleChanges } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > reactiveWithFn 2`] = ` "import { Component, SimpleChanges } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
Result: {{result}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { a = 2; b = 5; result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; ngOnChanges(changes: SimpleChanges) { if (typeof window !== \\"undefined\\") { this.calculateResult(this.a, this.b); } } } " `; exports[`Angular > svelte > Typescript Test > slots 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > slots 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
default
default
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > svelte > Typescript Test > style 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], }) export default class MyComponent {} @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > style 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \` \`, styles: [ \` :host { display: contents; } input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent {} " `; exports[`Angular > svelte > Typescript Test > textExpressions 1`] = ` "import { NgModule } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; import { Component } from \\"@angular/core\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], }) export default class MyComponent { a = 5; b = 12; } @NgModule({ declarations: [MyComponent], imports: [CommonModule], exports: [MyComponent], }) export class MyComponentModule {} " `; exports[`Angular > svelte > Typescript Test > textExpressions 2`] = ` "import { Component } from \\"@angular/core\\"; import { CommonModule } from \\"@angular/common\\"; @Component({ selector: \\"my-component\\", template: \`
normal: {{a + b}}
conditional {{a > 2 ? 'hello' : 'bye'}}
\`, styles: [ \` :host { display: contents; } \`, ], standalone: true, imports: [CommonModule], }) export default class MyComponent { a = 5; b = 12; } " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/context.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Context > Parse context 1`] = ` { "@type": "@builder.io/mitosis/context", "name": "SimpleExample", "value": { "content": { "code": "null", "propertyType": "normal", "type": "property", }, "context": { "code": "{}", "propertyType": "normal", "type": "property", }, "foo": { "code": "'bar'", "propertyType": "normal", "type": "property", }, "fooUpperCase": { "code": "get fooUpperCase() { return state.foo.toUpperCase(); }", "type": "getter", }, "someMethod": { "code": "someMethod() { return state.fooUpperCase.toLowercase(); }", "type": "method", }, "state": { "code": "{}", "propertyType": "normal", "type": "property", }, }, } `; exports[`Context > Parse context 2`] = ` "import { createContext } from \\"react\\"; export default createContext({ foo: \\"bar\\", get fooUpperCase() { return state.foo.toUpperCase(); }, someMethod() { return state.fooUpperCase.toLowercase(); }, content: null, context: {}, state: {}, }); " `; exports[`Context > Use and set context in complex components 1`] = ` { "@type": "@builder.io/mitosis/component", "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "state.properties": { "code": "state.properties", "spreadType": "normal", "type": "spread", }, "style": { "bindingType": "expression", "code": "state.css", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "block": { "bindingType": "expression", "code": "state.useBlock", "type": "single", }, }, "children": [], "meta": {}, "name": "BlockStyles", "properties": {}, "scope": {}, }, { "@type": "@builder.io/mitosis/node", "bindings": { "when": { "bindingType": "expression", "code": "state.componentRef", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "children": { "bindingType": "expression", "code": "state.useBlock.children", "type": "single", }, "state.componentOptions": { "code": "state.componentOptions", "spreadType": "normal", "type": "spread", }, }, "children": [], "meta": {}, "name": "state.componentRef", "properties": {}, "scope": {}, }, ], "meta": {}, "name": "Show", "properties": {}, "scope": {}, }, { "@type": "@builder.io/mitosis/node", "bindings": { "when": { "bindingType": "expression", "code": "!state.componentRef && state.useBlock.children && state.useBlock.children.length", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "each": { "bindingType": "expression", "code": "state.useBlock.children", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "block": { "bindingType": "expression", "code": "child", "type": "single", }, "index": { "bindingType": "expression", "code": "index", "type": "single", }, }, "children": [], "meta": {}, "name": "RenderBlock", "properties": {}, "scope": {}, }, ], "meta": {}, "name": "For", "properties": {}, "scope": { "forName": "child", "indexName": "index", }, }, ], "meta": {}, "name": "Show", "properties": {}, "scope": {}, }, ], "meta": {}, "name": "state.tagName", "properties": {}, "scope": {}, }, ], "meta": {}, "name": "Fragment", "properties": {}, "scope": {}, }, ], "context": { "get": { "builderContext": { "name": "BuilderContext", "path": "../context/builder.context.lite:default", }, }, "set": {}, }, "exports": {}, "hooks": { "onEvent": [], "onMount": [], }, "imports": [ { "importKind": "value", "imports": { "BuilderContext": "default", }, "path": "../context/builder.context.lite", }, { "importKind": "value", "imports": { "getBlockActions": "getBlockActions", }, "path": "../functions/get-block-actions", }, { "importKind": "value", "imports": { "getBlockComponentOptions": "getBlockComponentOptions", }, "path": "../functions/get-block-component-options", }, { "importKind": "value", "imports": { "getBlockProperties": "getBlockProperties", }, "path": "../functions/get-block-properties", }, { "importKind": "value", "imports": { "getBlockStyles": "getBlockStyles", }, "path": "../functions/get-block-styles", }, { "importKind": "value", "imports": { "getBlockTag": "getBlockTag", }, "path": "../functions/get-block-tag", }, { "importKind": "value", "imports": { "getProcessedBlock": "getProcessedBlock", }, "path": "../functions/get-processed-block", }, { "importKind": "value", "imports": { "components": "components", }, "path": "../functions/register-component", }, { "importKind": "value", "imports": { "BlockStyles": "default", }, "path": "./block-styles.lite", }, ], "inputs": [], "meta": {}, "name": "RenderBlock", "refs": {}, "state": { "actions": { "code": "get actions() { return getBlockActions({ block: state.useBlock, state: builderContext.state, context: builderContext.context }); }", "type": "getter", }, "component": { "code": "get component() { const componentName = state.useBlock.component?.name; if (!componentName) { return null; } const ref = components[state.useBlock.component?.name]; if (componentName && !ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); } return ref; }", "type": "getter", }, "componentInfo": { "code": "get componentInfo() { return state.component?.info; }", "type": "getter", }, "componentOptions": { "code": "get componentOptions() { return getBlockComponentOptions(state.useBlock); }", "type": "getter", }, "componentRef": { "code": "get componentRef() { return state.component?.component; }", "type": "getter", }, "css": { "code": "get css() { return getBlockStyles(state.useBlock); }", "type": "getter", }, "properties": { "code": "get properties() { return getBlockProperties(state.useBlock); }", "type": "getter", }, "tagName": { "code": "get tagName() { return getBlockTag(state.useBlock); }", "type": "getter", }, "useBlock": { "code": "get useBlock() { return getProcessedBlock({ block: props.block, state: builderContext.state, context: builderContext.context }); }", "type": "getter", }, }, "subComponents": [], } `; exports[`Context > Use and set context in complex components 2`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useContext } from \\"react\\"; import BuilderContext from \\"../context/builder.context.js\\"; import { getBlockActions } from \\"../functions/get-block-actions\\"; import { getBlockComponentOptions } from \\"../functions/get-block-component-options\\"; import { getBlockProperties } from \\"../functions/get-block-properties\\"; import { getBlockStyles } from \\"../functions/get-block-styles\\"; import { getBlockTag } from \\"../functions/get-block-tag\\"; import { getProcessedBlock } from \\"../functions/get-processed-block\\"; import { components } from \\"../functions/register-component\\"; import BlockStyles from \\"./block-styles\\"; function RenderBlock(props) { function component() { const componentName = useBlock().component?.name; if (!componentName) { return null; } const ref = components[useBlock().component?.name]; if (componentName && !ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); } return ref; } function componentInfo() { return component?.()?.info; } function componentRef() { return component?.()?.component; } function tagName() { return getBlockTag(useBlock()); } function properties() { return getBlockProperties(useBlock()); } function useBlock() { return getProcessedBlock({ block: props.block, state: builderContext.state, context: builderContext.context, }); } function actions() { return getBlockActions({ block: useBlock(), state: builderContext.state, context: builderContext.context, }); } function css() { return getBlockStyles(useBlock()); } function componentOptions() { return getBlockComponentOptions(useBlock()); } const builderContext = useContext(BuilderContext); const TagNameRef = tagName(); const ComponentRefRef = componentRef(); return ( {componentRef() ? ( ) : null} {!componentRef() && useBlock().children && useBlock().children.length ? ( <> {useBlock().children?.map((child, index) => ( ))} ) : null} ); } export default RenderBlock; " `; exports[`Context > Use and set context in components 1`] = ` { "@type": "@builder.io/mitosis/component", "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "_text": { "bindingType": "expression", "code": "foo.value", "type": "single", }, }, "children": [], "meta": {}, "name": "div", "properties": {}, "scope": {}, }, ], "meta": {}, "name": "Fragment", "properties": {}, "scope": {}, }, ], "meta": {}, "name": "Fragment", "properties": {}, "scope": {}, }, ], "context": { "get": { "foo": { "name": "Context1", "path": "@dummy/1:default", }, }, "set": { "@dummy/1:default": { "name": "Context1", "value": { "content": { "code": "content() { return props.content; }", "type": "method", }, "foo": { "code": "'bar'", "propertyType": "normal", "type": "property", }, }, }, "@dummy/2:default": { "name": "Context2", "value": { "bar": { "code": "'baz'", "propertyType": "normal", "type": "property", }, }, }, }, }, "exports": {}, "hooks": { "onEvent": [], "onMount": [], }, "imports": [ { "importKind": "value", "imports": { "Context1": "default", }, "path": "@dummy/1", }, { "importKind": "value", "imports": { "Context2": "default", }, "path": "@dummy/2", }, ], "inputs": [], "meta": {}, "name": "ComponentWithContext", "refs": {}, "state": {}, "subComponents": [], } `; exports[`Context > Use and set context in components 2`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useContext } from \\"react\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <>{foo.value} ); } export default ComponentWithContext; " `; exports[`Context > Use and set context in components 3`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> {foo.value} ); } export default ComponentWithContext; " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/html.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Html > jsx > Javascript Test > Advanced 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > AdvancedRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Html > jsx > Javascript Test > Basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Html > jsx > Javascript Test > Basic 2`] = ` "
" `; exports[`Html > jsx > Javascript Test > Basic Context 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > Basic OnMount Update 1`] = ` "
Hello
" `; exports[`Html > jsx > Javascript Test > Basic Outputs 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
" `; exports[`Html > jsx > Javascript Test > BasicAttribute 1`] = ` " " `; exports[`Html > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > BasicChildComponent 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > BasicFor 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > BasicRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Html > jsx > Javascript Test > BasicRefAssignment 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > BasicRefPrevious 1`] = ` "

Now: , before:

" `; exports[`Html > jsx > Javascript Test > Button 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Columns 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > ContentSlotHtml 1`] = ` "

" `; exports[`Html > jsx > Javascript Test > ContentSlotJSX 1`] = ` " " `; exports[`Html > jsx > Javascript Test > CustomCode 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Embed 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Image 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Image State 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Img 1`] = ` " " `; exports[`Html > jsx > Javascript Test > Input 1`] = ` " " `; exports[`Html > jsx > Javascript Test > InputParent 1`] = ` " " `; exports[`Html > jsx > Javascript Test > NestedStore 1`] = ` "
Test

Message

" `; exports[`Html > jsx > Javascript Test > RawText 1`] = ` " " `; exports[`Html > jsx > Javascript Test > Section 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Section 2`] = ` " " `; exports[`Html > jsx > Javascript Test > Select 1`] = ` " " `; exports[`Html > jsx > Javascript Test > SlotDefault 1`] = ` "
Default content
" `; exports[`Html > jsx > Javascript Test > SlotHtml 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > SlotJsx 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > SlotNamed 1`] = ` "
Default left Default Child
" `; exports[`Html > jsx > Javascript Test > Stamped.io 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > StoreComment 1`] = ` " " `; exports[`Html > jsx > Javascript Test > StoreShadowVars 1`] = ` " " `; exports[`Html > jsx > Javascript Test > StoreWithState 1`] = ` " " `; exports[`Html > jsx > Javascript Test > Submit 1`] = ` " " `; exports[`Html > jsx > Javascript Test > Text 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > Textarea 1`] = ` " " `; exports[`Html > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "
Test
" `; exports[`Html > jsx > Javascript Test > Video 1`] = ` " " `; exports[`Html > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "
Hello
" `; exports[`Html > jsx > Javascript Test > basicForFragment 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > basicForNoTagReference 1`] = ` " Hello " `; exports[`Html > jsx > Javascript Test > basicForwardRef 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */
" `; exports[`Html > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "
Hello!
" `; exports[`Html > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Html > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */
" `; exports[`Html > jsx > Javascript Test > class + ClassName + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > class + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > className + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > className 1`] = ` "
Without Binding
With binding
" `; exports[`Html > jsx > Javascript Test > classState 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */
" `; exports[`Html > jsx > Javascript Test > componentWithContext 1`] = ` " " `; exports[`Html > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "
other
" `; exports[`Html > jsx > Javascript Test > contentState 1`] = ` "
setting context
" `; exports[`Html > jsx > Javascript Test > defaultProps 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "
Hello
" `; exports[`Html > jsx > Javascript Test > eventInputAndChange 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > eventProps 1`] = ` " " `; exports[`Html > jsx > Javascript Test > expressionState 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Html > jsx > Javascript Test > functionProps 1`] = ` "

" `; exports[`Html > jsx > Javascript Test > getterState 1`] = ` "

" `; exports[`Html > jsx > Javascript Test > import types 1`] = ` " " `; exports[`Html > jsx > Javascript Test > layerName 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > multipleOnUpdate 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > multipleSpreads 1`] = ` " " `; exports[`Html > jsx > Javascript Test > nestedShow 1`] = ` " " `; exports[`Html > jsx > Javascript Test > nestedStyles 1`] = ` "
Hello world
" `; exports[`Html > jsx > Javascript Test > normalizeLayerNames 1`] = ` "
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Html > jsx > Javascript Test > onEvent 1`] = ` "
Test
" `; exports[`Html > jsx > Javascript Test > onInit & onMount 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > onInit 1`] = ` "
Default name defined by parent
" `; exports[`Html > jsx > Javascript Test > onInitPlain 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > onMount 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > onMountMultiple 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > onUpdate 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > preserveTyping 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > propsDestructure 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > propsInterface 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > propsType 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > renderBlock 1`] = ` " " `; exports[`Html > jsx > Javascript Test > renderContentExample 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` " " `; exports[`Html > jsx > Javascript Test > rootShow 1`] = ` " " `; exports[`Html > jsx > Javascript Test > self-referencing component 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > self-referencing component with children 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > setState 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > showExpressions 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > showWithFor 1`] = ` " " `; exports[`Html > jsx > Javascript Test > showWithOtherValues 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > showWithRootText 1`] = ` " " `; exports[`Html > jsx > Javascript Test > signalsOnUpdate 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > spreadAttrs 1`] = ` " " `; exports[`Html > jsx > Javascript Test > spreadNestedProps 1`] = ` " " `; exports[`Html > jsx > Javascript Test > spreadProps 1`] = ` " " `; exports[`Html > jsx > Javascript Test > store-async-function 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > string-literal-store 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > styleClassAndCss 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > subComponent 1`] = ` " " `; exports[`Html > jsx > Javascript Test > svgComponent 1`] = ` " " `; exports[`Html > jsx > Javascript Test > typeDependency 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > typeExternalProps 1`] = ` "
Hello !
" `; exports[`Html > jsx > Javascript Test > typeExternalStore 1`] = ` "
Hello !
" `; exports[`Html > jsx > Javascript Test > typeGetterStore 1`] = ` "
Hello !
" `; exports[`Html > jsx > Javascript Test > use-style 1`] = ` " " `; exports[`Html > jsx > Javascript Test > use-style-and-css 1`] = ` " " `; exports[`Html > jsx > Javascript Test > use-style-outside-component 1`] = ` " " `; exports[`Html > jsx > Javascript Test > useTarget 1`] = ` "
" `; exports[`Html > jsx > Javascript Test > webComponent 1`] = ` " Slide 1 Slide 2 Slide 3 " `; exports[`Html > jsx > Remove Internal mitosis package 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > Advanced 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > AdvancedRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Html > jsx > Typescript Test > Basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Html > jsx > Typescript Test > Basic 2`] = ` "
" `; exports[`Html > jsx > Typescript Test > Basic Context 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > Basic OnMount Update 1`] = ` "
Hello
" `; exports[`Html > jsx > Typescript Test > Basic Outputs 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
" `; exports[`Html > jsx > Typescript Test > BasicAttribute 1`] = ` " " `; exports[`Html > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > BasicChildComponent 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > BasicFor 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > BasicRef 1`] = ` "
Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Html > jsx > Typescript Test > BasicRefAssignment 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > BasicRefPrevious 1`] = ` "

Now: , before:

" `; exports[`Html > jsx > Typescript Test > Button 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Columns 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > ContentSlotHtml 1`] = ` "

" `; exports[`Html > jsx > Typescript Test > ContentSlotJSX 1`] = ` " " `; exports[`Html > jsx > Typescript Test > CustomCode 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Embed 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Image 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Image State 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Img 1`] = ` " " `; exports[`Html > jsx > Typescript Test > Input 1`] = ` " " `; exports[`Html > jsx > Typescript Test > InputParent 1`] = ` " " `; exports[`Html > jsx > Typescript Test > NestedStore 1`] = ` "
Test

Message

" `; exports[`Html > jsx > Typescript Test > RawText 1`] = ` " " `; exports[`Html > jsx > Typescript Test > Section 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Section 2`] = ` " " `; exports[`Html > jsx > Typescript Test > Select 1`] = ` " " `; exports[`Html > jsx > Typescript Test > SlotDefault 1`] = ` "
Default content
" `; exports[`Html > jsx > Typescript Test > SlotHtml 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > SlotJsx 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > SlotNamed 1`] = ` "
Default left Default Child
" `; exports[`Html > jsx > Typescript Test > Stamped.io 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > StoreComment 1`] = ` " " `; exports[`Html > jsx > Typescript Test > StoreShadowVars 1`] = ` " " `; exports[`Html > jsx > Typescript Test > StoreWithState 1`] = ` " " `; exports[`Html > jsx > Typescript Test > Submit 1`] = ` " " `; exports[`Html > jsx > Typescript Test > Text 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > Textarea 1`] = ` " " `; exports[`Html > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "
Test
" `; exports[`Html > jsx > Typescript Test > Video 1`] = ` " " `; exports[`Html > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "
Hello
" `; exports[`Html > jsx > Typescript Test > basicForFragment 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > basicForNoTagReference 1`] = ` " Hello " `; exports[`Html > jsx > Typescript Test > basicForwardRef 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */
" `; exports[`Html > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "
Hello!
" `; exports[`Html > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Html > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */
" `; exports[`Html > jsx > Typescript Test > class + ClassName + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > class + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > className + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > className 1`] = ` "
Without Binding
With binding
" `; exports[`Html > jsx > Typescript Test > classState 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */
" `; exports[`Html > jsx > Typescript Test > componentWithContext 1`] = ` " " `; exports[`Html > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "
other
" `; exports[`Html > jsx > Typescript Test > contentState 1`] = ` "
setting context
" `; exports[`Html > jsx > Typescript Test > defaultProps 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "
Hello
" `; exports[`Html > jsx > Typescript Test > eventInputAndChange 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > eventProps 1`] = ` " " `; exports[`Html > jsx > Typescript Test > expressionState 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Html > jsx > Typescript Test > functionProps 1`] = ` "

" `; exports[`Html > jsx > Typescript Test > getterState 1`] = ` "

" `; exports[`Html > jsx > Typescript Test > import types 1`] = ` " " `; exports[`Html > jsx > Typescript Test > layerName 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > multipleOnUpdate 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > multipleSpreads 1`] = ` " " `; exports[`Html > jsx > Typescript Test > nestedShow 1`] = ` " " `; exports[`Html > jsx > Typescript Test > nestedStyles 1`] = ` "
Hello world
" `; exports[`Html > jsx > Typescript Test > normalizeLayerNames 1`] = ` "
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Html > jsx > Typescript Test > onEvent 1`] = ` "
Test
" `; exports[`Html > jsx > Typescript Test > onInit & onMount 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > onInit 1`] = ` "
Default name defined by parent
" `; exports[`Html > jsx > Typescript Test > onInitPlain 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > onMount 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > onMountMultiple 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > onUpdate 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > preserveTyping 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > propsDestructure 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > propsInterface 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > propsType 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > renderBlock 1`] = ` " " `; exports[`Html > jsx > Typescript Test > renderContentExample 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` " " `; exports[`Html > jsx > Typescript Test > rootShow 1`] = ` " " `; exports[`Html > jsx > Typescript Test > self-referencing component 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > self-referencing component with children 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > setState 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > showExpressions 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > showWithFor 1`] = ` " " `; exports[`Html > jsx > Typescript Test > showWithOtherValues 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > showWithRootText 1`] = ` " " `; exports[`Html > jsx > Typescript Test > signalsOnUpdate 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > spreadAttrs 1`] = ` " " `; exports[`Html > jsx > Typescript Test > spreadNestedProps 1`] = ` " " `; exports[`Html > jsx > Typescript Test > spreadProps 1`] = ` " " `; exports[`Html > jsx > Typescript Test > store-async-function 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > string-literal-store 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > styleClassAndCss 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > subComponent 1`] = ` " " `; exports[`Html > jsx > Typescript Test > svgComponent 1`] = ` " " `; exports[`Html > jsx > Typescript Test > typeDependency 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > typeExternalProps 1`] = ` "
Hello !
" `; exports[`Html > jsx > Typescript Test > typeExternalStore 1`] = ` "
Hello !
" `; exports[`Html > jsx > Typescript Test > typeGetterStore 1`] = ` "
Hello !
" `; exports[`Html > jsx > Typescript Test > use-style 1`] = ` " " `; exports[`Html > jsx > Typescript Test > use-style-and-css 1`] = ` " " `; exports[`Html > jsx > Typescript Test > use-style-outside-component 1`] = ` " " `; exports[`Html > jsx > Typescript Test > useTarget 1`] = ` "
" `; exports[`Html > jsx > Typescript Test > webComponent 1`] = ` " Slide 1 Slide 2 Slide 3 " `; exports[`Html > svelte > Javascript Test > basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > svelte > Javascript Test > bindGroup 1`] = ` "


Tortilla:

Fillings:

" `; exports[`Html > svelte > Javascript Test > bindProperty 1`] = ` " " `; exports[`Html > svelte > Javascript Test > classDirective 1`] = ` " " `; exports[`Html > svelte > Javascript Test > context 1`] = ` "
" `; exports[`Html > svelte > Javascript Test > each 1`] = ` "
" `; exports[`Html > svelte > Javascript Test > eventHandlers 1`] = ` "
" `; exports[`Html > svelte > Javascript Test > html 1`] = ` "
" `; exports[`Html > svelte > Javascript Test > ifElse 1`] = ` " " `; exports[`Html > svelte > Javascript Test > imports 1`] = ` "
" `; exports[`Html > svelte > Javascript Test > lifecycleHooks 1`] = ` "
" `; exports[`Html > svelte > Javascript Test > reactive 1`] = ` "
Lowercase:
" `; exports[`Html > svelte > Javascript Test > reactiveWithFn 1`] = ` "
Result:
" `; exports[`Html > svelte > Javascript Test > slots 1`] = ` "
default
default
" `; exports[`Html > svelte > Javascript Test > style 1`] = ` " " `; exports[`Html > svelte > Javascript Test > textExpressions 1`] = ` "
normal:
conditional
" `; exports[`Html > svelte > Typescript Test > basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Html > svelte > Typescript Test > bindGroup 1`] = ` "


Tortilla:

Fillings:

" `; exports[`Html > svelte > Typescript Test > bindProperty 1`] = ` " " `; exports[`Html > svelte > Typescript Test > classDirective 1`] = ` " " `; exports[`Html > svelte > Typescript Test > context 1`] = ` "
" `; exports[`Html > svelte > Typescript Test > each 1`] = ` "
" `; exports[`Html > svelte > Typescript Test > eventHandlers 1`] = ` "
" `; exports[`Html > svelte > Typescript Test > html 1`] = ` "
" `; exports[`Html > svelte > Typescript Test > ifElse 1`] = ` " " `; exports[`Html > svelte > Typescript Test > imports 1`] = ` "
" `; exports[`Html > svelte > Typescript Test > lifecycleHooks 1`] = ` "
" `; exports[`Html > svelte > Typescript Test > reactive 1`] = ` "
Lowercase:
" `; exports[`Html > svelte > Typescript Test > reactiveWithFn 1`] = ` "
Result:
" `; exports[`Html > svelte > Typescript Test > slots 1`] = ` "
default
default
" `; exports[`Html > svelte > Typescript Test > style 1`] = ` " " `; exports[`Html > svelte > Typescript Test > textExpressions 1`] = ` "
normal:
conditional
" `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/liquid.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Liquid > jsx > Javascript Test > AdvancedRef 1`] = ` "
{% if showInput %}
{% endif %} Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Liquid > jsx > Javascript Test > Basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Liquid > jsx > Javascript Test > Basic Context 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > Basic OnMount Update 1`] = ` "
Hello {{name}}
" `; exports[`Liquid > jsx > Javascript Test > Basic Outputs 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
" `; exports[`Liquid > jsx > Javascript Test > BasicAttribute 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "
{% if children %}{{children}} {{type}}{% endif %}
" `; exports[`Liquid > jsx > Javascript Test > BasicChildComponent 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > BasicFor 1`] = ` "
{% for person in names %}
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
{% endfor %}
" `; exports[`Liquid > jsx > Javascript Test > BasicRef 1`] = ` "
{% if showInput %}
{% endif %} Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Liquid > jsx > Javascript Test > BasicRefAssignment 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > BasicRefPrevious 1`] = ` "

Now: {{count}} , before: {{prevCount}}

" `; exports[`Liquid > jsx > Javascript Test > Button 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Javascript Test > Columns 1`] = ` "
{% for column in columns %}
{{column.content}} {{index}}
{% endfor %}
" `; exports[`Liquid > jsx > Javascript Test > ContentSlotHtml 1`] = ` "

" `; exports[`Liquid > jsx > Javascript Test > ContentSlotJSX 1`] = ` "{% if slotReference %}

{{children}}
{% endif %} " `; exports[`Liquid > jsx > Javascript Test > CustomCode 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > Embed 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > Form 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > Image 1`] = ` "
{{children}}
" `; exports[`Liquid > jsx > Javascript Test > Image State 1`] = ` "
{% for item in images %}
{% endfor %}
" `; exports[`Liquid > jsx > Javascript Test > Img 1`] = ` "\\"{{altText}}\\" " `; exports[`Liquid > jsx > Javascript Test > Input 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > InputParent 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > NestedStore 1`] = ` "
Test

Message

" `; exports[`Liquid > jsx > Javascript Test > RawText 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > Section 1`] = ` "
{{children}}
" `; exports[`Liquid > jsx > Javascript Test > Select 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > SlotDefault 1`] = ` "
Default content
" `; exports[`Liquid > jsx > Javascript Test > SlotHtml 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > SlotJsx 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > SlotNamed 1`] = ` "
Default left Default Child
" `; exports[`Liquid > jsx > Javascript Test > Stamped.io 1`] = ` "
{% for review in reviews %}
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
{% endfor %}
" `; exports[`Liquid > jsx > Javascript Test > StoreComment 1`] = ` "
{{foo}}
" `; exports[`Liquid > jsx > Javascript Test > StoreShadowVars 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > StoreWithState 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > Submit 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > Text 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > Textarea 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "
Test
" `; exports[`Liquid > jsx > Javascript Test > Video 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "
Hello {{name}}
" `; exports[`Liquid > jsx > Javascript Test > basicForFragment 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > basicForNoTagReference 1`] = ` " Hello {{name}} {% for action in actions %} {{action.text}} {% endfor %} " `; exports[`Liquid > jsx > Javascript Test > basicForwardRef 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */
" `; exports[`Liquid > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "
Hello! {{name}}
" `; exports[`Liquid > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Liquid > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */
" `; exports[`Liquid > jsx > Javascript Test > class + ClassName + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > class + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > className + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > className 1`] = ` "
Without Binding
With binding
" `; exports[`Liquid > jsx > Javascript Test > classState 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */
{{children}} {{type}} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */
" `; exports[`Liquid > jsx > Javascript Test > componentWithContext 1`] = ` "
{{foo.value}}
" `; exports[`Liquid > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "
{{foo.value}}
other
" `; exports[`Liquid > jsx > Javascript Test > contentState 1`] = ` "
setting context
" `; exports[`Liquid > jsx > Javascript Test > defaultProps 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "
Hello
" `; exports[`Liquid > jsx > Javascript Test > eventInputAndChange 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > eventProps 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > expressionState 1`] = ` "
{{refToUse}}
" `; exports[`Liquid > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Liquid > jsx > Javascript Test > functionProps 1`] = ` "

" `; exports[`Liquid > jsx > Javascript Test > getterState 1`] = ` "

{{foo2}}

{{bar}}

" `; exports[`Liquid > jsx > Javascript Test > import types 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > layerName 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > multipleOnUpdate 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > multipleSpreads 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > nestedShow 1`] = ` "{% if conditionA %}{% endif %} " `; exports[`Liquid > jsx > Javascript Test > nestedStyles 1`] = ` "
Hello world
" `; exports[`Liquid > jsx > Javascript Test > normalizeLayerNames 1`] = ` "
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Liquid > jsx > Javascript Test > onEvent 1`] = ` "
Test
" `; exports[`Liquid > jsx > Javascript Test > onInit & onMount 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > onInit 1`] = ` "
Default name defined by parent {{name}}
" `; exports[`Liquid > jsx > Javascript Test > onInitPlain 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > onMount 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > onMountMultiple 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > onUpdate 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > preserveTyping 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
" `; exports[`Liquid > jsx > Javascript Test > propsDestructure 1`] = ` "
{{children}} {{type}} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Javascript Test > propsInterface 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
" `; exports[`Liquid > jsx > Javascript Test > propsType 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
" `; exports[`Liquid > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > renderBlock 1`] = ` "{% if shouldWrap %} {% endif %} " `; exports[`Liquid > jsx > Javascript Test > renderContentExample 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Javascript Test > rootShow 1`] = `""`; exports[`Liquid > jsx > Javascript Test > self-referencing component 1`] = ` "
{{name}}
" `; exports[`Liquid > jsx > Javascript Test > self-referencing component with children 1`] = ` "
{{name}} {{children}}
" `; exports[`Liquid > jsx > Javascript Test > setState 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > showExpressions 1`] = ` "
{% if conditionA %}Content0{% endif %} {% if conditionA %}ContentA{% endif %} {% if conditionA %}{% endif %} {% if conditionA %}ContentB{% endif %} {% if conditionA %}{{undefined}}{% endif %} {% if conditionA %}ContentC{% endif %} {% if conditionA %}{% endif %} {% if conditionA %}ContentD{% endif %} {% if conditionA %}{% endif %} {% if conditionA %}ContentE{% endif %} {% if conditionA %}hello{% endif %} {% if conditionA %}ContentF{% endif %} {% if conditionA %}123{% endif %}
" `; exports[`Liquid > jsx > Javascript Test > showWithFor 1`] = ` "{% if conditionA %}{% for item in items %}
{{item}}
{% endfor %}{% endif %} " `; exports[`Liquid > jsx > Javascript Test > showWithOtherValues 1`] = ` "
{% if conditionA %} ContentA {% endif %} {% if conditionA %} ContentB {% endif %} {% if conditionA %} ContentC {% endif %} {% if conditionA %} ContentD {% endif %} {% if conditionA %} ContentE {% endif %} {% if conditionA %} ContentF {% endif %}
" `; exports[`Liquid > jsx > Javascript Test > showWithRootText 1`] = ` "{% if conditionA %} ContentA {% endif %} " `; exports[`Liquid > jsx > Javascript Test > signalsOnUpdate 1`] = ` "
{{id}} {{foo.value.bar.baz}}
" `; exports[`Liquid > jsx > Javascript Test > spreadAttrs 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > spreadNestedProps 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > spreadProps 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > store-async-function 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > string-literal-store 1`] = ` "
{{foo}}
" `; exports[`Liquid > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > styleClassAndCss 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "
" `; exports[`Liquid > jsx > Javascript Test > subComponent 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > svgComponent 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > typeDependency 1`] = ` "
{{foo}}
" `; exports[`Liquid > jsx > Javascript Test > typeExternalProps 1`] = ` "
Hello {{name}} !
" `; exports[`Liquid > jsx > Javascript Test > typeExternalStore 1`] = ` "
Hello {{_name}} !
" `; exports[`Liquid > jsx > Javascript Test > typeGetterStore 1`] = ` "
Hello {{name}} !
" `; exports[`Liquid > jsx > Javascript Test > use-style 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > use-style-and-css 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > use-style-outside-component 1`] = ` " " `; exports[`Liquid > jsx > Javascript Test > useTarget 1`] = ` "
{{name}}
" `; exports[`Liquid > jsx > Javascript Test > webComponent 1`] = ` " Slide 1 Slide 2 Slide 3 " `; exports[`Liquid > jsx > Remove Internal mitosis package 1`] = ` "
Hello {{name}} ! I can run in React, Qwik, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > AdvancedRef 1`] = ` "
{% if showInput %}
{% endif %} Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Liquid > jsx > Typescript Test > Basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Liquid > jsx > Typescript Test > Basic Context 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > Basic OnMount Update 1`] = ` "
Hello {{name}}
" `; exports[`Liquid > jsx > Typescript Test > Basic Outputs 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
" `; exports[`Liquid > jsx > Typescript Test > BasicAttribute 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "
{% if children %}{{children}} {{type}}{% endif %}
" `; exports[`Liquid > jsx > Typescript Test > BasicChildComponent 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > BasicFor 1`] = ` "
{% for person in names %}
Hello {{person}} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
{% endfor %}
" `; exports[`Liquid > jsx > Typescript Test > BasicRef 1`] = ` "
{% if showInput %}
{% endif %} Hello ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Liquid > jsx > Typescript Test > BasicRefAssignment 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > BasicRefPrevious 1`] = ` "

Now: {{count}} , before: {{prevCount}}

" `; exports[`Liquid > jsx > Typescript Test > Button 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Typescript Test > Columns 1`] = ` "
{% for column in columns %}
{{column.content}} {{index}}
{% endfor %}
" `; exports[`Liquid > jsx > Typescript Test > ContentSlotHtml 1`] = ` "

" `; exports[`Liquid > jsx > Typescript Test > ContentSlotJSX 1`] = ` "{% if slotReference %}

{{children}}
{% endif %} " `; exports[`Liquid > jsx > Typescript Test > CustomCode 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > Embed 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > Form 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > Image 1`] = ` "
{{children}}
" `; exports[`Liquid > jsx > Typescript Test > Image State 1`] = ` "
{% for item in images %}
{% endfor %}
" `; exports[`Liquid > jsx > Typescript Test > Img 1`] = ` "\\"{{altText}}\\" " `; exports[`Liquid > jsx > Typescript Test > Input 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > InputParent 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > NestedStore 1`] = ` "
Test

Message

" `; exports[`Liquid > jsx > Typescript Test > RawText 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > Section 1`] = ` "
{{children}}
" `; exports[`Liquid > jsx > Typescript Test > Select 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > SlotDefault 1`] = ` "
Default content
" `; exports[`Liquid > jsx > Typescript Test > SlotHtml 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > SlotJsx 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > SlotNamed 1`] = ` "
Default left Default Child
" `; exports[`Liquid > jsx > Typescript Test > Stamped.io 1`] = ` "
{% for review in reviews %}
N: {{index}}
{{review.author}}
{{review.reviewMessage}}
{% endfor %}
" `; exports[`Liquid > jsx > Typescript Test > StoreComment 1`] = ` "
{{foo}}
" `; exports[`Liquid > jsx > Typescript Test > StoreShadowVars 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > StoreWithState 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > Submit 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > Text 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > Textarea 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "
Test
" `; exports[`Liquid > jsx > Typescript Test > Video 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "
Hello {{name}}
" `; exports[`Liquid > jsx > Typescript Test > basicForFragment 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > basicForNoTagReference 1`] = ` " Hello {{name}} {% for action in actions %} {{action.text}} {% endfor %} " `; exports[`Liquid > jsx > Typescript Test > basicForwardRef 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */
" `; exports[`Liquid > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "
Hello! {{name}}
" `; exports[`Liquid > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Liquid > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */
" `; exports[`Liquid > jsx > Typescript Test > class + ClassName + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > class + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > className + css 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > className 1`] = ` "
Without Binding
With binding
" `; exports[`Liquid > jsx > Typescript Test > classState 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */
{{children}} {{type}} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */
" `; exports[`Liquid > jsx > Typescript Test > componentWithContext 1`] = ` "
{{foo.value}}
" `; exports[`Liquid > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "
{{foo.value}}
other
" `; exports[`Liquid > jsx > Typescript Test > contentState 1`] = ` "
setting context
" `; exports[`Liquid > jsx > Typescript Test > defaultProps 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "
Hello
" `; exports[`Liquid > jsx > Typescript Test > eventInputAndChange 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > eventProps 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > expressionState 1`] = ` "
{{refToUse}}
" `; exports[`Liquid > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Liquid > jsx > Typescript Test > functionProps 1`] = ` "

" `; exports[`Liquid > jsx > Typescript Test > getterState 1`] = ` "

{{foo2}}

{{bar}}

" `; exports[`Liquid > jsx > Typescript Test > import types 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > layerName 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > multipleOnUpdate 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > multipleSpreads 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > nestedShow 1`] = ` "{% if conditionA %}{% endif %} " `; exports[`Liquid > jsx > Typescript Test > nestedStyles 1`] = ` "
Hello world
" `; exports[`Liquid > jsx > Typescript Test > normalizeLayerNames 1`] = ` "
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Liquid > jsx > Typescript Test > onEvent 1`] = ` "
Test
" `; exports[`Liquid > jsx > Typescript Test > onInit & onMount 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > onInit 1`] = ` "
Default name defined by parent {{name}}
" `; exports[`Liquid > jsx > Typescript Test > onInitPlain 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > onMount 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > onMountMultiple 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > onUpdate 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > preserveTyping 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
" `; exports[`Liquid > jsx > Typescript Test > propsDestructure 1`] = ` "
{{children}} {{type}} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > jsx > Typescript Test > propsInterface 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
" `; exports[`Liquid > jsx > Typescript Test > propsType 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid! {{name}}
" `; exports[`Liquid > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > renderBlock 1`] = ` "{% if shouldWrap %} {% endif %} " `; exports[`Liquid > jsx > Typescript Test > renderContentExample 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "
{% if link %} {{text}} {% endif %}
" `; exports[`Liquid > jsx > Typescript Test > rootShow 1`] = `""`; exports[`Liquid > jsx > Typescript Test > self-referencing component 1`] = ` "
{{name}}
" `; exports[`Liquid > jsx > Typescript Test > self-referencing component with children 1`] = ` "
{{name}} {{children}}
" `; exports[`Liquid > jsx > Typescript Test > setState 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > showExpressions 1`] = ` "
{% if conditionA %}Content0{% endif %} {% if conditionA %}ContentA{% endif %} {% if conditionA %}{% endif %} {% if conditionA %}ContentB{% endif %} {% if conditionA %}{{undefined}}{% endif %} {% if conditionA %}ContentC{% endif %} {% if conditionA %}{% endif %} {% if conditionA %}ContentD{% endif %} {% if conditionA %}{% endif %} {% if conditionA %}ContentE{% endif %} {% if conditionA %}hello{% endif %} {% if conditionA %}ContentF{% endif %} {% if conditionA %}123{% endif %}
" `; exports[`Liquid > jsx > Typescript Test > showWithFor 1`] = ` "{% if conditionA %}{% for item in items %}
{{item}}
{% endfor %}{% endif %} " `; exports[`Liquid > jsx > Typescript Test > showWithOtherValues 1`] = ` "
{% if conditionA %} ContentA {% endif %} {% if conditionA %} ContentB {% endif %} {% if conditionA %} ContentC {% endif %} {% if conditionA %} ContentD {% endif %} {% if conditionA %} ContentE {% endif %} {% if conditionA %} ContentF {% endif %}
" `; exports[`Liquid > jsx > Typescript Test > showWithRootText 1`] = ` "{% if conditionA %} ContentA {% endif %} " `; exports[`Liquid > jsx > Typescript Test > signalsOnUpdate 1`] = ` "
{{id}} {{foo.value.bar.baz}}
" `; exports[`Liquid > jsx > Typescript Test > spreadAttrs 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > spreadNestedProps 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > spreadProps 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > store-async-function 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > string-literal-store 1`] = ` "
{{foo}}
" `; exports[`Liquid > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > styleClassAndCss 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "
" `; exports[`Liquid > jsx > Typescript Test > subComponent 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > svgComponent 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > typeDependency 1`] = ` "
{{foo}}
" `; exports[`Liquid > jsx > Typescript Test > typeExternalProps 1`] = ` "
Hello {{name}} !
" `; exports[`Liquid > jsx > Typescript Test > typeExternalStore 1`] = ` "
Hello {{_name}} !
" `; exports[`Liquid > jsx > Typescript Test > typeGetterStore 1`] = ` "
Hello {{name}} !
" `; exports[`Liquid > jsx > Typescript Test > use-style 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > use-style-and-css 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > use-style-outside-component 1`] = ` " " `; exports[`Liquid > jsx > Typescript Test > useTarget 1`] = ` "
{{name}}
" `; exports[`Liquid > jsx > Typescript Test > webComponent 1`] = ` " Slide 1 Slide 2 Slide 3 " `; exports[`Liquid > svelte > Javascript Test > basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > svelte > Javascript Test > bindGroup 1`] = ` "


Tortilla: {{tortilla}}

Fillings: {{fillings}}

" `; exports[`Liquid > svelte > Javascript Test > bindProperty 1`] = ` " " `; exports[`Liquid > svelte > Javascript Test > classDirective 1`] = ` " " `; exports[`Liquid > svelte > Javascript Test > context 1`] = ` "
{{activeTab}}
" `; exports[`Liquid > svelte > Javascript Test > each 1`] = ` "
    {% for num in numbers %}
  • {{num}}
  • {% endfor %}
" `; exports[`Liquid > svelte > Javascript Test > eventHandlers 1`] = ` "
" `; exports[`Liquid > svelte > Javascript Test > html 1`] = ` "
" `; exports[`Liquid > svelte > Javascript Test > ifElse 1`] = ` "{% if show %} {% endif %} " `; exports[`Liquid > svelte > Javascript Test > imports 1`] = ` "
" `; exports[`Liquid > svelte > Javascript Test > lifecycleHooks 1`] = ` "
" `; exports[`Liquid > svelte > Javascript Test > reactive 1`] = ` "
Lowercase: {{lowercaseName}}
" `; exports[`Liquid > svelte > Javascript Test > reactiveWithFn 1`] = ` "
Result: {{result}}
" `; exports[`Liquid > svelte > Javascript Test > slots 1`] = ` "
default
default
" `; exports[`Liquid > svelte > Javascript Test > style 1`] = ` " " `; exports[`Liquid > svelte > Javascript Test > textExpressions 1`] = ` "
normal:
conditional
" `; exports[`Liquid > svelte > Typescript Test > basic 1`] = ` "
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Liquid > svelte > Typescript Test > bindGroup 1`] = ` "


Tortilla: {{tortilla}}

Fillings: {{fillings}}

" `; exports[`Liquid > svelte > Typescript Test > bindProperty 1`] = ` " " `; exports[`Liquid > svelte > Typescript Test > classDirective 1`] = ` " " `; exports[`Liquid > svelte > Typescript Test > context 1`] = ` "
{{activeTab}}
" `; exports[`Liquid > svelte > Typescript Test > each 1`] = ` "
    {% for num in numbers %}
  • {{num}}
  • {% endfor %}
" `; exports[`Liquid > svelte > Typescript Test > eventHandlers 1`] = ` "
" `; exports[`Liquid > svelte > Typescript Test > html 1`] = ` "
" `; exports[`Liquid > svelte > Typescript Test > ifElse 1`] = ` "{% if show %} {% endif %} " `; exports[`Liquid > svelte > Typescript Test > imports 1`] = ` "
" `; exports[`Liquid > svelte > Typescript Test > lifecycleHooks 1`] = ` "
" `; exports[`Liquid > svelte > Typescript Test > reactive 1`] = ` "
Lowercase: {{lowercaseName}}
" `; exports[`Liquid > svelte > Typescript Test > reactiveWithFn 1`] = ` "
Result: {{result}}
" `; exports[`Liquid > svelte > Typescript Test > slots 1`] = ` "
default
default
" `; exports[`Liquid > svelte > Typescript Test > style 1`] = ` " " `; exports[`Liquid > svelte > Typescript Test > textExpressions 1`] = ` "
normal:
conditional
" `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/lit.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Lit > jsx > Javascript Test > Advanced 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-show-component\\") export default class MyBasicForShowComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; render() { return html\`
\${this.names?.map( (person, i) => html\`
\${i} : \${person}
\` )} \${this.names?.map((person, index) => html\`\${person}\`)} \${this.names?.map((_, index) => html\`
\`)} \${Array.from({ length: 10, })?.map( (_, ee) => html\`
\${ee}
\` )} \${Array.from({ length: 10 })?.map( (_, index) => html\`

\${index}

\` )} \${this.names?.map( (person, index) => html\`\${person} \${index}\` )} \${Array.from({ length: 10 })?.map( (person, count) => html\`\${person} \${count}\` )} \${this.names?.map( (person, i) => html\`\${person} \${i}\` )} \${Array.from({ length: 10 })?.map( (person, index) => html\`\${person} \${index}\` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > AdvancedRef 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-ref-component\\") export default class MyBasicRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"inputRef\\"]') inputRef!: HTMLElement; @query('[ref=\\"inputNoArgRef\\"]') inputNoArgRef!: HTMLElement; @property() showInput: any; @state() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; updated() { console.log(\\"Received an update\\"); } render() { return html\`
\${ this.showInput ? html\` this.onBlur()} @change=\${(event) => (this.name = event.target.value)} /> \` : null } Hello \${this.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`; } } " `; exports[`Lit > jsx > Javascript Test > Basic 1`] = ` "export const DEFAULT_VALUES = { name: \\"Steve\\", }; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; @state() age = 1; @state() sports = [\\"\\"]; underscore_fn_name() { return \\"bar\\"; } render() { return html\`
(this.name = myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
\`; } } " `; exports[`Lit > jsx > Javascript Test > Basic 2`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-show-component\\") export default class MyBasicForShowComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; render() { return html\`
\${this.names?.map( (person, index) => html\`\${ person === this.name ? html\` { this.name = event.target.value + \\" and \\" + person; }} /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! \` : null }\` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > Basic Context 1`] = ` "import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; onChange = function onChange() { const change = myService.method(\\"change\\"); console.log(change); }; connectedCallback() { const bye = myService.method(\\"hi\\"); console.log(bye); } render() { return html\`
\${ myService.method(\\"hello\\") + this.name } Hello! I can run in React, Vue, Solid, or Liquid! this.onChange()} />
\`; } } " `; exports[`Lit > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-on-mount-update-component\\") export default class MyBasicOnMountUpdateComponent extends LitElement { createRenderRoot() { return this; } @property() bye: any; @property() hi: any; @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; connectedCallback() { this.name = \\"PatrickJS onMount\\" + this.bye; } render() { return html\`
Hello \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > Basic Outputs 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-outputs-component\\") export default class MyBasicOutputsComponent extends LitElement { createRenderRoot() { return this; } @property() onMessageChange: any; @property() onEvent: any; @property() message: any; @state() name = \\"PatrickJS\\"; connectedCallback() { this.onMessageChange(this.name); this.onEvent(this.message); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-outputs-component\\") export default class MyBasicOutputsComponent extends LitElement { createRenderRoot() { return this; } @property() onMessageChange: any; @property() onEvent: any; @property() message: any; @state() name = \\"PatrickJS\\"; connectedCallback() { this.onMessageChange(this.name); this.onEvent(this.message); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > BasicAttribute 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-boolean-attribute\\") export default class MyBooleanAttribute extends LitElement { createRenderRoot() { return this; } @property() children: any; @property() type: any; render() { return html\`
\${this.children ? html\`\${this.children} \${this.type}\` : null}
\`; } } " `; exports[`Lit > jsx > Javascript Test > BasicChildComponent 1`] = ` "import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-child-component\\") export default class MyBasicChildComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; @state() dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; render() { return html\`
(this.name = name)} @event=\${(event) => this.log(\\"Test\\")} >
\`; } } " `; exports[`Lit > jsx > Javascript Test > BasicFor 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-component\\") export default class MyBasicForComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; connectedCallback() { console.log(\\"onMount code\\"); } render() { return html\`
\${this.names?.map( (person, index) => html\` { this.name = event.target.value + \\" and \\" + person; }} /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! \` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > BasicRef 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-ref-component\\") export default class MyBasicRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"inputRef\\"]') inputRef!: HTMLElement; @query('[ref=\\"inputNoArgRef\\"]') inputNoArgRef!: HTMLElement; @property() showInput: any; @state() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; render() { return html\`
\${ this.showInput ? html\` this.onBlur()} @change=\${(event) => (this.name = event.target.value)} /> \` : null } Hello \${this.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`; } } " `; exports[`Lit > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-ref-assignment-component\\") export default class MyBasicRefAssignmentComponent extends LitElement { createRenderRoot() { return this; } handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this.holdValueRef); this.holdValueRef = this.holdValueRef + \\"JS\\"; }; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > BasicRefPrevious 1`] = ` "export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-previous-component\\") export default class MyPreviousComponent extends LitElement { createRenderRoot() { return this; } @state() count = 0; updated() { this.prevCount = this.count; } render() { return html\`

Now: \${this.count} , before: \${this.prevCount}

\`; } } " `; exports[`Lit > jsx > Javascript Test > Button 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; render() { return html\`
\${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Javascript Test > Columns 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-column\\") export default class Column extends LitElement { createRenderRoot() { return this; } @property() columns: any; @property() space: any; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } render() { return html\`
\${this.columns?.map( (column, index) => html\`
\${column.content} \${index}
\` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"content-slot-code\\") export default class ContentSlotCode extends LitElement { createRenderRoot() { return this; } @property() slotTesting: any; render() { return html\`

\`; } } " `; exports[`Lit > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"content-slot-jsx-code\\") export default class ContentSlotJsxCode extends LitElement { createRenderRoot() { return this; } @property() slotContent: any; @property() children: any; @property() slotReference: any; @property() attributes: any; @property() content: any; @state() name = \\"king\\"; @state() showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } render() { return html\` \${ this.slotReference ? html\`
this.show()} >\${ this.showContent && this.slotContent ? html\`\${this.content}\` : null }

\${this.children}
\` : null } \`; } } " `; exports[`Lit > jsx > Javascript Test > CustomCode 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"custom-code\\") export default class CustomCode extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"elem\\"]') elem!: HTMLElement; @property() replaceNodes: any; @property() code: any; @state() scriptsInserted = []; @state() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } connectedCallback() { this.findAndRunScripts(); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > Embed 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"custom-code\\") export default class CustomCode extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"elem\\"]') elem!: HTMLElement; @property() replaceNodes: any; @property() code: any; @state() scriptsInserted = []; @state() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } connectedCallback() { this.findAndRunScripts(); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > Form 1`] = ` "import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"form-component\\") export default class FormComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"formRef\\"]') formRef!: HTMLElement; @property() previewState: any; @property() sendWithJs: any; @property() sendSubmissionsTo: any; @property() action: any; @property() customHeaders: any; @property() contentType: any; @property() sendSubmissionsToEmail: any; @property() name: any; @property() method: any; @property() errorMessagePath: any; @property() resetFormOnSubmit: any; @property() successUrl: any; @property() validate: any; @property() attributes: any; @property() builderBlock: any; @property() errorMessage: any; @property() sendingMessage: any; @property() successMessage: any; @state() formState = \\"unsubmitted\\"; @state() responseData = null; @state() formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef) { this.formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } render() { return html\`
this.onSubmit(event)} \${spread(props.attributes)} >\${ this.builderBlock && this.builderBlock.children ? html\`\${this.builderBlock?.children?.map( (block, index) => html\`\` )}\` : null } \${ this.submissionState === \\"error\\" ? html\`\` : null } \${ this.submissionState === \\"sending\\" ? html\`\` : null } \${ this.submissionState === \\"error\\" && this.responseData ? html\`
\${JSON.stringify(this.responseData, null, 2)}
\` : null } \${ this.submissionState === \\"success\\" ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Javascript Test > Image 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-image\\") export default class Image extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"pictureRef\\"]') pictureRef!: HTMLElement; @property() lazy: any; @property() altText: any; @property() _class: any; @property() image: any; @property() srcset: any; @property() sizes: any; @property() children: any; @state() scrollListener = null; @state() imageLoaded = false; @state() load = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; connectedCallback() { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef) { const rect = this.pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } disconnectedCallback() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } render() { return html\`
\${ !this.useLazyLoading() || this.load ? html\` this.setLoaded()} .srcset=\${this.srcset} .sizes=\${this.sizes} />\` : null } \${this.children}
\`; } } " `; exports[`Lit > jsx > Javascript Test > Image State 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"img-state-component\\") export default class ImgStateComponent extends LitElement { createRenderRoot() { return this; } @state() canShow = true; @state() images = [\\"http://example.com/qwik.png\\"]; render() { return html\`
\${this.images?.map( (item, itemIndex) => html\`\` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"img-component\\") export default class ImgComponent extends LitElement { createRenderRoot() { return this; } @property() backgroundSize: any; @property() backgroundPosition: any; @property() attributes: any; @property() imgSrc: any; @property() altText: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"form-input-component\\") export default class FormInputComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() defaultValue: any; @property() placeholder: any; @property() type: any; @property() name: any; @property() value: any; @property() required: any; @property() onChange: any; render() { return html\` this.onChange?.(event.target.value)} /> \`; } } " `; exports[`Lit > jsx > Javascript Test > InputParent 1`] = ` "import FormInputComponent from \\"./input.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-stepper\\") export default class Stepper extends LitElement { createRenderRoot() { return this; } handleChange(value) { console.log(value); } render() { return html\` this.handleChange(value)} > \`; } } " `; exports[`Lit > jsx > Javascript Test > NestedStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"nested-store\\") export default class NestedStore extends LitElement { createRenderRoot() { return this; } @state() _id = \\"abc\\"; @state() _messageId = this._id + \\"-message\\"; render() { return html\`
Test

Message

\`; } } " `; exports[`Lit > jsx > Javascript Test > RawText 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"raw-text\\") export default class RawText extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() text: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > Section 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"section-component\\") export default class SectionComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() maxWidth: any; @property() children: any; render() { return html\`
\${this.children}
\`; } } " `; exports[`Lit > jsx > Javascript Test > Section 2`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"section-state-component\\") export default class SectionStateComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() children: any; @state() max = 42; @state() items = [42]; render() { return html\` \${ this.max ? html\`\${this.items?.map( (item, index) => html\`
\${this.children}
\` )}\` : null } \`; } } " `; exports[`Lit > jsx > Javascript Test > Select 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"select-component\\") export default class SelectComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() value: any; @property() defaultValue: any; @property() name: any; @property() options: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > SlotDefault 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Default content
\`; } } " `; exports[`Lit > jsx > Javascript Test > SlotHtml 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello
)} > \`; } } " `; exports[`Lit > jsx > Javascript Test > SlotJsx 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello
)} > \`; } } " `; exports[`Lit > jsx > Javascript Test > SlotNamed 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Default left Default Child
\`; } } " `; exports[`Lit > jsx > Javascript Test > Stamped.io 1`] = ` "import { kebabCase, snakeCase } from \\"lodash\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"smile-reviews\\") export default class SmileReviews extends LitElement { createRenderRoot() { return this; } @property() apiKey: any; @property() productId: any; @state() reviews = []; @state() name = \\"test\\"; @state() showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } connectedCallback() { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } render() { return html\`
\${ this.showReviewPrompt || \\"asdf\\" ? html\` \` : null } \${this.reviews?.map( (review, index) => html\`
N: \${index}
\${review.author}
\${review.reviewMessage}
\` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > StoreComment 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"string-literal-store\\") export default class StringLiteralStore extends LitElement { createRenderRoot() { return this; } @state() foo = true; bar() {} render() { return html\` \${this.foo} \`; } } " `; exports[`Lit > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() errors = {}; foo(errors) { return errors; } render() { return html\` \${this.foo(this.errors)} \`; } } " `; exports[`Lit > jsx > Javascript Test > StoreWithState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() foo = false; bar() { return this.foo; } render() { return html\` \${this.bar()} \`; } } " `; exports[`Lit > jsx > Javascript Test > Submit 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"submit-button\\") export default class SubmitButton extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() text: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > Text 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-text\\") export default class Text extends LitElement { createRenderRoot() { return this; } @property() text: any; @property() content: any; @state() name = \\"Decadef20\\"; render() { return html\`
my name

' } >
\`; } } " `; exports[`Lit > jsx > Javascript Test > Textarea 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-textarea\\") export default class Textarea extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() placeholder: any; @property() name: any; @property() value: any; @property() defaultValue: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"use-value-and-fn-from-store\\") export default class UseValueAndFnFromStore extends LitElement { createRenderRoot() { return this; } @property() onChange: any; @state() _id = \\"abc\\"; @state() _active = false; _do(id) { this._active = !!id; if (this.onChange) { this.onChange(this._active); } } updated() { if (this._do) { this._do(this._id); } } render() { return html\`
Test
\`; } } " `; exports[`Lit > jsx > Javascript Test > Video 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-video\\") export default class Video extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() fit: any; @property() position: any; @property() video: any; @property() posterImage: any; @property() autoPlay: any; @property() muted: any; @property() controls: any; @property() loop: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } render() { return html\`
Hello \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > basicForFragment 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"basic-for-fragment\\") export default class BasicForFragment extends LitElement { createRenderRoot() { return this; } @state() id = \\"xyz\\"; render() { return html\`
\${[\\"a\\", \\"b\\", \\"c\\"]?.map( (option, index) => html\`
\${option}
\` )} \${[\\"a\\", \\"b\\", \\"c\\"]?.map( (option, index) => html\`
\${option}
\` )}
\`; } } " `; exports[`Lit > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-no-tag-ref-component\\") export default class MyBasicForNoTagRefComponent extends LitElement { createRenderRoot() { return this; } @property() actions: any; @state() name = \\"VincentW\\"; @state() TagName = \\"div\\"; @state() tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } render() { return html\` Hello \${this.name} \${this.actions?.map( (action, index) => html\` \${action.text}\` )} \`; } } " `; exports[`Lit > jsx > Javascript Test > basicForwardRef 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-forward-ref-component\\") export default class MyBasicForwardRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"props.inputRef\\"]') propsInputRef!: HTMLElement; @property() inputRef: any; @state() name = \\"PatrickJS\\"; render() { return html\`
(this.name = event.target.value)} />
\`; } } " `; exports[`Lit > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-forward-ref-component\\") export default class MyBasicForwardRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"props.inputRef\\"]') propsInputRef!: HTMLElement; @property() inputRef: any; @state() name = \\"PatrickJS\\"; render() { return html\`
(this.name = event.target.value)} />
\`; } } " `; exports[`Lit > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-on-update-return-component\\") export default class MyBasicOnUpdateReturnComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; updated() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } render() { return html\`
Hello! \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"basic-ref-attribute-passing-component\\") export default class BasicRefAttributePassingComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"buttonRef\\"]') buttonRef!: HTMLElement; connectedCallback() { console.log(\\"onMount\\"); } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"basic-ref-attribute-passing-custom-ref-component\\") export default class BasicRefAttributePassingCustomRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"buttonRef\\"]') buttonRef!: HTMLElement; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > class + ClassName + css 1`] = ` "import \\"./my-component.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > class + css 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > className + css 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > className 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"class-name-code\\") export default class ClassNameCode extends LitElement { createRenderRoot() { return this; } @state() bindings = \\"a binding\\"; render() { return html\`
Without Binding
With binding
\`; } } " `; exports[`Lit > jsx > Javascript Test > classState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() classState = \\"testClassName\\"; @state() styleState = { color: \\"red\\", }; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() className: any; @property() children: any; @property() type: any; render() { return html\`
\${this.children} \${this.type} Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"complex-meta-raw\\") export default class ComplexMetaRaw extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > componentWithContext 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"component-with-context\\") export default class ComponentWithContext extends LitElement { createRenderRoot() { return this; } @property() content: any; render() { return html\` \${foo.value} \`; } } " `; exports[`Lit > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"component-with-context\\") export default class ComponentWithContext extends LitElement { createRenderRoot() { return this; } @property() content: any; render() { return html\` \${foo.value}
other
\`; } } " `; exports[`Lit > jsx > Javascript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"render-content\\") export default class RenderContent extends LitElement { createRenderRoot() { return this; } @property() content: any; @property() customComponents: any; render() { return html\`
setting context
\`; } } " `; exports[`Lit > jsx > Javascript Test > defaultProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; @property() onClick: any; @property() buttonText: any; render() { return html\`
\${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; @property() onClick: any; render() { return html\`
\${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "const DEFAULT_VALUES = { name: \\"Sami\\", }; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"component-with-types\\") export default class ComponentWithTypes extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello \${this.name || DEFAULT_VALUES.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"event-input-and-change\\") export default class EventInputAndChange extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; render() { return html\`
(this.name = event.target.value)} @change=\${(event) => (this.name = event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > eventProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"event-props-component\\") export default class EventPropsComponent extends LitElement { createRenderRoot() { return this; } @property() onGetVoid: any; @property() onEnter: any; @property() onPass: any; handleClick() { if (this.onGetVoid) { this.onGetVoid(); } if (this.onEnter) { console.log(this.onEnter()); } if (this.onPass) { this.onPass(\\"test\\"); } } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > expressionState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() componentRef: any; @state() refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; render() { return html\`
\${this.refToUse}
\`; } } " `; exports[`Lit > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"figma-button\\") export default class FigmaButton extends LitElement { createRenderRoot() { return this; } @property() icon: any; @property() interactiveState: any; @property() width: any; @property() size: any; @property() label: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > functionProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`

x} .f1=\${(x) => x} .f2=\${( x ) => {}} .f3=\${function () { return x; }} .f4=\${function (x) { return x; }} .f5=\${function (x) { return; }} .f6=\${function () { return; }} .f7=\${(a, b, c) => a + b + c} >

\`; } } " `; exports[`Lit > jsx > Javascript Test > getterState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() foo: any; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } render() { return html\`

\${this.foo2}

\${this.bar}

\${this.baz(1)}

\`; } } " `; exports[`Lit > jsx > Javascript Test > import types 1`] = ` "import RenderBlock from \\"./builder-render-block.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"render-content\\") export default class RenderContent extends LitElement { createRenderRoot() { return this; } @property() renderContentProps: any; getRenderContentProps(block, index) { return { block: block, index: index, }; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > layerName 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-layer-name-component\\") export default class MyLayerNameComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"multiple-on-update\\") export default class MultipleOnUpdate extends LitElement { createRenderRoot() { return this; } updated() { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"multiple-on-update-with-deps\\") export default class MultipleOnUpdateWithDeps extends LitElement { createRenderRoot() { return this; } @state() a = \\"a\\"; @state() b = \\"b\\"; @state() c = \\"c\\"; @state() d = \\"d\\"; updated() { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > multipleSpreads 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() attrs = { hello: \\"world\\", }; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > nestedShow 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"nested-show\\") export default class NestedShow extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; @property() conditionB: any; render() { return html\` \${ this.conditionA ? html\`\${ !this.conditionB ? html\`
if condition A and condition B
\` : html\`
else-condition-B
\` }\` : html\`
else-condition-A
\` } \`; } } " `; exports[`Lit > jsx > Javascript Test > nestedStyles 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"nested-styles\\") export default class NestedStyles extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello world
\`; } } " `; exports[`Lit > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-normalized-layer-names-component\\") export default class MyNormalizedLayerNamesComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`; } } " `; exports[`Lit > jsx > Javascript Test > onEvent 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-embed\\") export default class Embed extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"elem\\"]') elem!: HTMLElement; foo(event) { console.log(\\"test2\\"); } connectedCallback() { this.elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); } render() { return html\`
Test
\`; } } " `; exports[`Lit > jsx > Javascript Test > onInit & onMount 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-init\\") export default class OnInit extends LitElement { createRenderRoot() { return this; } connectedCallback() { console.log(\\"onMount\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > onInit 1`] = ` "export const defaultValues = { name: \\"PatrickJS\\", }; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-init\\") export default class OnInit extends LitElement { createRenderRoot() { return this; } @property() name: any; @state() name = \\"\\"; render() { return html\`
Default name defined by parent \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > onInitPlain 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-init-plain\\") export default class OnInitPlain extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > onMount 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-comp\\") export default class Comp extends LitElement { createRenderRoot() { return this; } connectedCallback() { console.log(\\"Runs on mount\\"); } disconnectedCallback() { console.log(\\"Runs on unMount\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > onMountMultiple 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-comp\\") export default class Comp extends LitElement { createRenderRoot() { return this; } connectedCallback() { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > onUpdate 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-update\\") export default class OnUpdate extends LitElement { createRenderRoot() { return this; } updated() { console.log(\\"Runs on every update/rerender\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-update-with-deps\\") export default class OnUpdateWithDeps extends LitElement { createRenderRoot() { return this; } @property() size: any; @state() a = \\"a\\"; @state() b = \\"b\\"; updated() { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > preserveTyping 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid! \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > propsDestructure 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() children: any; @property() type: any; @state() name = \\"Decadef20\\"; render() { return html\`
\${this.children} \${this.type} Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Javascript Test > propsInterface 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid! \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > propsType 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid! \${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-update\\") export default class OnUpdate extends LitElement { createRenderRoot() { return this; } foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; updated() { this.foo({ someOption: this.bar, }); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import \\"./block-styles.ts\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import \\"./render-component.ts\\"; import \\"./render-repeated-block.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"render-block\\") export default class RenderBlock extends LitElement { createRenderRoot() { return this; } @property() block: any; @property() context: any; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } render() { return html\` \${ this.shouldWrap ? html\`\${ isEmptyHtmlElement(this.tag) ? html\`\` : null } \${ !isEmptyHtmlElement(this.tag) && this.repeatItemData ? html\`\${this.repeatItemData?.map( (data, index) => html\`\` )}\` : null } \${ !isEmptyHtmlElement(this.tag) && !this.repeatItemData ? html\` \${this.childrenWithoutParentComponent?.map( (child, index) => html\`\` )} \${this.childrenWithoutParentComponent?.map( (child, index) => html\`\` )}\` : null }\` : html\`\` } \`; } } " `; exports[`Lit > jsx > Javascript Test > renderContentExample 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import \\"@dummy/RenderBlocks.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"render-content\\") export default class RenderContent extends LitElement { createRenderRoot() { return this; } @property() customComponents: any; @property() content: any; connectedCallback() { sendComponentsToVisualEditor(this.customComponents); } updated() { dispatchNewContentToVisualEditor(this.content); } render() { return html\`
trackClick(this.content.id)} >
\`; } } " `; exports[`Lit > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; render() { return html\` \${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null } \`; } } " `; exports[`Lit > jsx > Javascript Test > rootShow 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"render-styles\\") export default class RenderStyles extends LitElement { createRenderRoot() { return this; } @property() foo: any; render() { return html\` \${ this.foo === \\"bar\\" ? html\`
Bar
\` : html\`
Foo
\` } \`; } } " `; exports[`Lit > jsx > Javascript Test > self-referencing component 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
\${this.name} \${ this.name === \\"Batman\\" ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; @property() children: any; render() { return html\`
\${this.name} \${this.children} \${ this.name === \\"Batman\\" ? html\`
Wayne
\` : null }
\`; } } " `; exports[`Lit > jsx > Javascript Test > setState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"set-state\\") export default class SetState extends LitElement { createRenderRoot() { return this; } @state() n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > showExpressions 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"show-with-other-values\\") export default class ShowWithOtherValues extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; @property() conditionB: any; @property() conditionC: any; render() { return html\`
\${this.conditionA ? html\`Content0\` : html\`ContentA\`} \${ this.conditionA ? html\`ContentA\` : null } \${this.conditionA ? html\`\` : html\`ContentA\`} \${this.conditionA ? html\`ContentB\` : html\`\${undefined}\`} \${ this.conditionA ? html\`\${undefined}\` : html\`ContentB\` } \${this.conditionA ? html\`ContentC\` : null} \${ this.conditionA ? html\`\` : html\`ContentC\` } \${this.conditionA ? html\`ContentD\` : null} \${ this.conditionA ? html\`\` : html\`ContentD\` } \${this.conditionA ? html\`ContentE\` : html\`hello\`} \${ this.conditionA ? html\`hello\` : html\`ContentE\` } \${this.conditionA ? html\`ContentF\` : html\`123\`} \${this.conditionA ? html\`123\` : html\`ContentF\`} \${ this.conditionA === \\"Default\\" ? html\`4mb\` : html\`\${this.conditionB === \\"Complete\\" ? html\`20mb\` : html\`9mb\`}\` } \${ this.conditionA === \\"Default\\" ? html\`\${this.conditionB === \\"Complete\\" ? html\`20mb\` : html\`9mb\`}\` : html\`4mb\` } \${ this.conditionA === \\"Default\\" ? html\`\${ this.conditionB === \\"Complete\\" ? html\`
complete
\` : html\`9mb\` }\` : html\`\${ this.conditionC === \\"Complete\\" ? html\`dff\` : html\`
complete else
\` }\` }
\`; } } " `; exports[`Lit > jsx > Javascript Test > showWithFor 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"nested-show\\") export default class NestedShow extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; @property() items: any; render() { return html\` \${ this.conditionA ? html\`\${this.items?.map( (item, idx) => html\`
\${item}
\` )}\` : html\`
else-condition-A
\` } \`; } } " `; exports[`Lit > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"show-with-other-values\\") export default class ShowWithOtherValues extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; render() { return html\`
\${this.conditionA ? html\` ContentA \` : null} \${ this.conditionA ? html\` ContentB \` : html\`\${undefined}\` } \${this.conditionA ? html\` ContentC \` : null} \${this.conditionA ? html\` ContentD \` : null} \${ this.conditionA ? html\` ContentE \` : html\`hello\` } \${this.conditionA ? html\` ContentF \` : html\`123\`}
\`; } } " `; exports[`Lit > jsx > Javascript Test > showWithRootText 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"show-root-text\\") export default class ShowRootText extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; render() { return html\` \${ this.conditionA ? html\` ContentA \` : html\`
else-condition-A
\` } \`; } } " `; exports[`Lit > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() id: any; @property() foo: any; updated() { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } render() { return html\`
\${this.id} \${this.foo.value.bar.baz}
\`; } } " `; exports[`Lit > jsx > Javascript Test > spreadAttrs 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() nested: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > spreadProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > store-async-function 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"string-literal-store\\") export default class StringLiteralStore extends LitElement { createRenderRoot() { return this; } arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > string-literal-store 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"string-literal-store\\") export default class StringLiteralStore extends LitElement { createRenderRoot() { return this; } @state() foo = 123; render() { return html\`
\${this.foo}
\`; } } " `; exports[`Lit > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"style-prop-class-and-css\\") export default class StylePropClassAndCss extends LitElement { createRenderRoot() { return this; } @property() attributes: any; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Javascript Test > subComponent 1`] = ` "import \\"./foo-sub-component.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"sub-component\\") export default class SubComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > svgComponent 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"svg-component\\") export default class SvgComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > typeDependency 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"type-dependency\\") export default class TypeDependency extends LitElement { createRenderRoot() { return this; } @property() foo: any; render() { return html\`
\${this.foo}
\`; } } " `; exports[`Lit > jsx > Javascript Test > typeExternalProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"type-external-props\\") export default class TypeExternalProps extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello \${this.name} !
\`; } } " `; exports[`Lit > jsx > Javascript Test > typeExternalStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"type-external-store\\") export default class TypeExternalStore extends LitElement { createRenderRoot() { return this; } @state() _name = \\"test\\"; render() { return html\`
Hello \${this._name} !
\`; } } " `; exports[`Lit > jsx > Javascript Test > typeGetterStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"type-getter-store\\") export default class TypeGetterStore extends LitElement { createRenderRoot() { return this; } @state() name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } render() { return html\`
Hello \${this.name} !
\`; } } " `; exports[`Lit > jsx > Javascript Test > use-style 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > use-style-and-css 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Javascript Test > useTarget 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"use-target-component\\") export default class UseTargetComponent extends LitElement { createRenderRoot() { return this; } @state() lastName = \\"bar\\"; @state() foo = \\"bar\\"; get name() { const prefix = \\"li\\"; return prefix + \\"foo\\"; } connectedCallback() { console.log(this.foo); this.foo = \\"bar\\"; } render() { return html\`
\${this.name}
\`; } } " `; exports[`Lit > jsx > Javascript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-web-component\\") export default class MyBasicWebComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` Slide 1 Slide 2 Slide 3 \`; } } " `; exports[`Lit > jsx > Remove Internal mitosis package 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; render() { return html\`
Hello \${this.name} ! I can run in React, Qwik, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > Advanced 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-show-component\\") export default class MyBasicForShowComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; render() { return html\`
\${this.names?.map( (person, i) => html\`
\${i} : \${person}
\` )} \${this.names?.map((person, index) => html\`\${person}\`)} \${this.names?.map((_, index) => html\`
\`)} \${Array.from({ length: 10, })?.map( (_, ee) => html\`
\${ee}
\` )} \${Array.from({ length: 10 })?.map( (_, index) => html\`

\${index}

\` )} \${this.names?.map( (person, index) => html\`\${person} \${index}\` )} \${Array.from({ length: 10 })?.map( (person, count) => html\`\${person} \${count}\` )} \${this.names?.map( (person, i) => html\`\${person} \${i}\` )} \${Array.from({ length: 10 })?.map( (person, index) => html\`\${person} \${index}\` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > AdvancedRef 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { showInput: boolean; } @customElement(\\"my-basic-ref-component\\") export default class MyBasicRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"inputRef\\"]') inputRef!: HTMLElement; @query('[ref=\\"inputNoArgRef\\"]') inputNoArgRef!: HTMLElement; @property() showInput: any; @state() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; updated() { console.log(\\"Received an update\\"); } render() { return html\`
\${ this.showInput ? html\` this.onBlur()} @change=\${(event) => (this.name = event.target.value)} /> \` : null } Hello \${this.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`; } } " `; exports[`Lit > jsx > Typescript Test > Basic 1`] = ` "export const DEFAULT_VALUES = { name: \\"Steve\\", }; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface MyBasicComponentProps { id: string; } @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; @state() age = 1; @state() sports = [\\"\\"]; underscore_fn_name() { return \\"bar\\"; } render() { return html\`
(this.name = myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
\`; } } " `; exports[`Lit > jsx > Typescript Test > Basic 2`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-show-component\\") export default class MyBasicForShowComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; render() { return html\`
\${this.names?.map( (person, index) => html\`\${ person === this.name ? html\` { this.name = event.target.value + \\" and \\" + person; }} /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! \` : null }\` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > Basic Context 1`] = ` "import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; onChange = function onChange() { const change = myService.method(\\"change\\"); console.log(change); }; connectedCallback() { const bye = myService.method(\\"hi\\"); console.log(bye); } render() { return html\`
\${ myService.method(\\"hello\\") + this.name } Hello! I can run in React, Vue, Solid, or Liquid! this.onChange()} />
\`; } } " `; exports[`Lit > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { hi: string; bye: string; } @customElement(\\"my-basic-on-mount-update-component\\") export default class MyBasicOnMountUpdateComponent extends LitElement { createRenderRoot() { return this; } @property() bye: any; @property() hi: any; @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; connectedCallback() { this.name = \\"PatrickJS onMount\\" + this.bye; } render() { return html\`
Hello \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > Basic Outputs 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-outputs-component\\") export default class MyBasicOutputsComponent extends LitElement { createRenderRoot() { return this; } @property() onMessageChange: any; @property() onEvent: any; @property() message: any; @state() name = \\"PatrickJS\\"; connectedCallback() { this.onMessageChange(this.name); this.onEvent(this.message); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-outputs-component\\") export default class MyBasicOutputsComponent extends LitElement { createRenderRoot() { return this; } @property() onMessageChange: any; @property() onEvent: any; @property() message: any; @state() name = \\"PatrickJS\\"; connectedCallback() { this.onMessageChange(this.name); this.onEvent(this.message); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > BasicAttribute 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { children: any; type: string; }; @customElement(\\"my-boolean-attribute\\") export default class MyBooleanAttribute extends LitElement { createRenderRoot() { return this; } @property() children: any; @property() type: any; render() { return html\`
\${this.children ? html\`\${this.children} \${this.type}\` : null}
\`; } } " `; exports[`Lit > jsx > Typescript Test > BasicChildComponent 1`] = ` "import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-child-component\\") export default class MyBasicChildComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; @state() dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; render() { return html\`
(this.name = name)} @event=\${(event) => this.log(\\"Test\\")} >
\`; } } " `; exports[`Lit > jsx > Typescript Test > BasicFor 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-component\\") export default class MyBasicForComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; @state() names = [\\"Steve\\", \\"PatrickJS\\"]; connectedCallback() { console.log(\\"onMount code\\"); } render() { return html\`
\${this.names?.map( (person, index) => html\` { this.name = event.target.value + \\" and \\" + person; }} /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! \` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > BasicRef 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { showInput: boolean; } @customElement(\\"my-basic-ref-component\\") export default class MyBasicRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"inputRef\\"]') inputRef!: HTMLElement; @query('[ref=\\"inputNoArgRef\\"]') inputNoArgRef!: HTMLElement; @property() showInput: any; @state() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; render() { return html\`
\${ this.showInput ? html\` this.onBlur()} @change=\${(event) => (this.name = event.target.value)} /> \` : null } Hello \${this.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
\`; } } " `; exports[`Lit > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { showInput: boolean; } @customElement(\\"my-basic-ref-assignment-component\\") export default class MyBasicRefAssignmentComponent extends LitElement { createRenderRoot() { return this; } handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this.holdValueRef); this.holdValueRef = this.holdValueRef + \\"JS\\"; }; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > BasicRefPrevious 1`] = ` "export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { showInput: boolean; } @customElement(\\"my-previous-component\\") export default class MyPreviousComponent extends LitElement { createRenderRoot() { return this; } @state() count = 0; updated() { this.prevCount = this.count; } render() { return html\`

Now: \${this.count} , before: \${this.prevCount}

\`; } } " `; exports[`Lit > jsx > Typescript Test > Button 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; render() { return html\`
\${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Typescript Test > Columns 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } @customElement(\\"my-column\\") export default class Column extends LitElement { createRenderRoot() { return this; } @property() columns: any; @property() space: any; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } render() { return html\`
\${this.columns?.map( (column, index) => html\`
\${column.content} \${index}
\` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; @customElement(\\"content-slot-code\\") export default class ContentSlotCode extends LitElement { createRenderRoot() { return this; } @property() slotTesting: any; render() { return html\`

\`; } } " `; exports[`Lit > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string | JSX.Element; }; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"content-slot-jsx-code\\") export default class ContentSlotJsxCode extends LitElement { createRenderRoot() { return this; } @property() slotContent: any; @property() children: any; @property() slotReference: any; @property() attributes: any; @property() content: any; @state() name = \\"king\\"; @state() showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } render() { return html\` \${ this.slotReference ? html\`
this.show()} >\${ this.showContent && this.slotContent ? html\`\${this.content}\` : null }

\${this.children}
\` : null } \`; } } " `; exports[`Lit > jsx > Typescript Test > CustomCode 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @customElement(\\"custom-code\\") export default class CustomCode extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"elem\\"]') elem!: HTMLElement; @property() replaceNodes: any; @property() code: any; @state() scriptsInserted = []; @state() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } connectedCallback() { this.findAndRunScripts(); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > Embed 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } @customElement(\\"custom-code\\") export default class CustomCode extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"elem\\"]') elem!: HTMLElement; @property() replaceNodes: any; @property() code: any; @state() scriptsInserted = []; @state() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } connectedCallback() { this.findAndRunScripts(); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > Form 1`] = ` "import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"form-component\\") export default class FormComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"formRef\\"]') formRef!: HTMLElement; @property() previewState: any; @property() sendWithJs: any; @property() sendSubmissionsTo: any; @property() action: any; @property() customHeaders: any; @property() contentType: any; @property() sendSubmissionsToEmail: any; @property() name: any; @property() method: any; @property() errorMessagePath: any; @property() resetFormOnSubmit: any; @property() successUrl: any; @property() validate: any; @property() attributes: any; @property() builderBlock: any; @property() errorMessage: any; @property() sendingMessage: any; @property() successMessage: any; @state() formState = \\"unsubmitted\\"; @state() responseData = null; @state() formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef) { this.formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } render() { return html\`
this.onSubmit(event)} \${spread(props.attributes)} >\${ this.builderBlock && this.builderBlock.children ? html\`\${this.builderBlock?.children?.map( (block, index) => html\`\` )}\` : null } \${ this.submissionState === \\"error\\" ? html\`\` : null } \${ this.submissionState === \\"sending\\" ? html\`\` : null } \${ this.submissionState === \\"error\\" && this.responseData ? html\`
\${JSON.stringify(this.responseData, null, 2)}
\` : null } \${ this.submissionState === \\"success\\" ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Typescript Test > Image 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } @customElement(\\"my-image\\") export default class Image extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"pictureRef\\"]') pictureRef!: HTMLElement; @property() lazy: any; @property() altText: any; @property() _class: any; @property() image: any; @property() srcset: any; @property() sizes: any; @property() children: any; @state() scrollListener = null; @state() imageLoaded = false; @state() load = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; connectedCallback() { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef) { const rect = this.pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } disconnectedCallback() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } render() { return html\`
\${ !this.useLazyLoading() || this.load ? html\` this.setLoaded()} .srcset=\${this.srcset} .sizes=\${this.sizes} />\` : null } \${this.children}
\`; } } " `; exports[`Lit > jsx > Typescript Test > Image State 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"img-state-component\\") export default class ImgStateComponent extends LitElement { createRenderRoot() { return this; } @state() canShow = true; @state() images = [\\"http://example.com/qwik.png\\"]; render() { return html\`
\${this.images?.map( (item, itemIndex) => html\`\` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"img-component\\") export default class ImgComponent extends LitElement { createRenderRoot() { return this; } @property() backgroundSize: any; @property() backgroundPosition: any; @property() attributes: any; @property() imgSrc: any; @property() altText: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"form-input-component\\") export default class FormInputComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() defaultValue: any; @property() placeholder: any; @property() type: any; @property() name: any; @property() value: any; @property() required: any; @property() onChange: any; render() { return html\` this.onChange?.(event.target.value)} /> \`; } } " `; exports[`Lit > jsx > Typescript Test > InputParent 1`] = ` "import FormInputComponent from \\"./input.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-stepper\\") export default class Stepper extends LitElement { createRenderRoot() { return this; } handleChange(value: string) { console.log(value); } render() { return html\` this.handleChange(value)} > \`; } } " `; exports[`Lit > jsx > Typescript Test > NestedStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type MyStore = { _id?: string; _messageId?: string; }; @customElement(\\"nested-store\\") export default class NestedStore extends LitElement { createRenderRoot() { return this; } @state() _id = \\"abc\\"; @state() _messageId = this._id + \\"-message\\"; render() { return html\`
Test

Message

\`; } } " `; exports[`Lit > jsx > Typescript Test > RawText 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } @customElement(\\"raw-text\\") export default class RawText extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() text: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > Section 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"section-component\\") export default class SectionComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() maxWidth: any; @property() children: any; render() { return html\`
\${this.children}
\`; } } " `; exports[`Lit > jsx > Typescript Test > Section 2`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"section-state-component\\") export default class SectionStateComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() children: any; @state() max = 42; @state() items = [42]; render() { return html\` \${ this.max ? html\`\${this.items?.map( (item, index) => html\`
\${this.children}
\` )}\` : null } \`; } } " `; exports[`Lit > jsx > Typescript Test > Select 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"select-component\\") export default class SelectComponent extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() value: any; @property() defaultValue: any; @property() name: any; @property() options: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > SlotDefault 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string; }; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Default content
\`; } } " `; exports[`Lit > jsx > Typescript Test > SlotHtml 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string; }; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello
)} > \`; } } " `; exports[`Lit > jsx > Typescript Test > SlotJsx 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string; }; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello
)} > \`; } } " `; exports[`Lit > jsx > Typescript Test > SlotNamed 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string; }; @customElement(\\"slot-code\\") export default class SlotCode extends LitElement { createRenderRoot() { return this; } render() { return html\`
Default left Default Child
\`; } } " `; exports[`Lit > jsx > Typescript Test > Stamped.io 1`] = ` "import { kebabCase, snakeCase } from \\"lodash\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; @customElement(\\"smile-reviews\\") export default class SmileReviews extends LitElement { createRenderRoot() { return this; } @property() apiKey: any; @property() productId: any; @state() reviews = []; @state() name = \\"test\\"; @state() showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } connectedCallback() { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } render() { return html\`
\${ this.showReviewPrompt || \\"asdf\\" ? html\` \` : null } \${this.reviews?.map( (review, index) => html\`
N: \${index}
\${review.author}
\${review.reviewMessage}
\` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > StoreComment 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"string-literal-store\\") export default class StringLiteralStore extends LitElement { createRenderRoot() { return this; } @state() foo = true; bar() {} render() { return html\` \${this.foo} \`; } } " `; exports[`Lit > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() errors = {}; foo(errors) { return errors; } render() { return html\` \${this.foo(this.errors)} \`; } } " `; exports[`Lit > jsx > Typescript Test > StoreWithState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() foo = false; bar() { return this.foo; } render() { return html\` \${this.bar()} \`; } } " `; exports[`Lit > jsx > Typescript Test > Submit 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ButtonProps { attributes?: any; text?: string; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"submit-button\\") export default class SubmitButton extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() text: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > Text 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } @customElement(\\"my-text\\") export default class Text extends LitElement { createRenderRoot() { return this; } @property() text: any; @property() content: any; @state() name = \\"Decadef20\\"; render() { return html\`
my name

' } >
\`; } } " `; exports[`Lit > jsx > Typescript Test > Textarea 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-textarea\\") export default class Textarea extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() placeholder: any; @property() name: any; @property() value: any; @property() defaultValue: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; @customElement(\\"use-value-and-fn-from-store\\") export default class UseValueAndFnFromStore extends LitElement { createRenderRoot() { return this; } @property() onChange: any; @state() _id = \\"abc\\"; @state() _active = false; _do(id?: string) { this._active = !!id; if (this.onChange) { this.onChange(this._active); } } updated() { if (this._do) { this._do(this._id); } } render() { return html\`
Test
\`; } } " `; exports[`Lit > jsx > Typescript Test > Video 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-video\\") export default class Video extends LitElement { createRenderRoot() { return this; } @property() attributes: any; @property() fit: any; @property() position: any; @property() video: any; @property() posterImage: any; @property() autoPlay: any; @property() muted: any; @property() controls: any; @property() loop: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } render() { return html\`
Hello \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > basicForFragment 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"basic-for-fragment\\") export default class BasicForFragment extends LitElement { createRenderRoot() { return this; } @state() id = \\"xyz\\"; render() { return html\`
\${[\\"a\\", \\"b\\", \\"c\\"]?.map( (option, index) => html\`
\${option}
\` )} \${[\\"a\\", \\"b\\", \\"c\\"]?.map( (option, index) => html\`
\${option}
\` )}
\`; } } " `; exports[`Lit > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-for-no-tag-ref-component\\") export default class MyBasicForNoTagRefComponent extends LitElement { createRenderRoot() { return this; } @property() actions: any; @state() name = \\"VincentW\\"; @state() TagName = \\"div\\"; @state() tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } render() { return html\` Hello \${this.name} \${this.actions?.map( (action, index) => html\` \${action.text}\` )} \`; } } " `; exports[`Lit > jsx > Typescript Test > basicForwardRef 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @customElement(\\"my-basic-forward-ref-component\\") export default class MyBasicForwardRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"props.inputRef\\"]') propsInputRef!: HTMLElement; @property() inputRef: any; @state() name = \\"PatrickJS\\"; render() { return html\`
(this.name = event.target.value)} />
\`; } } " `; exports[`Lit > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } @customElement(\\"my-basic-forward-ref-component\\") export default class MyBasicForwardRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"props.inputRef\\"]') propsInputRef!: HTMLElement; @property() inputRef: any; @state() name = \\"PatrickJS\\"; render() { return html\`
(this.name = event.target.value)} />
\`; } } " `; exports[`Lit > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-on-update-return-component\\") export default class MyBasicOnUpdateReturnComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"PatrickJS\\"; updated() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } render() { return html\`
Hello! \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"basic-ref-attribute-passing-component\\") export default class BasicRefAttributePassingComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"buttonRef\\"]') buttonRef!: HTMLElement; connectedCallback() { console.log(\\"onMount\\"); } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"basic-ref-attribute-passing-custom-ref-component\\") export default class BasicRefAttributePassingCustomRefComponent extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"buttonRef\\"]') buttonRef!: HTMLElement; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > class + ClassName + css 1`] = ` "import \\"./my-component.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > class + css 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > className + css 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > className 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; @customElement(\\"class-name-code\\") export default class ClassNameCode extends LitElement { createRenderRoot() { return this; } @state() bindings = \\"a binding\\"; render() { return html\`
Without Binding
With binding
\`; } } " `; exports[`Lit > jsx > Typescript Test > classState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() classState = \\"testClassName\\"; @state() styleState = { color: \\"red\\", }; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { children: any; className: string; type: string; }; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() className: any; @property() children: any; @property() type: any; render() { return html\`
\${this.children} \${this.type} Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"complex-meta-raw\\") export default class ComplexMetaRaw extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > componentWithContext 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ComponentWithContextProps { content: string; } @customElement(\\"component-with-context\\") export default class ComponentWithContext extends LitElement { createRenderRoot() { return this; } @property() content: any; render() { return html\` \${foo.value} \`; } } " `; exports[`Lit > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ComponentWithContextProps { content: string; } @customElement(\\"component-with-context\\") export default class ComponentWithContext extends LitElement { createRenderRoot() { return this; } @property() content: any; render() { return html\` \${foo.value}
other
\`; } } " `; exports[`Lit > jsx > Typescript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"render-content\\") export default class RenderContent extends LitElement { createRenderRoot() { return this; } @property() content: any; @property() customComponents: any; render() { return html\`
setting context
\`; } } " `; exports[`Lit > jsx > Typescript Test > defaultProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; @property() onClick: any; @property() buttonText: any; render() { return html\`
\${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; @property() onClick: any; render() { return html\`
\${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { name: string; }; @customElement(\\"component-with-types\\") export default class ComponentWithTypes extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello \${this.name || DEFAULT_VALUES.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"event-input-and-change\\") export default class EventInputAndChange extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; render() { return html\`
(this.name = event.target.value)} @change=\${(event) => (this.name = event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > eventProps 1`] = ` "import { EventProps, EventState } from \\"./event-props.type\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"event-props-component\\") export default class EventPropsComponent extends LitElement { createRenderRoot() { return this; } @property() onGetVoid: any; @property() onEnter: any; @property() onPass: any; handleClick() { if (this.onGetVoid) { this.onGetVoid(); } if (this.onEnter) { console.log(this.onEnter()); } if (this.onPass) { this.onPass(\\"test\\"); } } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > expressionState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() componentRef: any; @state() refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; render() { return html\`
\${this.refToUse}
\`; } } " `; exports[`Lit > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"figma-button\\") export default class FigmaButton extends LitElement { createRenderRoot() { return this; } @property() icon: any; @property() interactiveState: any; @property() width: any; @property() size: any; @property() label: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > functionProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface MyBasicComponentProps { id: string; } @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`

x} .f1=\${(x) => x} .f2=\${( x ) => {}} .f3=\${function () { return x; }} .f4=\${function (x) { return x; }} .f5=\${function (x) { return; }} .f6=\${function () { return; }} .f7=\${(a, b, c) => a + b + c} >

\`; } } " `; exports[`Lit > jsx > Typescript Test > getterState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ButtonProps { foo: string; } @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() foo: any; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } render() { return html\`

\${this.foo2}

\${this.bar}

\${this.baz(1)}

\`; } } " `; exports[`Lit > jsx > Typescript Test > import types 1`] = ` "import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"render-content\\") export default class RenderContent extends LitElement { createRenderRoot() { return this; } @property() renderContentProps: any; getRenderContentProps(block, index) { return { block: block, index: index, }; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > layerName 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-layer-name-component\\") export default class MyLayerNameComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"multiple-on-update\\") export default class MultipleOnUpdate extends LitElement { createRenderRoot() { return this; } updated() { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"multiple-on-update-with-deps\\") export default class MultipleOnUpdateWithDeps extends LitElement { createRenderRoot() { return this; } @state() a = \\"a\\"; @state() b = \\"b\\"; @state() c = \\"c\\"; @state() d = \\"d\\"; updated() { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > multipleSpreads 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @state() attrs = { hello: \\"world\\", }; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > nestedShow 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; interface Props { conditionA: boolean; conditionB: boolean; } @customElement(\\"nested-show\\") export default class NestedShow extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; @property() conditionB: any; render() { return html\` \${ this.conditionA ? html\`\${ !this.conditionB ? html\`
if condition A and condition B
\` : html\`
else-condition-B
\` }\` : html\`
else-condition-A
\` } \`; } } " `; exports[`Lit > jsx > Typescript Test > nestedStyles 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"nested-styles\\") export default class NestedStyles extends LitElement { createRenderRoot() { return this; } render() { return html\`
Hello world
\`; } } " `; exports[`Lit > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } @customElement(\\"my-normalized-layer-names-component\\") export default class MyNormalizedLayerNamesComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
\`; } } " `; exports[`Lit > jsx > Typescript Test > onEvent 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-embed\\") export default class Embed extends LitElement { createRenderRoot() { return this; } @query('[ref=\\"elem\\"]') elem!: HTMLElement; foo(event) { console.log(\\"test2\\"); } connectedCallback() { this.elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); } render() { return html\`
Test
\`; } } " `; exports[`Lit > jsx > Typescript Test > onInit & onMount 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-init\\") export default class OnInit extends LitElement { createRenderRoot() { return this; } connectedCallback() { console.log(\\"onMount\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > onInit 1`] = ` "export const defaultValues = { name: \\"PatrickJS\\", }; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { name: string; }; @customElement(\\"on-init\\") export default class OnInit extends LitElement { createRenderRoot() { return this; } @property() name: any; @state() name = \\"\\"; render() { return html\`
Default name defined by parent \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > onInitPlain 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-init-plain\\") export default class OnInitPlain extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > onMount 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-comp\\") export default class Comp extends LitElement { createRenderRoot() { return this; } connectedCallback() { console.log(\\"Runs on mount\\"); } disconnectedCallback() { console.log(\\"Runs on unMount\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > onMountMultiple 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-comp\\") export default class Comp extends LitElement { createRenderRoot() { return this; } connectedCallback() { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > onUpdate 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-update\\") export default class OnUpdate extends LitElement { createRenderRoot() { return this; } updated() { console.log(\\"Runs on every update/rerender\\"); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { size: string; }; @customElement(\\"on-update-with-deps\\") export default class OnUpdateWithDeps extends LitElement { createRenderRoot() { return this; } @property() size: any; @state() a = \\"a\\"; @state() b = \\"b\\"; updated() { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > preserveTyping 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid! \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > propsDestructure 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { children: any; type: string; }; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() children: any; @property() type: any; @state() name = \\"Decadef20\\"; render() { return html\`
\${this.children} \${this.type} Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > jsx > Typescript Test > propsInterface 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; interface Person { name: string; age?: number; } @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid! \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > propsType 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Person = { name: string; age?: number; }; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello! I can run in React, Vue, Solid, or Liquid! \${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"on-update\\") export default class OnUpdate extends LitElement { createRenderRoot() { return this; } foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; updated() { this.foo({ someOption: this.bar, }); } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import \\"./block-styles.ts\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import \\"./render-component.ts\\"; import \\"./render-component.ts\\"; import \\"./render-repeated-block.ts\\"; import type { RepeatData } from \\"./types.js\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"render-block\\") export default class RenderBlock extends LitElement { createRenderRoot() { return this; } @property() block: any; @property() context: any; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } render() { return html\` \${ this.shouldWrap ? html\`\${ isEmptyHtmlElement(this.tag) ? html\`\` : null } \${ !isEmptyHtmlElement(this.tag) && this.repeatItemData ? html\`\${this.repeatItemData?.map( (data, index) => html\`\` )}\` : null } \${ !isEmptyHtmlElement(this.tag) && !this.repeatItemData ? html\` \${this.childrenWithoutParentComponent?.map( (child, index) => html\`\` )} \${this.childrenWithoutParentComponent?.map( (child, index) => html\`\` )}\` : null }\` : html\`\` } \`; } } " `; exports[`Lit > jsx > Typescript Test > renderContentExample 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import \\"@dummy/RenderBlocks.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; @customElement(\\"render-content\\") export default class RenderContent extends LitElement { createRenderRoot() { return this; } @property() customComponents: any; @property() content: any; connectedCallback() { sendComponentsToVisualEditor(this.customComponents); } updated() { dispatchNewContentToVisualEditor(this.content); } render() { return html\`
trackClick(this.content.id)} >
\`; } } " `; exports[`Lit > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-button\\") export default class Button extends LitElement { createRenderRoot() { return this; } @property() link: any; @property() attributes: any; @property() openLinkInNewTab: any; @property() text: any; render() { return html\` \${ this.link ? html\`\${ this.text }\` : null } \${ !this.link ? html\`\` : null } \`; } } " `; exports[`Lit > jsx > Typescript Test > rootShow 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export interface RenderStylesProps { foo: string; } @customElement(\\"render-styles\\") export default class RenderStyles extends LitElement { createRenderRoot() { return this; } @property() foo: any; render() { return html\` \${ this.foo === \\"bar\\" ? html\`
Bar
\` : html\`
Foo
\` } \`; } } " `; exports[`Lit > jsx > Typescript Test > self-referencing component 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
\${this.name} \${ this.name === \\"Batman\\" ? html\`\` : null }
\`; } } " `; exports[`Lit > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() name: any; @property() children: any; render() { return html\`
\${this.name} \${this.children} \${ this.name === \\"Batman\\" ? html\`
Wayne
\` : null }
\`; } } " `; exports[`Lit > jsx > Typescript Test > setState 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"set-state\\") export default class SetState extends LitElement { createRenderRoot() { return this; } @state() n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > showExpressions 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; interface Props { conditionA: boolean; conditionB: boolean; } @customElement(\\"show-with-other-values\\") export default class ShowWithOtherValues extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; @property() conditionB: any; @property() conditionC: any; render() { return html\`
\${this.conditionA ? html\`Content0\` : html\`ContentA\`} \${ this.conditionA ? html\`ContentA\` : null } \${this.conditionA ? html\`\` : html\`ContentA\`} \${this.conditionA ? html\`ContentB\` : html\`\${undefined}\`} \${ this.conditionA ? html\`\${undefined}\` : html\`ContentB\` } \${this.conditionA ? html\`ContentC\` : null} \${ this.conditionA ? html\`\` : html\`ContentC\` } \${this.conditionA ? html\`ContentD\` : null} \${ this.conditionA ? html\`\` : html\`ContentD\` } \${this.conditionA ? html\`ContentE\` : html\`hello\`} \${ this.conditionA ? html\`hello\` : html\`ContentE\` } \${this.conditionA ? html\`ContentF\` : html\`123\`} \${this.conditionA ? html\`123\` : html\`ContentF\`} \${ this.conditionA === \\"Default\\" ? html\`4mb\` : html\`\${this.conditionB === \\"Complete\\" ? html\`20mb\` : html\`9mb\`}\` } \${ this.conditionA === \\"Default\\" ? html\`\${this.conditionB === \\"Complete\\" ? html\`20mb\` : html\`9mb\`}\` : html\`4mb\` } \${ this.conditionA === \\"Default\\" ? html\`\${ this.conditionB === \\"Complete\\" ? html\`
complete
\` : html\`9mb\` }\` : html\`\${ this.conditionC === \\"Complete\\" ? html\`dff\` : html\`
complete else
\` }\` }
\`; } } " `; exports[`Lit > jsx > Typescript Test > showWithFor 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; interface Props { conditionA: boolean; items: string[]; } @customElement(\\"nested-show\\") export default class NestedShow extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; @property() items: any; render() { return html\` \${ this.conditionA ? html\`\${this.items?.map( (item, idx) => html\`
\${item}
\` )}\` : html\`
else-condition-A
\` } \`; } } " `; exports[`Lit > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; interface Props { conditionA: boolean; } @customElement(\\"show-with-other-values\\") export default class ShowWithOtherValues extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; render() { return html\`
\${this.conditionA ? html\` ContentA \` : null} \${ this.conditionA ? html\` ContentB \` : html\`\${undefined}\` } \${this.conditionA ? html\` ContentC \` : null} \${this.conditionA ? html\` ContentD \` : null} \${ this.conditionA ? html\` ContentE \` : html\`hello\` } \${this.conditionA ? html\` ContentF \` : html\`123\`}
\`; } } " `; exports[`Lit > jsx > Typescript Test > showWithRootText 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; interface Props { conditionA: boolean; } @customElement(\\"show-root-text\\") export default class ShowRootText extends LitElement { createRenderRoot() { return this; } @property() conditionA: any; render() { return html\` \${ this.conditionA ? html\` ContentA \` : html\`
else-condition-A
\` } \`; } } " `; exports[`Lit > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() id: any; @property() foo: any; updated() { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } render() { return html\`
\${this.id} \${this.foo.bar.baz}
\`; } } " `; exports[`Lit > jsx > Typescript Test > spreadAttrs 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } @property() nested: any; render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > spreadProps 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; const spread = (properties) => directive((part) => { for (const property in properties) { const value = properties[attr]; part.element[property] = value; } }); @customElement(\\"my-basic-component\\") export default class MyBasicComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > store-async-function 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"string-literal-store\\") export default class StringLiteralStore extends LitElement { createRenderRoot() { return this; } arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > string-literal-store 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"string-literal-store\\") export default class StringLiteralStore extends LitElement { createRenderRoot() { return this; } @state() foo = 123; render() { return html\`
\${this.foo}
\`; } } " `; exports[`Lit > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"style-prop-class-and-css\\") export default class StylePropClassAndCss extends LitElement { createRenderRoot() { return this; } @property() attributes: any; render() { return html\`
\`; } } " `; exports[`Lit > jsx > Typescript Test > subComponent 1`] = ` "import \\"./foo-sub-component.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"sub-component\\") export default class SubComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > svgComponent 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"svg-component\\") export default class SvgComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > typeDependency 1`] = ` "import type { Foo } from \\"./foo-type\\"; import \\"./type-export.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; @customElement(\\"type-dependency\\") export default class TypeDependency extends LitElement { createRenderRoot() { return this; } @property() foo: any; render() { return html\`
\${this.foo}
\`; } } " `; exports[`Lit > jsx > Typescript Test > typeExternalProps 1`] = ` "import { FooProps } from \\"./foo-props\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"type-external-props\\") export default class TypeExternalProps extends LitElement { createRenderRoot() { return this; } @property() name: any; render() { return html\`
Hello \${this.name} !
\`; } } " `; exports[`Lit > jsx > Typescript Test > typeExternalStore 1`] = ` "import { FooStore } from \\"./foo-store\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"type-external-store\\") export default class TypeExternalStore extends LitElement { createRenderRoot() { return this; } @state() _name = \\"test\\"; render() { return html\`
Hello \${this._name} !
\`; } } " `; exports[`Lit > jsx > Typescript Test > typeGetterStore 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; @customElement(\\"type-getter-store\\") export default class TypeGetterStore extends LitElement { createRenderRoot() { return this; } @state() name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } render() { return html\`
Hello \${this.name} !
\`; } } " `; exports[`Lit > jsx > Typescript Test > use-style 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > use-style-and-css 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > jsx > Typescript Test > useTarget 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"use-target-component\\") export default class UseTargetComponent extends LitElement { createRenderRoot() { return this; } @state() lastName = \\"bar\\"; @state() foo = \\"bar\\"; get name() { const prefix = \\"li\\"; return prefix + \\"foo\\"; } connectedCallback() { console.log(this.foo); this.foo = \\"bar\\"; } render() { return html\`
\${this.name}
\`; } } " `; exports[`Lit > jsx > Typescript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-basic-web-component\\") export default class MyBasicWebComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` Slide 1 Slide 2 Slide 3 \`; } } " `; exports[`Lit > svelte > Javascript Test > basic 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; render() { return html\`
(this.name = event.target.value)} .value=\${ this.name } /> Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > svelte > Javascript Test > bindGroup 1`] = ` "import { LitElement, html, css } from 'lit'; import { customElement, property, state, query } from 'lit/decorators.js'; @customElement('my-component') export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() tortilla= \\"Plain\\" @state() fillings= [] render() { return html\`
this.tortilla = event.target.value} /> this.tortilla = event.target.value} /> this.tortilla = event.target.value} />

this.fillings = event.target.value} /> this.fillings = event.target.value} /> this.fillings = event.target.value} /> this.fillings = event.target.value} />

Tortilla: \${this.tortilla}

Fillings: \${this.fillings}

\` } }" `; exports[`Lit > svelte > Javascript Test > bindProperty 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() value = \\"hello\\"; render() { return html\` \`; } } " `; exports[`Lit > svelte > Javascript Test > classDirective 1`] = ` "import { LitElement, html, css } from 'lit'; import { customElement, property, state, query } from 'lit/decorators.js'; @customElement('my-component') export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() disabled: any @state() focus= true render() { return html\` \` } }" `; exports[`Lit > svelte > Javascript Test > context 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() activeTab = 0; render() { return html\`
\${this.activeTab}
\`; } } " `; exports[`Lit > svelte > Javascript Test > each 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() numbers = [\\"one\\", \\"two\\", \\"three\\"]; render() { return html\`
    \${this.numbers?.map( (num, index) => html\`
  • \${num}
  • \` )}
\`; } } " `; exports[`Lit > svelte > Javascript Test > eventHandlers 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } log = function log(msg = \\"hello\\") { console.log(msg); }; render() { return html\`
\`; } } " `; exports[`Lit > svelte > Javascript Test > html 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() html = \\"bold\\"; render() { return html\`
\`; } } " `; exports[`Lit > svelte > Javascript Test > ifElse 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() show = true; toggle = function toggle() { this.show = !this.show; }; render() { return html\` \${ this.show ? html\`\` : html\`\` } \`; } } " `; exports[`Lit > svelte > Javascript Test > imports 1`] = ` "import \\"./Button.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() disabled = false; render() { return html\`
\`; } } " `; exports[`Lit > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } connectedCallback() { console.log(\\"onMount\\"); } disconnectedCallback() { console.log(\\"onDestroy\\"); } updated() { console.log(\\"onAfterUpdate\\"); } render() { return html\`
\`; } } " `; exports[`Lit > svelte > Javascript Test > reactive 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } render() { return html\`
Lowercase: \${this.lowercaseName}
\`; } } " `; exports[`Lit > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() a = 2; @state() b = 5; @state() result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; updated() { this.calculateResult(this.a, this.b); } render() { return html\`
(this.a = event.target.value)} .value=\${this.a} /> (this.b = event.target.value)} .value=\${this.b} /> Result: \${this.result}
\`; } } " `; exports[`Lit > svelte > Javascript Test > slots 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
default
default
\`; } } " `; exports[`Lit > svelte > Javascript Test > style 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > svelte > Javascript Test > textExpressions 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() a = 5; @state() b = 12; render() { return html\`
normal: \${this.a + this.b}
conditional \${this.a > 2 ? \\"hello\\" : \\"bye\\"}
\`; } } " `; exports[`Lit > svelte > Typescript Test > basic 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; render() { return html\`
(this.name = event.target.value)} .value=\${ this.name } /> Hello! I can run in React, Vue, Solid, or Liquid!
\`; } } " `; exports[`Lit > svelte > Typescript Test > bindGroup 1`] = ` "import { LitElement, html, css } from 'lit'; import { customElement, property, state, query } from 'lit/decorators.js'; @customElement('my-component') export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() tortilla= \\"Plain\\" @state() fillings= [] render() { return html\`
this.tortilla = event.target.value} /> this.tortilla = event.target.value} /> this.tortilla = event.target.value} />

this.fillings = event.target.value} /> this.fillings = event.target.value} /> this.fillings = event.target.value} /> this.fillings = event.target.value} />

Tortilla: \${this.tortilla}

Fillings: \${this.fillings}

\` } }" `; exports[`Lit > svelte > Typescript Test > bindProperty 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() value = \\"hello\\"; render() { return html\` \`; } } " `; exports[`Lit > svelte > Typescript Test > classDirective 1`] = ` "import { LitElement, html, css } from 'lit'; import { customElement, property, state, query } from 'lit/decorators.js'; @customElement('my-component') export default class MyComponent extends LitElement { createRenderRoot() { return this; } @property() disabled: any @state() focus= true render() { return html\` \` } }" `; exports[`Lit > svelte > Typescript Test > context 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() activeTab = 0; render() { return html\`
\${this.activeTab}
\`; } } " `; exports[`Lit > svelte > Typescript Test > each 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() numbers = [\\"one\\", \\"two\\", \\"three\\"]; render() { return html\`
    \${this.numbers?.map( (num, index) => html\`
  • \${num}
  • \` )}
\`; } } " `; exports[`Lit > svelte > Typescript Test > eventHandlers 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } log = function log(msg = \\"hello\\") { console.log(msg); }; render() { return html\`
\`; } } " `; exports[`Lit > svelte > Typescript Test > html 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() html = \\"bold\\"; render() { return html\`
\`; } } " `; exports[`Lit > svelte > Typescript Test > ifElse 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() show = true; toggle = function toggle() { this.show = !this.show; }; render() { return html\` \${ this.show ? html\`\` : html\`\` } \`; } } " `; exports[`Lit > svelte > Typescript Test > imports 1`] = ` "import \\"./Button.ts\\"; import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() disabled = false; render() { return html\`
\`; } } " `; exports[`Lit > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } connectedCallback() { console.log(\\"onMount\\"); } disconnectedCallback() { console.log(\\"onDestroy\\"); } updated() { console.log(\\"onAfterUpdate\\"); } render() { return html\`
\`; } } " `; exports[`Lit > svelte > Typescript Test > reactive 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } render() { return html\`
Lowercase: \${this.lowercaseName}
\`; } } " `; exports[`Lit > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() a = 2; @state() b = 5; @state() result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; updated() { this.calculateResult(this.a, this.b); } render() { return html\`
(this.a = event.target.value)} .value=\${this.a} /> (this.b = event.target.value)} .value=\${this.b} /> Result: \${this.result}
\`; } } " `; exports[`Lit > svelte > Typescript Test > slots 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\`
default
default
\`; } } " `; exports[`Lit > svelte > Typescript Test > style 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } render() { return html\` \`; } } " `; exports[`Lit > svelte > Typescript Test > textExpressions 1`] = ` "import { LitElement, html, css } from \\"lit\\"; import { customElement, property, state, query } from \\"lit/decorators.js\\"; @customElement(\\"my-component\\") export default class MyComponent extends LitElement { createRenderRoot() { return this; } @state() a = 5; @state() b = 12; render() { return html\`
normal: \${this.a + this.b}
conditional \${this.a > 2 ? \\"hello\\" : \\"bye\\"}
\`; } } " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/marko.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Marko > formatting 1`] = ` "
Hello World { console.log('hello', "world") })\\" on-input=\\"(event => this.state.name = event.target.value)\\" /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > formatting 2`] = ` "
Hello World { console.log('hello', \\"world\\") }) on-input=(event => this.state.name = event.target.value) /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > formatting 3`] = ` "
Hello World { console.log('hello', \\"world\\") }) on-input=(event => this.state.name = event.target.value) /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > Advanced 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } }
\${i} : \${person}
\${person}
\${ee}

\${index}

\${person} \${index} \${person} \${count} \${person} \${i} \${person} \${index}
" `; exports[`Marko > jsx > Javascript Test > AdvancedRef 1`] = ` "class { onBlur = function onBlur() { // Maintain focus this.inputRef.focus(); }; lowerCaseName = function lowerCaseName() { return this.state.name.toLowerCase(); }; onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get inputRef() { return this.getEl(\\"inputRef\\"); } get inputNoArgRef() { return this.getEl(\\"inputNoArgRef\\"); } onRender() { console.log(\\"Received an update\\"); } } style { .input-a4850acc { color: red; } }
component.onBlur()) on-input((event) => state.name = event.target.value) /> Hello \${component.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Marko > jsx > Javascript Test > Basic 1`] = ` "export const DEFAULT_VALUES = { name: \\"Steve\\", }; class { underscore_fn_name() { return \\"bar\\"; } onCreate() { this.state = { name: \\"Steve\\", age: 1, sports: [\\"\\"] }; } } style { .div-36710884 { padding: 10px; } }
state.name = myEvent.target.value) /> Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Marko > jsx > Javascript Test > Basic 2`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } }
{ state.name = event.target.value + ' and ' + person; }) /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > Basic Context 1`] = ` "import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; class { onChange = function onChange() { const change = myService.method(\\"change\\"); console.log(change); }; onCreate() { this.state = { name: \\"PatrickJS\\" }; } onMount() { const bye = myService.method(\\"hi\\"); console.log(bye); } }
\${myService.method('hello') + state.name} Hello! I can run in React, Vue, Solid, or Liquid! component.onChange()) />
" `; exports[`Marko > jsx > Javascript Test > Basic OnMount Update 1`] = ` "class { onCreate(input) { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } onMount() { this.state.name = \\"PatrickJS onMount\\" + this.input.bye; } }
Hello \${state.name}
" `; exports[`Marko > jsx > Javascript Test > Basic Outputs 1`] = ` "class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } onMount() { this.input.onMessageChange(this.state.name); this.input.onEvent(this.input.message); } }
" `; exports[`Marko > jsx > Javascript Test > Basic Outputs Meta 1`] = ` " /** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } onMount() { this.input.onMessageChange(this.state.name); this.input.onEvent(this.input.message); } }
" `; exports[`Marko > jsx > Javascript Test > BasicAttribute 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; class {}
\${input.children} \${input.type}
" `; exports[`Marko > jsx > Javascript Test > BasicChildComponent 1`] = ` "import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; class { log = function log(message) { console.log(message); }; onCreate() { this.state = { name: \\"Steve\\", dev: \\"PatrickJS\\" }; } }
state.name = name) on-event((event) => component.log('Test')) >
" `; exports[`Marko > jsx > Javascript Test > BasicFor 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } onMount() { console.log(\\"onMount code\\"); } }
{ state.name = event.target.value + ' and ' + person; }) /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > BasicRef 1`] = ` "class { onBlur = function onBlur() { // Maintain focus this.inputRef?.focus(); }; lowerCaseName = function lowerCaseName() { return this.state.name.toLowerCase(); }; onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get inputRef() { return this.getEl(\\"inputRef\\"); } get inputNoArgRef() { return this.getEl(\\"inputNoArgRef\\"); } } style { .input-6a578c15 { color: red; } }
component.onBlur()) on-input((event) => state.name = event.target.value) /> Hello \${component.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Marko > jsx > Javascript Test > BasicRefAssignment 1`] = ` "class { handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this.holdValueRef); this.holdValueRef = this.holdValueRef + \\"JS\\"; }; }
" `; exports[`Marko > jsx > Javascript Test > BasicRefPrevious 1`] = ` "export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } class { onCreate() { this.state = { count: 0 }; } onRender() { this.prevCount = this.state.count; } }

Now: \${state.count} , before: \${this.prevCount}

" `; exports[`Marko > jsx > Javascript Test > Button 1`] = ` "class {}
\${input.text}
" `; exports[`Marko > jsx > Javascript Test > Columns 1`] = ` "class { getColumns() { return this.input.columns || []; } getGutterSize() { return typeof this.input.space === \\"number\\" ? this.input.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } style { .div-2411fb2a { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div-2411fb2a { flex-direction: row; } } @media (max-width: 639px) { .div-2411fb2a { flex-direction: row-reverse; } } .div-2411fb2a-2 { flex-grow: 1; } }
\${column.content} \${index}
" `; exports[`Marko > jsx > Javascript Test > ContentSlotHtml 1`] = ` "class {}

" `; exports[`Marko > jsx > Javascript Test > ContentSlotJSX 1`] = ` "class { get cls() { return this.input.slotContent && this.input.children ? \`\${this.state.name}-content\` : \\"\\"; } show() { this.input.slotContent ? 1 : \\"\\"; } onCreate(input) { this.state = { name: \\"king\\", showContent: false }; } }
component.show()) class=(component.cls) > \${input.content}

\${input.children}
" `; exports[`Marko > jsx > Javascript Test > CustomCode 1`] = ` "class { findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.state.scriptsInserted.includes(script.src)) { continue; } this.state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.state.scriptsRun.includes(script.innerText)) { continue; } try { this.state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } onCreate(input) { this.state = { scriptsInserted: [], scriptsRun: [] }; } get elem() { return this.getEl(\\"elem\\"); } onMount() { this.findAndRunScripts(); } }
$!{input.code}
" `; exports[`Marko > jsx > Javascript Test > Embed 1`] = ` "class { findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.state.scriptsInserted.includes(script.src)) { continue; } this.state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.state.scriptsRun.includes(script.innerText)) { continue; } try { this.state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } onCreate(input) { this.state = { scriptsInserted: [], scriptsRun: [] }; } get elem() { return this.getEl(\\"elem\\"); } onMount() { this.findAndRunScripts(); } }
$!{input.code}
" `; exports[`Marko > jsx > Javascript Test > Form 1`] = ` "import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; class { get submissionState() { return ( (Builder.isEditing && this.input.previewState) || this.state.formState ); } onSubmit(event) { const sendWithJs = this.input.sendWithJs || this.input.sendSubmissionsTo === \\"email\\"; if (this.input.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.input.action || this.input.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.input.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.input.contentType; if (this.input.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.input.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef) { this.formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.state.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.input.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.input.name || \\"\\")}\`; fetch( this.input.sendSubmissionsTo === \\"email\\" ? formUrl : this.input.action, /* TODO: throw error if no action URL */ { body, headers, method: this.input.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.input.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.input.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.state.formErrorMessage = message; } } this.state.responseData = body; this.state.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.input.resetFormOnSubmit !== false) { this.formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.input.successUrl) { if (this.formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: this.input.successUrl, }, }); this.formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.input.successUrl; } } else { location.href = this.input.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.state.responseData = err; this.state.formState = \\"error\\"; } ); } } onCreate(input) { this.state = { formState: \\"unsubmitted\\", responseData: null, formErrorMessage: \\"\\", }; } get formRef() { return this.getEl(\\"formRef\\"); } } style { .pre-b80a56e2 { padding: 10px; color: red; text-align: center; } }
component.onSubmit(event)) ...(props.attributes) >
\${JSON.stringify(state.responseData, null, 2)}
" `; exports[`Marko > jsx > Javascript Test > Image 1`] = ` "class { setLoaded() { this.state.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.input.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; onCreate(input) { this.state = { scrollListener: null, imageLoaded: false, load: false }; } get pictureRef() { return this.getEl(\\"pictureRef\\"); } onMount() { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef) { const rect = this.pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.state.load = true; this.state.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.state.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } onDestroy() { if (this.state.scrollListener) { window.removeEventListener(\\"scroll\\", this.state.scrollListener); } } } style { .img-3747ab04 { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } }
(input.altText) component.setLoaded()) srcset=(input.srcset) sizes=(input.sizes) /> \${input.children}
" `; exports[`Marko > jsx > Javascript Test > Image State 1`] = ` "class { onCreate() { this.state = { canShow: true, images: [\\"http://example.com/qwik.png\\"] }; } }
" `; exports[`Marko > jsx > Javascript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class {} (input.altText)" `; exports[`Marko > jsx > Javascript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class {} input.onChange?.(event.target.value)) />" `; exports[`Marko > jsx > Javascript Test > InputParent 1`] = ` "import FormInputComponent from \\"./input.raw\\"; class { handleChange(value) { console.log(value); } } component.handleChange(value)) >" `; exports[`Marko > jsx > Javascript Test > NestedStore 1`] = ` "class { onCreate() { this.state = { _id: \\"abc\\", _messageId: this.state._id + \\"-message\\" }; } }
Test

Message

" `; exports[`Marko > jsx > Javascript Test > RawText 1`] = ` "class {} $!{input.text || ''}" `; exports[`Marko > jsx > Javascript Test > Section 1`] = ` "class {}
\${input.children}
" `; exports[`Marko > jsx > Javascript Test > Section 2`] = ` "class { onCreate(input) { this.state = { max: 42, items: [42] }; } }
\${input.children}
" `; exports[`Marko > jsx > Javascript Test > Select 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class {} " `; exports[`Marko > jsx > Javascript Test > SlotDefault 1`] = ` "class {}
Default content
" `; exports[`Marko > jsx > Javascript Test > SlotHtml 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; class {}
Hello
)> " `; exports[`Marko > jsx > Javascript Test > SlotJsx 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; class {}
Hello
)>" `; exports[`Marko > jsx > Javascript Test > SlotNamed 1`] = ` "class {}
Default left Default Child
" `; exports[`Marko > jsx > Javascript Test > Stamped.io 1`] = ` "import { kebabCase, snakeCase } from \\"lodash\\"; class { kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } onCreate(input) { this.state = { reviews: [], name: \\"test\\", showReviewPrompt: false }; } onMount() { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.input.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.input.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.state.reviews = data.data; }); } } style { .input-4b8e7e0e { display: block; } .textarea-4b8e7e0e { display: block; } .button-4b8e7e0e { display: block; } .review-4b8e7e0e { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img-4b8e7e0e { height: 30px; width: 30px; margin-right: 10px; } }
N: \${index}
\${review.author}
\${review.reviewMessage}
" `; exports[`Marko > jsx > Javascript Test > StoreComment 1`] = ` "class { bar() {} onCreate() { this.state = { foo: true }; } } \${state.foo}" `; exports[`Marko > jsx > Javascript Test > StoreShadowVars 1`] = ` "class { foo(errors) { return errors; } onCreate() { this.state = { errors: {} }; } } \${component.foo(state.errors)}" `; exports[`Marko > jsx > Javascript Test > StoreWithState 1`] = ` "class { bar() { return this.state.foo; } onCreate() { this.state = { foo: false }; } } \${component.bar()}" `; exports[`Marko > jsx > Javascript Test > Submit 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > Text 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class { onCreate(input) { this.state = { name: \\"Decadef20\\" }; } }
$!{input.text || input.content || state.name || '

my name

'}
" `; exports[`Marko > jsx > Javascript Test > Textarea 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "class { _do(id) { this.state._active = !!id; if (this.input.onChange) { this.input.onChange(this.state._active); } } onCreate(input) { this.state = { _id: \\"abc\\", _active: false }; } onRender() { if (this._do) { this._do(this.state._id); } } }
Test
" `; exports[`Marko > jsx > Javascript Test > Video 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "class { setName(value) { this.state.name = value; } updateNameWithArrowFn(value) { this.state.name = value; } onCreate() { this.state = { name: \\"steve\\" }; } }
Hello \${state.name}
" `; exports[`Marko > jsx > Javascript Test > basicForFragment 1`] = ` "class { onCreate() { this.state = { id: \\"xyz\\" }; } }
\${option}
\${option}
" `; exports[`Marko > jsx > Javascript Test > basicForNoTagReference 1`] = ` "class { get TagNameGetter() { return \\"span\\"; } onCreate(input) { this.state = { name: \\"VincentW\\", TagName: \\"div\\", tag: \\"span\\" }; } } Hello \${state.name} \${action.text} " `; exports[`Marko > jsx > Javascript Test > basicForwardRef 1`] = ` "class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get propsInputRef() { return this.getEl(\\"propsInputRef\\"); } } style { .input-24f3ca54 { color: red; } }
state.name = event.target.value) />
" `; exports[`Marko > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` " /** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get propsInputRef() { return this.getEl(\\"propsInputRef\\"); } } style { .input-bda1f37c { color: red; } }
state.name = event.target.value) />
" `; exports[`Marko > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\" }; } onRender() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.state.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } }
Hello! \${state.name}
" `; exports[`Marko > jsx > Javascript Test > basicRefAttributePassing 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ class { get buttonRef() { return this.getEl(\\"buttonRef\\"); } onMount() { console.log(\\"onMount\\"); } } " `; exports[`Marko > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ class { get buttonRef() { return this.getEl(\\"buttonRef\\"); } }
" `; exports[`Marko > jsx > Javascript Test > class + ClassName + css 1`] = ` "import MyComp from \\"./my-component.marko\\"; class {} style { .div-6ef0b03e { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > class + css 1`] = ` "class {} style { .div-defca3e2 { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > className + css 1`] = ` "class {} style { .div-defca3e2 { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > className 1`] = ` "class { onCreate() { this.state = { bindings: \\"a binding\\" }; } }
Without Binding
With binding
" `; exports[`Marko > jsx > Javascript Test > classState 1`] = ` "class { onCreate() { this.state = { classState: \\"testClassName\\", styleState: { color: \\"red\\", }, }; } } style { .div-0a9f895c { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > classnameProps 1`] = ` " /** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ class {}
\${input.children} \${input.type} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > complexMeta 1`] = ` " /** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ class {}
" `; exports[`Marko > jsx > Javascript Test > componentWithContext 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; class {} \${foo.value}" `; exports[`Marko > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; class {} \${foo.value}
other
" `; exports[`Marko > jsx > Javascript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; class {}
setting context
" `; exports[`Marko > jsx > Javascript Test > defaultProps 1`] = ` "class {}
\${input.text}
" `; exports[`Marko > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "class {}
\${input.text}
" `; exports[`Marko > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "const DEFAULT_VALUES = { name: \\"Sami\\", }; class {}
Hello \${input.name || DEFAULT_VALUES.name}
" `; exports[`Marko > jsx > Javascript Test > eventInputAndChange 1`] = ` "class { onCreate() { this.state = { name: \\"Steve\\" }; } } style { .input-4aba533e { color: red; } }
state.name = event.target.value) on-input((event) => state.name = event.target.value) /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > eventProps 1`] = ` "class { handleClick() { if (this.input.onGetVoid) { this.input.onGetVoid(); } if (this.input.onEnter) { console.log(this.input.onEnter()); } if (this.input.onPass) { this.input.onPass(\\"test\\"); } } } " `; exports[`Marko > jsx > Javascript Test > expressionState 1`] = ` "class { onCreate(input) { this.state = { refToUse: !(input.componentRef instanceof Function) ? input.componentRef : null, }; } }
\${state.refToUse}
" `; exports[`Marko > jsx > Javascript Test > figmaMeta 1`] = ` " /** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ class {} " `; exports[`Marko > jsx > Javascript Test > functionProps 1`] = ` "class {}

x) f1=(x => x) f2=(x => {}) f3=(function () { return x; }) f4=(function (x) { return x; }) f5=(function (x) { return; }) f6=(function () { return; }) f7=((a, b, c) => a + b + c) >

" `; exports[`Marko > jsx > Javascript Test > getterState 1`] = ` "class { get foo2() { return this.input.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } }

\${component.foo2}

\${component.bar}

\${component.baz(1)}

" `; exports[`Marko > jsx > Javascript Test > import types 1`] = ` "import RenderBlock from \\"./builder-render-block.raw\\"; class { getRenderContentProps(block, index) { return { block: block, index: index, }; } } " `; exports[`Marko > jsx > Javascript Test > layerName 1`] = ` "class {} style { .layer-name-27ceea4e { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > multipleOnUpdate 1`] = ` "class { onRender() { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } }
" `; exports[`Marko > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "class { onCreate() { this.state = { a: \\"a\\", b: \\"b\\", c: \\"c\\", d: \\"d\\" }; } onRender() { console.log(\\"Runs when a or b changes\\", this.state.a, this.state.b); if (this.state.a === \\"a\\") { this.state.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.state.c, this.state.d); if (this.state.a === \\"a\\") { this.state.a = \\"b\\"; } } }
" `; exports[`Marko > jsx > Javascript Test > multipleSpreads 1`] = ` "class { onCreate() { this.state = { attrs: { hello: \\"world\\", }, }; } } " `; exports[`Marko > jsx > Javascript Test > nestedShow 1`] = ` "class {}
if condition A and condition B
else-condition-B
else-condition-A
" `; exports[`Marko > jsx > Javascript Test > nestedStyles 1`] = ` "class {} style { .div-7671878a { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div-7671878a { display: block; } } .div-7671878a:hover { display: flex; } .div-7671878a:active { display: inline; } .div-7671878a .nested-selector { display: grid; } .div-7671878a .nested-selector:hover { display: block; } .div-7671878a.nested-selector:active { display: inline-block; } }
Hello world
" `; exports[`Marko > jsx > Javascript Test > normalizeLayerNames 1`] = ` "class {} style { .css-0-31098cf6 { margin: 10px; } .css-123-31098cf6 { padding: 10px; } .name-123-31098cf6 { border: 1px solid; } .name-31098cf6 { color: red; } .name-789-31098cf6 { background: blue; } .div-31098cf6 { background: blue; } }
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Marko > jsx > Javascript Test > onEvent 1`] = ` "class { foo(event) { console.log(\\"test2\\"); } get elem() { return this.getEl(\\"elem\\"); } onMount() { this.elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); } }
Test
" `; exports[`Marko > jsx > Javascript Test > onInit & onMount 1`] = ` "class { onMount() { console.log(\\"onMount\\"); } }
" `; exports[`Marko > jsx > Javascript Test > onInit 1`] = ` "export const defaultValues = { name: \\"PatrickJS\\", }; class { onCreate(input) { this.state = { name: \\"\\" }; } }
Default name defined by parent \${state.name}
" `; exports[`Marko > jsx > Javascript Test > onInitPlain 1`] = ` "class {}
" `; exports[`Marko > jsx > Javascript Test > onMount 1`] = ` "class { onMount() { console.log(\\"Runs on mount\\"); } onDestroy() { console.log(\\"Runs on unMount\\"); } }
" `; exports[`Marko > jsx > Javascript Test > onMountMultiple 1`] = ` "class { onMount() { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } }
" `; exports[`Marko > jsx > Javascript Test > onUpdate 1`] = ` "class { onRender() { console.log(\\"Runs on every update/rerender\\"); } }
" `; exports[`Marko > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "class { onCreate(input) { this.state = { a: \\"a\\", b: \\"b\\" }; } onRender() { console.log( \\"Runs when a, b or size changes\\", this.state.a, this.state.b, this.input.size ); } }
" `; exports[`Marko > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} class {}
" `; exports[`Marko > jsx > Javascript Test > preserveTyping 1`] = ` "class {}
Hello! I can run in React, Vue, Solid, or Liquid! \${input.name}
" `; exports[`Marko > jsx > Javascript Test > propsDestructure 1`] = ` "class { onCreate(input) { this.state = { name: \\"Decadef20\\" }; } }
\${input.children} \${input.type} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Javascript Test > propsInterface 1`] = ` "class {}
Hello! I can run in React, Vue, Solid, or Liquid! \${input.name}
" `; exports[`Marko > jsx > Javascript Test > propsType 1`] = ` "class {}
Hello! I can run in React, Vue, Solid, or Liquid! \${input.name}
" `; exports[`Marko > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "class { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; onRender() { this.foo({ someOption: this.bar, }); } }
" `; exports[`Marko > jsx > Javascript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles.marko\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component.marko\\"; import RenderRepeatedBlock from \\"./render-repeated-block.marko\\"; class { get component() { const componentName = getProcessedBlock({ block: this.input.block, state: this.input.context.state, context: this.input.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.input.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.input.block : getProcessedBlock({ block: this.input.block, state: this.input.context.state, context: this.input.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.input.context.state, context: this.input.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.input.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.input.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.input.context.state, context: this.input.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.input.context, state: { ...this.input.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.input.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.input.context.apiKey, state: this.input.context.state, content: this.input.context.content, context: this.input.context.context, registeredComponents: this.input.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } } " `; exports[`Marko > jsx > Javascript Test > renderContentExample 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks.marko\\"; class { onMount() { sendComponentsToVisualEditor(this.input.customComponents); } onRender() { dispatchNewContentToVisualEditor(this.input.content); } } style { .div-550150cc { display: flex; flex-direction: columns; } }
trackClick(input.content.id))>
" `; exports[`Marko > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "class {} \${input.text} " `; exports[`Marko > jsx > Javascript Test > rootShow 1`] = ` "class {}
Bar
Foo
" `; exports[`Marko > jsx > Javascript Test > self-referencing component 1`] = ` "class {}
\${input.name}
" `; exports[`Marko > jsx > Javascript Test > self-referencing component with children 1`] = ` "class {}
\${input.name} \${input.children}
Wayne
" `; exports[`Marko > jsx > Javascript Test > setState 1`] = ` "class { someFn() { this.state.n[0] = \\"123\\"; } onCreate() { this.state = { n: [\\"123\\"] }; } }
" `; exports[`Marko > jsx > Javascript Test > showExpressions 1`] = ` "class {}
Content0 ContentA ContentA ContentA ContentB \${undefined} \${undefined} ContentB ContentC ContentC ContentD ContentD ContentE hello hello ContentE ContentF 123 123 ContentF 4mb 20mb 9mb 20mb 9mb 4mb
complete
9mb dff
complete else
" `; exports[`Marko > jsx > Javascript Test > showWithFor 1`] = ` "class {}
\${item}
else-condition-A
" `; exports[`Marko > jsx > Javascript Test > showWithOtherValues 1`] = ` "class {}
ContentA ContentB \${undefined} ContentC ContentD ContentE hello ContentF 123
" `; exports[`Marko > jsx > Javascript Test > showWithRootText 1`] = ` "class {} ContentA
else-condition-A
" `; exports[`Marko > jsx > Javascript Test > signalsOnUpdate 1`] = ` "class { onRender() { console.log(\\"props.id changed\\", this.input.id); console.log( \\"props.foo.value.bar.baz changed\\", this.input.foo.value.bar.baz ); } } style { .div-d239523c { padding: 10px; } }
\${input.id} \${input.foo.value.bar.baz}
" `; exports[`Marko > jsx > Javascript Test > spreadAttrs 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > spreadNestedProps 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > spreadProps 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > store-async-function 1`] = ` "class { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; }
" `; exports[`Marko > jsx > Javascript Test > string-literal-store 1`] = ` "class { onCreate() { this.state = { foo: 123 }; } }
\${state.foo}
" `; exports[`Marko > jsx > Javascript Test > string-literal-store-kebab 1`] = ` "class { onCreate() { this.state = { foo-bar: 123,} } }
\${component.'foo-bar'}
" `; exports[`Marko > jsx > Javascript Test > styleClassAndCss 1`] = ` "class {} style { .div-35e34a45 { display: flex; flex-direction: column; align-items: stretch; } }
" `; exports[`Marko > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "class {} style { .div-bee7e1a8 { display: flex; flex-direction: column; align-items: stretch; } }
" `; exports[`Marko > jsx > Javascript Test > subComponent 1`] = ` "import Foo from \\"./foo-sub-component.marko\\"; class {} " `; exports[`Marko > jsx > Javascript Test > svgComponent 1`] = ` "class {} " `; exports[`Marko > jsx > Javascript Test > typeDependency 1`] = ` "class {}
\${input.foo}
" `; exports[`Marko > jsx > Javascript Test > typeExternalProps 1`] = ` "class {}
Hello \${input.name} !
" `; exports[`Marko > jsx > Javascript Test > typeExternalStore 1`] = ` "class { onCreate() { this.state = { _name: \\"test\\" }; } }
Hello \${state._name} !
" `; exports[`Marko > jsx > Javascript Test > typeGetterStore 1`] = ` "class { getName() { if (this.state.name === \\"a\\") { return \\"b\\"; } return this.state.name; } get test() { return \\"test\\"; } onCreate() { this.state = { name: \\"test\\" }; } }
Hello \${state.name} !
" `; exports[`Marko > jsx > Javascript Test > use-style 1`] = ` "class {} style { button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } } " `; exports[`Marko > jsx > Javascript Test > use-style-and-css 1`] = ` "class {} style { button { font-size: 12px; outline: 1px solid black; } .button-49a5373c { background: blue; color: white; } } " `; exports[`Marko > jsx > Javascript Test > use-style-outside-component 1`] = ` "class {} style { button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } } " `; exports[`Marko > jsx > Javascript Test > useTarget 1`] = ` "class { get name() { const prefix = \\"m\\"; return prefix + \\"foo\\"; } onCreate() { this.state = { lastName: \\"bar\\", foo: \\"bar\\" }; } onMount() { console.log(this.state.foo); this.state.foo = \\"bar\\"; } }
\${component.name}
" `; exports[`Marko > jsx > Javascript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; class {} Slide 1 Slide 2 Slide 3" `; exports[`Marko > jsx > Remove Internal mitosis package 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\" }; } }
Hello \${state.name} ! I can run in React, Qwik, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > Advanced 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } }
\${i} : \${person}
\${person}
\${ee}

\${index}

\${person} \${index} \${person} \${count} \${person} \${i} \${person} \${index}
" `; exports[`Marko > jsx > Typescript Test > AdvancedRef 1`] = ` "class { onBlur = function onBlur() { // Maintain focus this.inputRef.focus(); }; lowerCaseName = function lowerCaseName() { return this.state.name.toLowerCase(); }; onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get inputRef() { return this.getEl(\\"inputRef\\"); } get inputNoArgRef() { return this.getEl(\\"inputNoArgRef\\"); } onRender() { console.log(\\"Received an update\\"); } } style { .input-616ee5d4 { color: red; } }
component.onBlur()) on-input((event) => state.name = event.target.value) /> Hello \${component.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Marko > jsx > Typescript Test > Basic 1`] = ` "export const DEFAULT_VALUES = { name: \\"Steve\\", }; class { underscore_fn_name() { return \\"bar\\"; } onCreate() { this.state = { name: \\"Steve\\", age: 1, sports: [\\"\\"] }; } } style { .div-22f58e48 { padding: 10px; } }
state.name = myEvent.target.value) /> Hello! I can run in React, Vue, Solid, or Liquid! >
" `; exports[`Marko > jsx > Typescript Test > Basic 2`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } }
{ state.name = event.target.value + ' and ' + person; }) /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > Basic Context 1`] = ` "import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; class { onChange = function onChange() { const change = myService.method(\\"change\\"); console.log(change); }; onCreate() { this.state = { name: \\"PatrickJS\\" }; } onMount() { const bye = myService.method(\\"hi\\"); console.log(bye); } }
\${myService.method('hello') + state.name} Hello! I can run in React, Vue, Solid, or Liquid! component.onChange()) />
" `; exports[`Marko > jsx > Typescript Test > Basic OnMount Update 1`] = ` "class { onCreate(input) { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } onMount() { this.state.name = \\"PatrickJS onMount\\" + this.input.bye; } }
Hello \${state.name}
" `; exports[`Marko > jsx > Typescript Test > Basic Outputs 1`] = ` "class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } onMount() { this.input.onMessageChange(this.state.name); this.input.onEvent(this.input.message); } }
" `; exports[`Marko > jsx > Typescript Test > Basic Outputs Meta 1`] = ` " /** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } onMount() { this.input.onMessageChange(this.state.name); this.input.onEvent(this.input.message); } }
" `; exports[`Marko > jsx > Typescript Test > BasicAttribute 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; class {}
\${input.children} \${input.type}
" `; exports[`Marko > jsx > Typescript Test > BasicChildComponent 1`] = ` "import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; class { log = function log(message: string) { console.log(message); }; onCreate() { this.state = { name: \\"Steve\\", dev: \\"PatrickJS\\" }; } }
state.name = name) on-event((event) => component.log('Test')) >
" `; exports[`Marko > jsx > Typescript Test > BasicFor 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }; } onMount() { console.log(\\"onMount code\\"); } }
{ state.name = event.target.value + ' and ' + person; }) /> Hello \${person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > BasicRef 1`] = ` "class { onBlur = function onBlur() { // Maintain focus this.inputRef?.focus(); }; lowerCaseName = function lowerCaseName() { return this.state.name.toLowerCase(); }; onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get inputRef() { return this.getEl(\\"inputRef\\"); } get inputNoArgRef() { return this.getEl(\\"inputNoArgRef\\"); } } style { .input-e2a52cdc { color: red; } }
component.onBlur()) on-input((event) => state.name = event.target.value) /> Hello \${component.lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component!
" `; exports[`Marko > jsx > Typescript Test > BasicRefAssignment 1`] = ` "class { handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this.holdValueRef); this.holdValueRef = this.holdValueRef + \\"JS\\"; }; }
" `; exports[`Marko > jsx > Typescript Test > BasicRefPrevious 1`] = ` "export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } class { onCreate() { this.state = { count: 0 }; } onRender() { this.prevCount = this.state.count; } }

Now: \${state.count} , before: \${this.prevCount}

" `; exports[`Marko > jsx > Typescript Test > Button 1`] = ` "class {}
\${input.text}
" `; exports[`Marko > jsx > Typescript Test > Columns 1`] = ` "class { getColumns() { return this.input.columns || []; } getGutterSize() { return typeof this.input.space === \\"number\\" ? this.input.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } } style { .div-7a1249a4 { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div-7a1249a4 { flex-direction: row; } } @media (max-width: 639px) { .div-7a1249a4 { flex-direction: row-reverse; } } .div-7a1249a4-2 { flex-grow: 1; } }
\${column.content} \${index}
" `; exports[`Marko > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; class {}

" `; exports[`Marko > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; class { get cls() { return this.input.slotContent && this.input.children ? \`\${this.state.name}-content\` : \\"\\"; } show() { this.input.slotContent ? 1 : \\"\\"; } onCreate(input) { this.state = { name: \\"king\\", showContent: false }; } }
component.show()) class=(component.cls) > \${input.content}

\${input.children}
" `; exports[`Marko > jsx > Typescript Test > CustomCode 1`] = ` "class { findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.state.scriptsInserted.includes(script.src)) { continue; } this.state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.state.scriptsRun.includes(script.innerText)) { continue; } try { this.state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } onCreate(input) { this.state = { scriptsInserted: [], scriptsRun: [] }; } get elem() { return this.getEl(\\"elem\\"); } onMount() { this.findAndRunScripts(); } }
$!{input.code}
" `; exports[`Marko > jsx > Typescript Test > Embed 1`] = ` "class { findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.state.scriptsInserted.includes(script.src)) { continue; } this.state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.state.scriptsRun.includes(script.innerText)) { continue; } try { this.state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } onCreate(input) { this.state = { scriptsInserted: [], scriptsRun: [] }; } get elem() { return this.getEl(\\"elem\\"); } onMount() { this.findAndRunScripts(); } }
$!{input.code}
" `; exports[`Marko > jsx > Typescript Test > Form 1`] = ` "import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; class { get submissionState() { return ( (Builder.isEditing && this.input.previewState) || this.state.formState ); } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.input.sendWithJs || this.input.sendSubmissionsTo === \\"email\\"; if (this.input.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.input.action || this.input.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.input.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.input.contentType; if (this.input.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.input.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef) { this.formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.state.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.input.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.input.name || \\"\\")}\`; fetch( this.input.sendSubmissionsTo === \\"email\\" ? formUrl : this.input.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.input.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.input.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.input.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.state.formErrorMessage = message; } } this.state.responseData = body; this.state.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.input.resetFormOnSubmit !== false) { this.formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.input.successUrl) { if (this.formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: this.input.successUrl, }, }); this.formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.input.successUrl; } } else { location.href = this.input.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.state.responseData = err; this.state.formState = \\"error\\"; } ); } } onCreate(input) { this.state = { formState: \\"unsubmitted\\", responseData: null, formErrorMessage: \\"\\", }; } get formRef() { return this.getEl(\\"formRef\\"); } } style { .pre-82a300b6 { padding: 10px; color: red; text-align: center; } }
component.onSubmit(event)) ...(props.attributes) >
\${JSON.stringify(state.responseData, null, 2)}
" `; exports[`Marko > jsx > Typescript Test > Image 1`] = ` "class { setLoaded() { this.state.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.input.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; onCreate(input) { this.state = { scrollListener: null, imageLoaded: false, load: false }; } get pictureRef() { return this.getEl(\\"pictureRef\\"); } onMount() { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef) { const rect = this.pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.state.load = true; this.state.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.state.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } onDestroy() { if (this.state.scrollListener) { window.removeEventListener(\\"scroll\\", this.state.scrollListener); } } } style { .img-b8232e4e { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } }
(input.altText) component.setLoaded()) srcset=(input.srcset) sizes=(input.sizes) /> \${input.children}
" `; exports[`Marko > jsx > Typescript Test > Image State 1`] = ` "class { onCreate() { this.state = { canShow: true, images: [\\"http://example.com/qwik.png\\"] }; } }
" `; exports[`Marko > jsx > Typescript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class {} (input.altText)" `; exports[`Marko > jsx > Typescript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class {} input.onChange?.(event.target.value)) />" `; exports[`Marko > jsx > Typescript Test > InputParent 1`] = ` "import FormInputComponent from \\"./input.raw\\"; class { handleChange(value: string) { console.log(value); } } component.handleChange(value)) >" `; exports[`Marko > jsx > Typescript Test > NestedStore 1`] = ` "class { onCreate() { this.state = { _id: \\"abc\\", _messageId: this.state._id + \\"-message\\" }; } }
Test

Message

" `; exports[`Marko > jsx > Typescript Test > RawText 1`] = ` "class {} $!{input.text || ''}" `; exports[`Marko > jsx > Typescript Test > Section 1`] = ` "class {}
\${input.children}
" `; exports[`Marko > jsx > Typescript Test > Section 2`] = ` "class { onCreate(input) { this.state = { max: 42, items: [42] }; } }
\${input.children}
" `; exports[`Marko > jsx > Typescript Test > Select 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class {} " `; exports[`Marko > jsx > Typescript Test > SlotDefault 1`] = ` "class {}
Default content
" `; exports[`Marko > jsx > Typescript Test > SlotHtml 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; class {}
Hello
)> " `; exports[`Marko > jsx > Typescript Test > SlotJsx 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; class {}
Hello
)>" `; exports[`Marko > jsx > Typescript Test > SlotNamed 1`] = ` "class {}
Default left Default Child
" `; exports[`Marko > jsx > Typescript Test > Stamped.io 1`] = ` "import { kebabCase, snakeCase } from \\"lodash\\"; class { kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } onCreate(input) { this.state = { reviews: [], name: \\"test\\", showReviewPrompt: false }; } onMount() { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.input.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.input.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.state.reviews = data.data; }); } } style { .input-554308c6 { display: block; } .textarea-554308c6 { display: block; } .button-554308c6 { display: block; } .review-554308c6 { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img-554308c6 { height: 30px; width: 30px; margin-right: 10px; } }
N: \${index}
\${review.author}
\${review.reviewMessage}
" `; exports[`Marko > jsx > Typescript Test > StoreComment 1`] = ` "class { bar() {} onCreate() { this.state = { foo: true }; } } \${state.foo}" `; exports[`Marko > jsx > Typescript Test > StoreShadowVars 1`] = ` "class { foo(errors) { return errors; } onCreate() { this.state = { errors: {} }; } } \${component.foo(state.errors)}" `; exports[`Marko > jsx > Typescript Test > StoreWithState 1`] = ` "class { bar() { return this.state.foo; } onCreate() { this.state = { foo: false }; } } \${component.bar()}" `; exports[`Marko > jsx > Typescript Test > Submit 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > Text 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; class { onCreate(input) { this.state = { name: \\"Decadef20\\" }; } }
$!{input.text || input.content || state.name || '

my name

'}
" `; exports[`Marko > jsx > Typescript Test > Textarea 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "class { _do(id?: string) { this.state._active = !!id; if (this.input.onChange) { this.input.onChange(this.state._active); } } onCreate(input) { this.state = { _id: \\"abc\\", _active: false }; } onRender() { if (this._do) { this._do(this.state._id); } } }
Test
" `; exports[`Marko > jsx > Typescript Test > Video 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "class { setName(value) { this.state.name = value; } updateNameWithArrowFn(value) { this.state.name = value; } onCreate() { this.state = { name: \\"steve\\" }; } }
Hello \${state.name}
" `; exports[`Marko > jsx > Typescript Test > basicForFragment 1`] = ` "class { onCreate() { this.state = { id: \\"xyz\\" }; } }
\${option}
\${option}
" `; exports[`Marko > jsx > Typescript Test > basicForNoTagReference 1`] = ` "class { get TagNameGetter() { return \\"span\\"; } onCreate(input) { this.state = { name: \\"VincentW\\", TagName: \\"div\\", tag: \\"span\\" }; } } Hello \${state.name} \${action.text} " `; exports[`Marko > jsx > Typescript Test > basicForwardRef 1`] = ` "class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get propsInputRef() { return this.getEl(\\"propsInputRef\\"); } } style { .input-18b632d8 { color: red; } }
state.name = event.target.value) />
" `; exports[`Marko > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` " /** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ class { onCreate(input) { this.state = { name: \\"PatrickJS\\" }; } get propsInputRef() { return this.getEl(\\"propsInputRef\\"); } } style { .input-bed36ef0 { color: red; } }
state.name = event.target.value) />
" `; exports[`Marko > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "class { onCreate() { this.state = { name: \\"PatrickJS\\" }; } onRender() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.state.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } }
Hello! \${state.name}
" `; exports[`Marko > jsx > Typescript Test > basicRefAttributePassing 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ class { get buttonRef() { return this.getEl(\\"buttonRef\\"); } onMount() { console.log(\\"onMount\\"); } } " `; exports[`Marko > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ class { get buttonRef() { return this.getEl(\\"buttonRef\\"); } }
" `; exports[`Marko > jsx > Typescript Test > class + ClassName + css 1`] = ` "import MyComp from \\"./my-component.marko\\"; class {} style { .div-6ef0b03e { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > class + css 1`] = ` "class {} style { .div-defca3e2 { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > className + css 1`] = ` "class {} style { .div-defca3e2 { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > className 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; class { onCreate() { this.state = { bindings: \\"a binding\\" }; } }
Without Binding
With binding
" `; exports[`Marko > jsx > Typescript Test > classState 1`] = ` "class { onCreate() { this.state = { classState: \\"testClassName\\", styleState: { color: \\"red\\", }, }; } } style { .div-0a9f895c { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > classnameProps 1`] = ` " /** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ class {}
\${input.children} \${input.type} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > complexMeta 1`] = ` " /** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ class {}
" `; exports[`Marko > jsx > Typescript Test > componentWithContext 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; class {} \${foo.value}" `; exports[`Marko > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; class {} \${foo.value}
other
" `; exports[`Marko > jsx > Typescript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; class {}
setting context
" `; exports[`Marko > jsx > Typescript Test > defaultProps 1`] = ` "class {}
\${input.text}
" `; exports[`Marko > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "class {}
\${input.text}
" `; exports[`Marko > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; class {}
Hello \${input.name || DEFAULT_VALUES.name}
" `; exports[`Marko > jsx > Typescript Test > eventInputAndChange 1`] = ` "class { onCreate() { this.state = { name: \\"Steve\\" }; } } style { .input-4aba533e { color: red; } }
state.name = event.target.value) on-input((event) => state.name = event.target.value) /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > eventProps 1`] = ` "import { EventProps, EventState } from \\"./event-props.type\\"; class { handleClick() { if (this.input.onGetVoid) { this.input.onGetVoid(); } if (this.input.onEnter) { console.log(this.input.onEnter()); } if (this.input.onPass) { this.input.onPass(\\"test\\"); } } } " `; exports[`Marko > jsx > Typescript Test > expressionState 1`] = ` "class { onCreate(input) { this.state = { refToUse: !(input.componentRef instanceof Function) ? input.componentRef : null, }; } }
\${state.refToUse}
" `; exports[`Marko > jsx > Typescript Test > figmaMeta 1`] = ` " /** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ class {} " `; exports[`Marko > jsx > Typescript Test > functionProps 1`] = ` "class {}

x) f1=(x => x) f2=(x => {}) f3=(function () { return x; }) f4=(function (x) { return x; }) f5=(function (x) { return; }) f6=(function () { return; }) f7=((a, b, c) => a + b + c) >

" `; exports[`Marko > jsx > Typescript Test > getterState 1`] = ` "class { get foo2() { return this.input.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } }

\${component.foo2}

\${component.bar}

\${component.baz(1)}

" `; exports[`Marko > jsx > Typescript Test > import types 1`] = ` "import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; class { getRenderContentProps(block, index) { return { block: block, index: index, }; } } " `; exports[`Marko > jsx > Typescript Test > layerName 1`] = ` "class {} style { .layer-name-27ceea4e { padding: 10px; } }
Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > multipleOnUpdate 1`] = ` "class { onRender() { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } }
" `; exports[`Marko > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "class { onCreate() { this.state = { a: \\"a\\", b: \\"b\\", c: \\"c\\", d: \\"d\\" }; } onRender() { console.log(\\"Runs when a or b changes\\", this.state.a, this.state.b); if (this.state.a === \\"a\\") { this.state.a = \\"b\\"; } console.log(\\"Runs when c or d changes\\", this.state.c, this.state.d); if (this.state.a === \\"a\\") { this.state.a = \\"b\\"; } } }
" `; exports[`Marko > jsx > Typescript Test > multipleSpreads 1`] = ` "class { onCreate() { this.state = { attrs: { hello: \\"world\\", }, }; } } " `; exports[`Marko > jsx > Typescript Test > nestedShow 1`] = ` "class {}
if condition A and condition B
else-condition-B
else-condition-A
" `; exports[`Marko > jsx > Typescript Test > nestedStyles 1`] = ` "class {} style { .div-7671878a { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div-7671878a { display: block; } } .div-7671878a:hover { display: flex; } .div-7671878a:active { display: inline; } .div-7671878a .nested-selector { display: grid; } .div-7671878a .nested-selector:hover { display: block; } .div-7671878a.nested-selector:active { display: inline-block; } }
Hello world
" `; exports[`Marko > jsx > Typescript Test > normalizeLayerNames 1`] = ` "class {} style { .css-0-038fc384 { margin: 10px; } .css-123-038fc384 { padding: 10px; } .name-123-038fc384 { border: 1px solid; } .name-038fc384 { color: red; } .name-789-038fc384 { background: blue; } .div-038fc384 { background: blue; } }
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
" `; exports[`Marko > jsx > Typescript Test > onEvent 1`] = ` "class { foo(event) { console.log(\\"test2\\"); } get elem() { return this.getEl(\\"elem\\"); } onMount() { this.elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); } }
Test
" `; exports[`Marko > jsx > Typescript Test > onInit & onMount 1`] = ` "class { onMount() { console.log(\\"onMount\\"); } }
" `; exports[`Marko > jsx > Typescript Test > onInit 1`] = ` "export const defaultValues = { name: \\"PatrickJS\\", }; class { onCreate(input) { this.state = { name: \\"\\" }; } }
Default name defined by parent \${state.name}
" `; exports[`Marko > jsx > Typescript Test > onInitPlain 1`] = ` "class {}
" `; exports[`Marko > jsx > Typescript Test > onMount 1`] = ` "class { onMount() { console.log(\\"Runs on mount\\"); } onDestroy() { console.log(\\"Runs on unMount\\"); } }
" `; exports[`Marko > jsx > Typescript Test > onMountMultiple 1`] = ` "class { onMount() { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } }
" `; exports[`Marko > jsx > Typescript Test > onUpdate 1`] = ` "class { onRender() { console.log(\\"Runs on every update/rerender\\"); } }
" `; exports[`Marko > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "class { onCreate(input) { this.state = { a: \\"a\\", b: \\"b\\" }; } onRender() { console.log( \\"Runs when a, b or size changes\\", this.state.a, this.state.b, this.input.size ); } }
" `; exports[`Marko > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} class {}
" `; exports[`Marko > jsx > Typescript Test > preserveTyping 1`] = ` "class {}
Hello! I can run in React, Vue, Solid, or Liquid! \${input.name}
" `; exports[`Marko > jsx > Typescript Test > propsDestructure 1`] = ` "class { onCreate(input) { this.state = { name: \\"Decadef20\\" }; } }
\${input.children} \${input.type} Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > jsx > Typescript Test > propsInterface 1`] = ` "class {}
Hello! I can run in React, Vue, Solid, or Liquid! \${input.name}
" `; exports[`Marko > jsx > Typescript Test > propsType 1`] = ` "class {}
Hello! I can run in React, Vue, Solid, or Liquid! \${input.name}
" `; exports[`Marko > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "class { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; onRender() { this.foo({ someOption: this.bar, }); } }
" `; exports[`Marko > jsx > Typescript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles.marko\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component.marko\\"; import RenderComponent from \\"./render-component.marko\\"; import RenderRepeatedBlock from \\"./render-repeated-block.marko\\"; import type { RepeatData } from \\"./types.js\\"; class { get component() { const componentName = getProcessedBlock({ block: this.input.block, state: this.input.context.state, context: this.input.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.input.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.input.block : getProcessedBlock({ block: this.input.block, state: this.input.context.state, context: this.input.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.input.context.state, context: this.input.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.input.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.input.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.input.context.state, context: this.input.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.input.context, state: { ...this.input.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.input.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.input.context.apiKey, state: this.input.context.state, content: this.input.context.content, context: this.input.context.context, registeredComponents: this.input.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } } " `; exports[`Marko > jsx > Typescript Test > renderContentExample 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks.marko\\"; class { onMount() { sendComponentsToVisualEditor(this.input.customComponents); } onRender() { dispatchNewContentToVisualEditor(this.input.content); } } style { .div-5e7e866c { display: flex; flex-direction: columns; } }
trackClick(input.content.id))>
" `; exports[`Marko > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "class {} \${input.text} " `; exports[`Marko > jsx > Typescript Test > rootShow 1`] = ` "class {}
Bar
Foo
" `; exports[`Marko > jsx > Typescript Test > self-referencing component 1`] = ` "class {}
\${input.name}
" `; exports[`Marko > jsx > Typescript Test > self-referencing component with children 1`] = ` "class {}
\${input.name} \${input.children}
Wayne
" `; exports[`Marko > jsx > Typescript Test > setState 1`] = ` "class { someFn() { this.state.n[0] = \\"123\\"; } onCreate() { this.state = { n: [\\"123\\"] }; } }
" `; exports[`Marko > jsx > Typescript Test > showExpressions 1`] = ` "class {}
Content0 ContentA ContentA ContentA ContentB \${undefined} \${undefined} ContentB ContentC ContentC ContentD ContentD ContentE hello hello ContentE ContentF 123 123 ContentF 4mb 20mb 9mb 20mb 9mb 4mb
complete
9mb dff
complete else
" `; exports[`Marko > jsx > Typescript Test > showWithFor 1`] = ` "class {}
\${item}
else-condition-A
" `; exports[`Marko > jsx > Typescript Test > showWithOtherValues 1`] = ` "class {}
ContentA ContentB \${undefined} ContentC ContentD ContentE hello ContentF 123
" `; exports[`Marko > jsx > Typescript Test > showWithRootText 1`] = ` "class {} ContentA
else-condition-A
" `; exports[`Marko > jsx > Typescript Test > signalsOnUpdate 1`] = ` "class { onRender() { console.log(\\"props.id changed\\", this.input.id); console.log(\\"props.foo.value.bar.baz changed\\", this.input.foo.bar.baz); } } style { .div-6c56607a { padding: 10px; } }
\${input.id} \${input.foo.bar.baz}
" `; exports[`Marko > jsx > Typescript Test > spreadAttrs 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > spreadNestedProps 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > spreadProps 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > store-async-function 1`] = ` "class { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; }
" `; exports[`Marko > jsx > Typescript Test > string-literal-store 1`] = ` "class { onCreate() { this.state = { foo: 123 }; } }
\${state.foo}
" `; exports[`Marko > jsx > Typescript Test > string-literal-store-kebab 1`] = ` "class { onCreate() { this.state = { foo-bar: 123,} } }
\${component.'foo-bar'}
" `; exports[`Marko > jsx > Typescript Test > styleClassAndCss 1`] = ` "class {} style { .div-35e34a45 { display: flex; flex-direction: column; align-items: stretch; } }
" `; exports[`Marko > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "class {} style { .div-bee7e1a8 { display: flex; flex-direction: column; align-items: stretch; } }
" `; exports[`Marko > jsx > Typescript Test > subComponent 1`] = ` "import Foo from \\"./foo-sub-component.marko\\"; class {} " `; exports[`Marko > jsx > Typescript Test > svgComponent 1`] = ` "class {} " `; exports[`Marko > jsx > Typescript Test > typeDependency 1`] = ` "import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export.marko\\"; class {}
\${input.foo}
" `; exports[`Marko > jsx > Typescript Test > typeExternalProps 1`] = ` "import { FooProps } from \\"./foo-props\\"; class {}
Hello \${input.name} !
" `; exports[`Marko > jsx > Typescript Test > typeExternalStore 1`] = ` "import { FooStore } from \\"./foo-store\\"; class { onCreate() { this.state = { _name: \\"test\\" }; } }
Hello \${state._name} !
" `; exports[`Marko > jsx > Typescript Test > typeGetterStore 1`] = ` "class { getName() { if (this.state.name === \\"a\\") { return \\"b\\"; } return this.state.name; } get test() { return \\"test\\"; } onCreate() { this.state = { name: \\"test\\" }; } }
Hello \${state.name} !
" `; exports[`Marko > jsx > Typescript Test > use-style 1`] = ` "class {} style { button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } } " `; exports[`Marko > jsx > Typescript Test > use-style-and-css 1`] = ` "class {} style { button { font-size: 12px; outline: 1px solid black; } .button-49a5373c { background: blue; color: white; } } " `; exports[`Marko > jsx > Typescript Test > use-style-outside-component 1`] = ` "class {} style { button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } } " `; exports[`Marko > jsx > Typescript Test > useTarget 1`] = ` "class { get name() { const prefix = \\"m\\"; return prefix + \\"foo\\"; } onCreate() { this.state = { lastName: \\"bar\\", foo: \\"bar\\" }; } onMount() { console.log(this.state.foo); this.state.foo = \\"bar\\"; } }
\${component.name}
" `; exports[`Marko > jsx > Typescript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; class {} Slide 1 Slide 2 Slide 3" `; exports[`Marko > svelte > Javascript Test > basic 1`] = ` "class { onCreate() { this.state = { name: \\"Steve\\" }; } }
state.name = event.target.value) value=(state.name) /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > svelte > Javascript Test > bindGroup 1`] = ` "class { onCreate() { this.state = { tortilla: \\"Plain\\", fillings: [] }; } }
state.tortilla = event.target.value) /> state.tortilla = event.target.value) /> state.tortilla = event.target.value) />

state.fillings = event.target.value) /> state.fillings = event.target.value) /> state.fillings = event.target.value) /> state.fillings = event.target.value) />

Tortilla: \${state.tortilla}

Fillings: \${state.fillings}

" `; exports[`Marko > svelte > Javascript Test > bindProperty 1`] = ` "class { onCreate() { this.state = { value: \\"hello\\" }; } } " `; exports[`Marko > svelte > Javascript Test > classDirective 1`] = ` "class { onCreate(input) { this.state = { focus: true }; } } " `; exports[`Marko > svelte > Javascript Test > context 1`] = ` "class { onCreate() { this.state = { activeTab: 0 }; } }
\${state.activeTab}
" `; exports[`Marko > svelte > Javascript Test > each 1`] = ` "class { onCreate() { this.state = { numbers: [\\"one\\", \\"two\\", \\"three\\"] }; } }
  • \${num}
" `; exports[`Marko > svelte > Javascript Test > eventHandlers 1`] = ` "class { log = function log(msg = \\"hello\\") { console.log(msg); }; }
" `; exports[`Marko > svelte > Javascript Test > html 1`] = ` "class { onCreate() { this.state = { html: \\"bold\\" }; } }
$!{state.html}
" `; exports[`Marko > svelte > Javascript Test > ifElse 1`] = ` "class { toggle = function toggle() { this.state.show = !this.state.show; }; onCreate() { this.state = { show: true }; } } " `; exports[`Marko > svelte > Javascript Test > imports 1`] = ` "import Button from \\"./Button.marko\\"; class { onCreate() { this.state = { disabled: false }; } }
" `; exports[`Marko > svelte > Javascript Test > lifecycleHooks 1`] = ` "class { onMount() { console.log(\\"onMount\\"); } onDestroy() { console.log(\\"onDestroy\\"); } onRender() { console.log(\\"onAfterUpdate\\"); } }
" `; exports[`Marko > svelte > Javascript Test > reactive 1`] = ` "class { get lowercaseName() { return this.state.name.toLowerCase(); } onCreate() { this.state = { name: \\"Steve\\" }; } }
Lowercase: \${component.lowercaseName}
" `; exports[`Marko > svelte > Javascript Test > reactiveWithFn 1`] = ` "class { calculateResult = function calculateResult(a_, b_) { this.state.result = a_ * b_; }; onCreate() { this.state = { a: 2, b: 5, result: null }; } onRender() { this.calculateResult(this.state.a, this.state.b); } }
state.a = event.target.value) value=(state.a) /> state.b = event.target.value) value=(state.b) /> Result: \${state.result}
" `; exports[`Marko > svelte > Javascript Test > slots 1`] = ` "class {}
default
default
" `; exports[`Marko > svelte > Javascript Test > style 1`] = ` "class {} style { input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } } " `; exports[`Marko > svelte > Javascript Test > textExpressions 1`] = ` "class { onCreate() { this.state = { a: 5, b: 12 }; } }
normal: \${state.a + state.b}
conditional \${state.a > 2 ? 'hello' : 'bye'}
" `; exports[`Marko > svelte > Typescript Test > basic 1`] = ` "class { onCreate() { this.state = { name: \\"Steve\\" }; } }
state.name = event.target.value) value=(state.name) /> Hello! I can run in React, Vue, Solid, or Liquid!
" `; exports[`Marko > svelte > Typescript Test > bindGroup 1`] = ` "class { onCreate() { this.state = { tortilla: \\"Plain\\", fillings: [] }; } }
state.tortilla = event.target.value) /> state.tortilla = event.target.value) /> state.tortilla = event.target.value) />

state.fillings = event.target.value) /> state.fillings = event.target.value) /> state.fillings = event.target.value) /> state.fillings = event.target.value) />

Tortilla: \${state.tortilla}

Fillings: \${state.fillings}

" `; exports[`Marko > svelte > Typescript Test > bindProperty 1`] = ` "class { onCreate() { this.state = { value: \\"hello\\" }; } } " `; exports[`Marko > svelte > Typescript Test > classDirective 1`] = ` "class { onCreate(input) { this.state = { focus: true }; } } " `; exports[`Marko > svelte > Typescript Test > context 1`] = ` "class { onCreate() { this.state = { activeTab: 0 }; } }
\${state.activeTab}
" `; exports[`Marko > svelte > Typescript Test > each 1`] = ` "class { onCreate() { this.state = { numbers: [\\"one\\", \\"two\\", \\"three\\"] }; } }
  • \${num}
" `; exports[`Marko > svelte > Typescript Test > eventHandlers 1`] = ` "class { log = function log(msg = \\"hello\\") { console.log(msg); }; }
" `; exports[`Marko > svelte > Typescript Test > html 1`] = ` "class { onCreate() { this.state = { html: \\"bold\\" }; } }
$!{state.html}
" `; exports[`Marko > svelte > Typescript Test > ifElse 1`] = ` "class { toggle = function toggle() { this.state.show = !this.state.show; }; onCreate() { this.state = { show: true }; } } " `; exports[`Marko > svelte > Typescript Test > imports 1`] = ` "import Button from \\"./Button.marko\\"; class { onCreate() { this.state = { disabled: false }; } }
" `; exports[`Marko > svelte > Typescript Test > lifecycleHooks 1`] = ` "class { onMount() { console.log(\\"onMount\\"); } onDestroy() { console.log(\\"onDestroy\\"); } onRender() { console.log(\\"onAfterUpdate\\"); } }
" `; exports[`Marko > svelte > Typescript Test > reactive 1`] = ` "class { get lowercaseName() { return this.state.name.toLowerCase(); } onCreate() { this.state = { name: \\"Steve\\" }; } }
Lowercase: \${component.lowercaseName}
" `; exports[`Marko > svelte > Typescript Test > reactiveWithFn 1`] = ` "class { calculateResult = function calculateResult(a_, b_) { this.state.result = a_ * b_; }; onCreate() { this.state = { a: 2, b: 5, result: null }; } onRender() { this.calculateResult(this.state.a, this.state.b); } }
state.a = event.target.value) value=(state.a) /> state.b = event.target.value) value=(state.b) /> Result: \${state.result}
" `; exports[`Marko > svelte > Typescript Test > slots 1`] = ` "class {}
default
default
" `; exports[`Marko > svelte > Typescript Test > style 1`] = ` "class {} style { input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } } " `; exports[`Marko > svelte > Typescript Test > textExpressions 1`] = ` "class { onCreate() { this.state = { a: 5, b: 12 }; } }
normal: \${state.a + state.b}
conditional \${state.a > 2 ? 'hello' : 'bye'}
" `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/mitosis.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Can encode <> in text > should encode <> in text 1`] = ` "export default function MyComponent(props) { return <>&lt;&gt;&#123;&#125;; } " `; exports[`Can encode <> in text > should not encode valid jsx 1`] = ` "export default function MyComponent(props) { return ( <> hello world ); } " `; exports[`Can encode <> in text > should not output invalid jsx attributes 1`] = ` "export default function MyComponent(props) { return
; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Advanced 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { For } from \\"@components\\"; export default function MyBasicForShowComponent(props) { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }); return [
{state.names.map((person, i) => (
{i}:{person}
))} {state.names.map((person, index) => ( {person} ))} {state.names.map((_, index) => (
))} {Array.from({ length: 10, }).map((_, ee) => (
{ee}
))} {Array.from({ length: 10, }).map((_, index) => (

{index}

))} {state.names.map((person, index) => ( {person} {index} ))} {Array.from({ length: 10, }).map((person, count) => ( {person} {count} ))} {state.names.map((person, i) => ( {person} {i} ))} {Array.from({ length: 10, }).map((person, index) => ( {person} {index} ))}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > AdvancedRef 1`] = ` "import { useStore, useRef } from \\"@builder.io/mitosis\\"; import { Show, Fragment } from \\"@components\\"; export default function MyBasicRefComponent(props) { const state = useStore({ name: \\"PatrickJS\\", onBlur: function onBlur() { // Maintain focus inputRef.current.focus(); }, lowerCaseName: function lowerCaseName() { return state.name.toLowerCase(); }, }); const inputRef = useRef(null); const inputNoArgRef = useRef(null); const inputRef = useRef(null); const inputNoArgRef = useRef(null); return [
{props.showInput ? ( state.onBlur()} onChange={(event) => (state.name = event.target.value)} /> ) : null} Hello {state.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Basic 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; export default function MyBasicComponent(props) { const state = useStore({ name: \\"Steve\\", underscore_fn_name() { return \\"bar\\"; }, age: 1, sports: [\\"\\"], }); return [
(state.name = myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Basic 2`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { For, Show } from \\"@components\\"; export default function MyBasicForShowComponent(props) { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }); return [
{state.names.map((person, index) => person === state.name ? ( <> { state.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ) : null )}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Basic Context 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; export default function MyBasicComponent(props) { const state = useStore({ name: \\"PatrickJS\\", onChange: function onChange() { const change = myService.method(\\"change\\"); console.log(change); }, }); onMount(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }); return [
{myService.method(\\"hello\\") + state.name} Hello! I can run in React, Vue, Solid, or Liquid! state.onChange()} />
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; export default function MyBasicOnMountUpdateComponent(props) { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }); onMount(() => { state.name = \\"PatrickJS onMount\\" + props.bye; }); return [
Hello {state.name}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Basic Outputs 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; export default function MyBasicOutputsComponent(props) { const state = useStore({ name: \\"PatrickJS\\" }); onMount(() => { props.onMessageChange(state.name); props.onEvent(props.message); }); return [
]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { useStore } from \\"@builder.io/mitosis\\"; useMetadata({ outputs: [\\"onMessage\\", \\"onEvent\\"], baz: \\"metadata inside component\\", }); export default function MyBasicOutputsComponent(props) { const state = useStore({ name: \\"PatrickJS\\" }); onMount(() => { props.onMessageChange(state.name); props.onEvent(props.message); }); return [
]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicAttribute 1`] = ` "export default function MyComponent(props) { return []; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { Show, MyBooleanAttributeComponent } from \\"@components\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; export default function MyBooleanAttribute(props) { return [
{props.children ? ( <> {props.children} {props.type} ) : null}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { MyBasicComponent, MyBasicOnMountUpdateComponent, MyBasicOutputsComponent, } from \\"@components\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; export default function MyBasicChildComponent(props) { const state = useStore({ name: \\"Steve\\", dev: \\"PatrickJS\\", log: function log(message) { console.log(message); }, }); return [
(state.name = name)} onEvent={(event) => state.log(\\"Test\\")} />
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicFor 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { For, Fragment } from \\"@components\\"; export default function MyBasicForComponent(props) { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"] }); onMount(() => { console.log(\\"onMount code\\"); }); return [
{state.names.map((person, index) => ( { state.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ))}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicRef 1`] = ` "import { useStore, useRef } from \\"@builder.io/mitosis\\"; import { Show, Fragment } from \\"@components\\"; export default function MyBasicRefComponent(props) { const state = useStore({ name: \\"PatrickJS\\", onBlur: function onBlur() { // Maintain focus inputRef.current?.focus(); }, lowerCaseName: function lowerCaseName() { return state.name.toLowerCase(); }, }); const inputRef = useRef(null); const inputNoArgRef = useRef(null); const inputRef = useRef(null); const inputNoArgRef = useRef(null); return [
{props.showInput ? ( state.onBlur()} onChange={(event) => (state.name = event.target.value)} /> ) : null} Hello {state.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; export default function MyBasicRefAssignmentComponent(props) { const state = useStore({ handlerClick: function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", holdValueRef); holdValueRef = holdValueRef + \\"JS\\"; }, }); return [
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } export default function MyPreviousComponent(props) { const state = useStore({ count: 0 }); return [

Now: {state.count}, before: {prevCount}

, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Button 1`] = ` "import { Show } from \\"@components\\"; export default function Button(props) { return [
{props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Columns 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { For } from \\"@components\\"; export default function Column(props) { const state = useStore({ getColumns() { return props.columns || []; }, getGutterSize() { return typeof props.space === \\"number\\" ? props.space || 0 : 20; }, getWidth(index) { const columns = state.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; }, getColumnCssWidth(index) { const columns = state.getColumns(); const gutterSize = state.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${state.getWidth(index)}% - \${subtractWidth}px)\`; }, }); return [
{props.columns.map((column, index) => (
{column.content} {index}
))}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { Slot } from \\"@components\\"; export default function ContentSlotCode(props) { return [

, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { Show, Slot } from \\"@components\\"; export default function ContentSlotJsxCode(props) { const state = useStore({ name: \\"king\\", showContent: false, get cls() { return props.slotContent && props.children ? \`\${state.name}-content\` : \\"\\"; }, show() { props.slotContent ? 1 : \\"\\"; }, }); return [ props.slotReference ? (
state.show()} class={state.cls} > {state.showContent && props.slotContent ? ( {props.content} ) : null}

{props.children}
) : null, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > CustomCode 1`] = ` "import { useStore, useRef } from \\"@builder.io/mitosis\\"; export default function CustomCode(props) { const state = useStore({ scriptsInserted: [], scriptsRun: [], findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (state.scriptsInserted.includes(script.src)) { continue; } state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (state.scriptsRun.includes(script.innerText)) { continue; } try { state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } }, }); const elem = useRef(null); const elem = useRef(null); onMount(() => { state.findAndRunScripts(); }); return [
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Embed 1`] = ` "import { useStore, useRef } from \\"@builder.io/mitosis\\"; export default function CustomCode(props) { const state = useStore({ scriptsInserted: [], scriptsRun: [], findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (state.scriptsInserted.includes(script.src)) { continue; } state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (state.scriptsRun.includes(script.innerText)) { continue; } try { state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } }, }); const elem = useRef(null); const elem = useRef(null); onMount(() => { state.findAndRunScripts(); }); return [
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Form 1`] = ` "import { useStore, useRef } from \\"@builder.io/mitosis\\"; import { Show, For, BuilderBlockComponent, BuilderBlocks } from \\"@components\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; export default function FormComponent(props) { const state = useStore({ formState: \\"unsubmitted\\", responseData: null, formErrorMessage: \\"\\", get submissionState() { return (Builder.isEditing && props.previewState) || state.formState; }, onSubmit(event) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && props.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (formRef.current) { formRef.current.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } state.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action, /* TODO: throw error if no action URL */ { body, headers, method: props.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } state.formErrorMessage = message; } } state.responseData = body; state.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (formRef.current) { formRef.current.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (props.resetFormOnSubmit !== false) { formRef.current.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (props.successUrl) { if (formRef.current) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl, }, }); formRef.current.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (formRef.current) { formRef.current.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } state.responseData = err; state.formState = \\"error\\"; } ); } }, }); const formRef = useRef(null); const formRef = useRef(null); return [
state.onSubmit(event)} {...props.attributes} > {props.builderBlock && props.builderBlock.children ? (props.builderBlock?.children).map((block, index) => ( )) : null} {state.submissionState === \\"error\\" ? ( ) : null} {state.submissionState === \\"sending\\" ? ( ) : null} {state.submissionState === \\"error\\" && state.responseData ? (
          {JSON.stringify(state.responseData, null, 2)}
        
) : null} {state.submissionState === \\"success\\" ? ( ) : null} , ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Image 1`] = ` "import { useStore, useRef } from \\"@builder.io/mitosis\\"; import { Show } from \\"@components\\"; export default function Image(props) { const state = useStore({ scrollListener: null, imageLoaded: false, setLoaded() { state.imageLoaded = true; }, useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && state.isBrowser(); }, isBrowser: function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }, load: false, }); const pictureRef = useRef(); const pictureRef = useRef(); onMount(() => { if (state.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (pictureRef.current) { const rect = pictureRef.current.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { state.load = true; state.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; state.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }); onUnMount(() => { if (state.scrollListener) { window.removeEventListener(\\"scroll\\", state.scrollListener); } }); return [
{!state.useLazyLoading() || state.load ? ( {props.altText} state.setLoaded()} srcset={props.srcset} sizes={props.sizes} /> ) : null} {props.children}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Image State 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { For, Fragment } from \\"@components\\"; export default function ImgStateComponent(props) { const state = useStore({ canShow: true, images: [\\"http://example.com/qwik.png\\"], }); return [
{state.images.map((item, itemIndex) => ( ))}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; export default function ImgComponent(props) { return [ {props.altText}, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; export default function FormInputComponent(props) { return [ props.onChange?.(event.target.value)} />, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > InputParent 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { FormInputComponent } from \\"@components\\"; import FormInputComponent from \\"./input.raw\\"; export default function Stepper(props) { const state = useStore({ handleChange(value) { console.log(value); }, }); return [ state.handleChange(value)} />, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > NestedStore 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; export default function NestedStore(props) { const state = useStore({ _id: \\"abc\\", _messageId: state._id + \\"-message\\" }); return [
Test

Message

, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > RawText 1`] = ` "export default function RawText(props) { return [ , ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Section 1`] = ` "export default function SectionComponent(props) { return [
{props.children}
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Section 2`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { Show, For } from \\"@components\\"; export default function SectionStateComponent(props) { const state = useStore({ max: 42, items: [42] }); return [ state.max ? state.items.map((item, index) => (
{props.children}
)) : null, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Select 1`] = ` "import { For } from \\"@components\\"; import { Builder } from \\"@builder.io/sdk\\"; export default function SelectComponent(props) { return [ , ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > SlotDefault 1`] = ` "import { Slot } from \\"@components\\"; export default function SlotCode(props) { return [
Default content
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > SlotHtml 1`] = ` "import { ContentSlotCode, Slot } from \\"@components\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; export default function SlotCode(props) { return [
Hello
} />
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > SlotJsx 1`] = ` "import { ContentSlotCode } from \\"@components\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; export default function SlotCode(props) { return [
Hello
} />
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > SlotNamed 1`] = ` "import { Slot } from \\"@components\\"; export default function SlotCode(props) { return [
Default left Default Child
, ]; } " `; exports[`Mitosis, format: legacy (native loops and conditionals) > jsx > Javascript Test > Stamped.io 1`] = ` "import { useStore } from \\"@builder.io/mitosis\\"; import { Show, For } from \\"@components\\"; import { kebabCase, snakeCase } from \\"lodash\\"; export default function SmileReviews(props) { const state = useStore({ reviews: [], name: \\"test\\", showReviewPrompt: false, kebabCaseValue() { return kebabCase(\\"testThat\\"); }, snakeCaseValue() { return snakeCase(\\"testThis\\"); }, }); onMount(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { state.reviews = data.data; }); }); return [
{state.showReviewPrompt || \\"asdf\\" ? ( <> ) : null} {(state.reviews || []).map((review, index) => { return (
N: {index}
{review.author}
{review.reviewMessage}
); })}
); }); export default SmileReviews; export const STYLES = \` .input-SmileReviews { display: block; } .textarea-SmileReviews { display: block; } .button-SmileReviews { display: block; } .review-SmileReviews { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img-SmileReviews { height: 30px; width: 30px; margin-right: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > StoreComment 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const bar = function bar(props, state) {}; export const StringLiteralStore = component$((props) => { const state = useStore({ foo: true }); return {state.foo}; }); export default StringLiteralStore; " `; exports[`qwik > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const foo = function foo(props, state, errors) { return errors; }; export const MyComponent = component$((props) => { const state = useStore({ errors: {} }); return {foo(props, state, state.errors)}; }); export default MyComponent; " `; exports[`qwik > jsx > Javascript Test > StoreWithState 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const bar = function bar(props, state) { return state.foo; }; export const MyComponent = component$((props) => { const state = useStore({ foo: false }); return {bar(props, state)}; }); export default MyComponent; " `; exports[`qwik > jsx > Javascript Test > Submit 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const SubmitButton = component$((props) => { return ( ); }); export default SubmitButton; " `; exports[`qwik > jsx > Javascript Test > Text 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; import { Builder } from \\"@builder.io/sdk\\"; export const Text = component$((props) => { const state = useStore({ name: \\"Decadef20\\" }); return (
my name

' } >
); }); export default Text; " `; exports[`qwik > jsx > Javascript Test > Textarea 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const Textarea = component$((props) => { return ( ); }); export default Textarea; " `; exports[`qwik > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; export const _do = function _do(props, state, id) { state._active = !!id; if (props.onChange) { props.onChange(state._active); } }; export const UseValueAndFnFromStore = component$((props) => { const state = useStore({ _active: false, _id: \\"abc\\" }); useTask$(({ track }) => { if (_do.bind(null, props, state)) { _do(props, state, state._id); } }); return
Test
; }); export default UseValueAndFnFromStore; " `; exports[`qwik > jsx > Javascript Test > Video 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const Video = component$((props) => { return ( ); }); export default Video; " `; exports[`qwik > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const setName = function setName(props, state, value) { state.name = value; }; export const updateNameWithArrowFn = function updateNameWithArrowFn( props, state, value ) { state.name = value; }; export const MyComponent = component$((props) => { const state = useStore({ name: \\"steve\\" }); return
Hello {state.name}
; }); export default MyComponent; " `; exports[`qwik > jsx > Javascript Test > basicForFragment 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const BasicForFragment = component$((props) => { const state = useStore({ id: \\"xyz\\" }); return (
{([\\"a\\", \\"b\\", \\"c\\"] || []).map((option) => { return (
{option}
); })} {([\\"a\\", \\"b\\", \\"c\\"] || []).map((option) => { return (
{option}
); })}
); }); export default BasicForFragment; " `; exports[`qwik > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; export const MyBasicForNoTagRefComponent = component$((props) => { const TagNameGetter = useComputed$(() => { return \\"span\\"; }); const state = useStore({ TagName: \\"div\\", name: \\"VincentW\\", tag: \\"span\\" }); return ( Hello {state.name} {(props.actions || []).map((action) => { return ( {action.text} ); })} ); }); export default MyBasicForNoTagRefComponent; " `; exports[`qwik > jsx > Javascript Test > basicForwardRef 1`] = ` "import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export const MyBasicForwardRefComponent = component$((props) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"PatrickJS\\" }); return (
(state.name = event.target.value))} />
); }); export default MyBasicForwardRefComponent; export const STYLES = \` .input-MyBasicForwardRefComponent { color: red; } \`; " `; exports[`qwik > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` " /** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export const MyBasicForwardRefComponent = component$((props) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"PatrickJS\\" }); return (
(state.name = event.target.value))} />
); }); export default MyBasicForwardRefComponent; export const STYLES = \` .input-MyBasicForwardRefComponent { color: red; } \`; " `; exports[`qwik > jsx > Javascript Test > basicRefAttributePassing 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Fragment, component$, h, useSignal, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const BasicRefAttributePassingComponent = component$((props) => { const buttonRef = useSignal(); useVisibleTask$(() => { console.log(\\"onMount\\"); }); return ; }); export default BasicRefAttributePassingComponent; " `; exports[`qwik > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Fragment, component$, h, useSignal } from \\"@builder.io/qwik\\"; export const BasicRefAttributePassingCustomRefComponent = component$( (props) => { const buttonRef = useSignal(); return (
); } ); export default BasicRefAttributePassingCustomRefComponent; " `; exports[`qwik > jsx > Javascript Test > class + ClassName + css 1`] = ` "import MyComp from \\"./my-component.jsx\\"; import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > class + css 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > className + css 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > className 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const ClassNameCode = component$((props) => { const state = useStore({ bindings: \\"a binding\\" }); return (
Without Binding
With binding
); }); export default ClassNameCode; " `; exports[`qwik > jsx > Javascript Test > classState 1`] = ` "import { Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { useStylesScoped$(STYLES); const state = useStore({ classState: \\"testClassName\\", styleState: { color: \\"red\\", }, }); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > classnameProps 1`] = ` " /** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return (
{props.type} Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > complexMeta 1`] = ` " /** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const ComplexMetaRaw = component$((props) => { return
; }); export default ComplexMetaRaw; " `; exports[`qwik > jsx > Javascript Test > contentState 1`] = ` "import { Fragment, component$, h, useContextProvider, useStore, } from \\"@builder.io/qwik\\"; import BuilderContext from \\"@dummy/context.js\\"; export const RenderContent = component$((props) => { useContextProvider( BuilderContext, useStore({ content: props.content, registeredComponents: props.customComponents, }) ); return
setting context
; }); export default RenderContent; " `; exports[`qwik > jsx > Javascript Test > defaultProps 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const Button = component$((props) => { return (
{props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
); }); export default Button; " `; exports[`qwik > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const Button = component$((props) => { return (
{props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
); }); export default Button; " `; exports[`qwik > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const DEFAULT_VALUES = { name: \\"Sami\\", }; export const ComponentWithTypes = component$((props) => { return
Hello {props.name || DEFAULT_VALUES.name}
; }); export default ComponentWithTypes; " `; exports[`qwik > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export const EventInputAndChange = component$((props) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"Steve\\" }); return (
(state.name = event.target.value))} onChange$={$((event) => (state.name = event.target.value))} /> Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default EventInputAndChange; export const STYLES = \` .input-EventInputAndChange { color: red; } \`; " `; exports[`qwik > jsx > Javascript Test > eventProps 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const handleClick = function handleClick(props, state) { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } }; export const EventPropsComponent = component$((props) => { const state = {}; return ( ); }); export default EventPropsComponent; " `; exports[`qwik > jsx > Javascript Test > expressionState 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ refToUse: !(props.componentRef instanceof Function) ? props.componentRef : null, }); return
{state.refToUse}
; }); export default MyComponent; " `; exports[`qwik > jsx > Javascript Test > figmaMeta 1`] = ` " /** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const FigmaButton = component$((props) => { return ( ); }); export default FigmaButton; " `; exports[`qwik > jsx > Javascript Test > functionProps 1`] = ` "SyntaxError: Identifier expected. (5:98) 3 | export const MyBasicComponent=component$((props)=>{ 4 | > 5 | return (

{() => x})()} f1={(()=>{x => x})()} f2={(()=>{x => {}})()} f3={(()=>{function () { | ^ 6 | return x; 7 | }})()} f4={(()=>{function (x) { 8 | return x; ======================================================================== import{Fragment,component$,h}from\\"@builder.io/qwik\\"; export const MyBasicComponent=component$((props)=>{ return (

{() => x})()} f1={(()=>{x => x})()} f2={(()=>{x => {}})()} f3={(()=>{function () { return x; }})()} f4={(()=>{function (x) { return x; }})()} f5={(()=>{function (x) { return; }})()} f6={(()=>{function () { return; }})()} f7={(()=>{(a, b, c) => a + b + c})()}>

)}); export default MyBasicComponent; ========================================================================" `; exports[`qwik > jsx > Javascript Test > getterState 1`] = ` "import { Fragment, component$, h, useComputed$ } from \\"@builder.io/qwik\\"; export const baz = function baz(props, state, foo2, bar, i) { return i + foo2.value.length; }; export const Button = component$((props) => { const foo2 = useComputed$(() => { return props.foo + \\"foo\\"; }); const bar = useComputed$(() => { return \\"bar\\"; }); const state = {}; return (

{foo2.value}

{bar.value}

{baz(props, state, foo2, bar, 1)}

); }); export default Button; " `; exports[`qwik > jsx > Javascript Test > import types 1`] = ` "import RenderBlock from \\"./builder-render-block.raw\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const getRenderContentProps = function getRenderContentProps( props, state, block, index ) { return { block: block, index: index, }; }; export const RenderContent = component$((props) => { const state = {}; return ( ); }); export default RenderContent; " `; exports[`qwik > jsx > Javascript Test > layerName 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyLayerNameComponent = component$((props) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyLayerNameComponent; export const STYLES = \` .layer-name-MyLayerNameComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const MultipleOnUpdate = component$((props) => { useTask$(({ track }) => { console.log(\\"Runs on every update/rerender\\"); }); useTask$(({ track }) => { console.log(\\"Runs on every update/rerender as well\\"); }); return
; }); export default MultipleOnUpdate; " `; exports[`qwik > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; export const MultipleOnUpdateWithDeps = component$((props) => { const state = useStore({ a: \\"a\\", b: \\"b\\", c: \\"c\\", d: \\"d\\" }); useTask$(({ track }) => { track(() => state.a); track(() => state.b); console.log(\\"Runs when a or b changes\\", state.a, state.b); if (state.a === \\"a\\") { state.a = \\"b\\"; } }); useTask$(({ track }) => { track(() => state.c); track(() => state.d); console.log(\\"Runs when c or d changes\\", state.c, state.d); if (state.a === \\"a\\") { state.a = \\"b\\"; } }); return
; }); export default MultipleOnUpdateWithDeps; " `; exports[`qwik > jsx > Javascript Test > multipleSpreads 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { const state = useStore({ attrs: { hello: \\"world\\", }, }); return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > nestedShow 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const NestedShow = component$((props) => { return ( <> {props.conditionA ? ( !props.conditionB ? (
if condition A and condition B
) : (
else-condition-B
) ) : (
else-condition-A
)} ); }); export default NestedShow; " `; exports[`qwik > jsx > Javascript Test > nestedStyles 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const NestedStyles = component$((props) => { useStylesScoped$(STYLES); return
Hello world
; }); export default NestedStyles; export const STYLES = \` .div-NestedStyles { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div-NestedStyles { display: block; } } .div-NestedStyles:hover { display: flex; } .div-NestedStyles:active { display: inline; } .div-NestedStyles .nested-selector { display: grid; } .div-NestedStyles .nested-selector:hover { display: block; } .div-NestedStyles.nested-selector:active { display: inline-block; } \`; " `; exports[`qwik > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyNormalizedLayerNamesComponent = component$((props) => { useStylesScoped$(STYLES); return (
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
); }); export default MyNormalizedLayerNamesComponent; export const STYLES = \` .css-0-MyNormalizedLayerNamesComponent { margin: 10px; } .css-123-MyNormalizedLayerNamesComponent { padding: 10px; } .name-123-MyNormalizedLayerNamesComponent { border: 1px solid; } .name-MyNormalizedLayerNamesComponent { color: red; } .name-789-MyNormalizedLayerNamesComponent { background: blue; } .div-MyNormalizedLayerNamesComponent { background: blue; } \`; " `; exports[`qwik > jsx > Javascript Test > onEvent 1`] = ` "import { $, Fragment, component$, h, useOn, useSignal, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const foo = function foo(props, state, elem, event) { console.log(\\"test2\\"); }; export const Embed = component$((props) => { const elem = useSignal(); const state = {}; useOn( \\"initEditingBldr\\", $((event, element) => { console.log(\\"test\\"); foo(props, state, elem, event); }) as Parameters[1] ); useVisibleTask$(() => { elem.value.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }); return (
Test
); }); export default Embed; " `; exports[`qwik > jsx > Javascript Test > onInit & onMount 1`] = ` "import { Fragment, component$, h, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const OnInit = component$((props) => { useVisibleTask$(() => { console.log(\\"onMount\\"); }); useTask$(() => { console.log(\\"onInit\\"); }); return
; }); export default OnInit; " `; exports[`qwik > jsx > Javascript Test > onInit 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; export const defaultValues = { name: \\"PatrickJS\\", }; export const OnInit = component$((props) => { const state = useStore({ name: \\"\\" }); useTask$(() => { state.name = defaultValues.name || props.name; console.log(\\"set defaults with props\\"); }); return
Default name defined by parent {state.name}
; }); export default OnInit; " `; exports[`qwik > jsx > Javascript Test > onInitPlain 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const OnInitPlain = component$((props) => { useTask$(() => { console.log(\\"onInit\\"); }); return
; }); export default OnInitPlain; " `; exports[`qwik > jsx > Javascript Test > onMount 1`] = ` "import { Fragment, component$, h, useVisibleTask$ } from \\"@builder.io/qwik\\"; export const Comp = component$((props) => { useVisibleTask$(() => { console.log(\\"Runs on mount\\"); }); return
; }); export default Comp; " `; exports[`qwik > jsx > Javascript Test > onMountMultiple 1`] = ` "import { Fragment, component$, h, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const Comp = component$((props) => { useVisibleTask$(() => { console.log(\\"Runs on mount\\"); }); useVisibleTask$(() => { console.log(\\"Another one runs on Mount\\"); }); useTask$(() => { console.log(\\"SSR runs on Mount\\"); }); return
; }); export default Comp; " `; exports[`qwik > jsx > Javascript Test > onUpdate 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const OnUpdate = component$((props) => { useTask$(({ track }) => { console.log(\\"Runs on every update/rerender\\"); }); return
; }); export default OnUpdate; " `; exports[`qwik > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; export const OnUpdateWithDeps = component$((props) => { const state = useStore({ a: \\"a\\", b: \\"b\\" }); useTask$(({ track }) => { track(() => state.a); track(() => state.b); track(() => props.size); console.log(\\"Runs when a, b or size changes\\", state.a, state.b, props.size); }); return
; }); export default OnUpdateWithDeps; " `; exports[`qwik > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const b = 3; export const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} export const MyBasicComponent = component$((props) => { return
; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > preserveTyping 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return (
Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > propsDestructure 1`] = ` "import { Fragment, Slot, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { const state = useStore({ name: \\"Decadef20\\" }); return (
{props.type} Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > propsInterface 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return (
Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > propsType 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return (
Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const foo = function foo(props, state, params) {}; export const bar = function bar(props, state) {}; export const zoo = function zoo(props, state) { const params = { cb: state.bar, }; }; export const OnUpdate = component$((props) => { const state = {}; useTask$(({ track }) => { state.foo({ someOption: state.bar, }); }); return
; }); export default OnUpdate; " `; exports[`qwik > jsx > Javascript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles.jsx\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component.jsx\\"; import RenderRepeatedBlock from \\"./render-repeated-block.jsx\\"; import { Fragment, component$, h, useComputed$ } from \\"@builder.io/qwik\\"; export const RenderBlock = component$((props) => { const component = useComputed$(() => { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); const tag = useComputed$(() => { return getBlockTag(useBlock.value); }); const useBlock = useComputed$(() => { return repeatItemData.value ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); }); const actions = useComputed$(() => { return getBlockActions({ block: useBlock.value, state: props.context.state, context: props.context.context, }); }); const attributes = useComputed$(() => { const blockProperties = getBlockProperties(useBlock.value); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock.value, context: props.context, blockStyles: blockProperties.style, }), } : {}), }; }); const shouldWrap = useComputed$(() => { return !component.value?.noWrap; }); const renderComponentProps = useComputed$(() => { return { blockChildren: useChildren.value, componentRef: component.value?.component, componentOptions: { ...getBlockComponentOptions(useBlock.value), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap.value ? {} : { attributes: { ...attributes.value, ...actions.value }, }), customBreakpoints: childrenContext.value?.content?.meta?.breakpoints, }, context: childrenContext.value, }; }); const useChildren = useComputed$(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return useBlock.value.children ?? []; }); const childrenWithoutParentComponent = useComputed$(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component.value?.component && !repeatItemData.value; return shouldRenderChildrenOutsideRef ? useChildren.value : []; }); const repeatItemData = useComputed$(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); const inheritedTextStyles = useComputed$(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock.value, context: props.context, blockStyles: attributes.value.style, }); return extractTextStyles(styles); }); const childrenContext = useComputed$(() => { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles.value, }; }); const renderComponentTag = useComputed$(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); const state = {}; return ( <> {shouldWrap.value ? ( <> {isEmptyHtmlElement(tag.value) ? ( ) : null} {!isEmptyHtmlElement(tag.value) && repeatItemData.value ? (repeatItemData.value || []).map((data, index) => { return ( ); }) : null} {!isEmptyHtmlElement(tag.value) && !repeatItemData.value ? ( {(childrenWithoutParentComponent.value || []).map((child) => { return ( ); })} {(childrenWithoutParentComponent.value || []).map((child) => { return ( ); })} ) : null} ) : ( )} ); }); export default RenderBlock; " `; exports[`qwik > jsx > Javascript Test > renderContentExample 1`] = ` "import { $, Fragment, component$, h, useContextProvider, useStore, useStylesScoped$, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; import RenderBlocks from \\"@dummy/RenderBlocks.jsx\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; export const RenderContent = component$((props) => { useStylesScoped$(STYLES); useContextProvider( BuilderContext, useStore({ content: (() => { return 3; })(), registeredComponents: (() => { return 4; })(), }) ); useVisibleTask$(() => { sendComponentsToVisualEditor(props.customComponents); }); useTask$(({ track }) => { track(() => props.content); dispatchNewContentToVisualEditor(props.content); }); return (
trackClick(props.content.id))} >
); }); export default RenderContent; export const STYLES = \` .div-RenderContent { display: flex; flex-direction: columns; } \`; " `; exports[`qwik > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const Button = component$((props) => { return ( {props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null} ); }); export default Button; " `; exports[`qwik > jsx > Javascript Test > rootShow 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const RenderStyles = component$((props) => { return <>{props.foo === \\"bar\\" ?
Bar
:
Foo
}; }); export default RenderStyles; " `; exports[`qwik > jsx > Javascript Test > self-referencing component 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { return (
{props.name} {props.name === \\"Batman\\" ? ( ) : null}
); }); export default MyComponent; " `; exports[`qwik > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { return (
{props.name} {props.name === \\"Batman\\" ? (
Wayne
) : null}
); }); export default MyComponent; " `; exports[`qwik > jsx > Javascript Test > setState 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const someFn = function someFn(props, state) { state.n[0] = \\"123\\"; }; export const SetState = component$((props) => { const state = useStore({ n: [\\"123\\"] }); return (
); }); export default SetState; " `; exports[`qwik > jsx > Javascript Test > showExpressions 1`] = ` "SyntaxError: Expression expected. (5:115) 3 | export const ShowWithOtherValues=component$((props)=>{ 4 | > 5 | return (
{props.conditionA?<>Content0:<>ContentA}{props.conditionA?<>ContentA:null}{props.conditionA?:<>ContentA}{props.conditionA?<>ContentB:<>{undefined}}{props.conditionA?<>{undefined}:<>ContentB}{props.conditionA?<>ContentC:null}{props.conditionA?:<>ContentC}{props.conditionA?<>ContentD:null}{props.conditionA?:<>ContentD}{props.conditionA?<>ContentE:<>hello}{props.conditionA?<>hello:<>ContentE}{props.conditionA?<>ContentF:<>123}{props.conditionA?<>123:<>ContentF}{props.conditionA === 'Default'?<>4mb:props.conditionB === 'Complete'?<>20mb:<>9mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?<>20mb:<>9mb:<>4mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?
complete
:<>9mb:props.conditionC === 'Complete'?<>dff:
complete else
}
)}); | ^ 6 | 7 | export default ShowWithOtherValues; ======================================================================== import{Fragment,component$,h}from\\"@builder.io/qwik\\"; export const ShowWithOtherValues=component$((props)=>{ return (
{props.conditionA?<>Content0:<>ContentA}{props.conditionA?<>ContentA:null}{props.conditionA?:<>ContentA}{props.conditionA?<>ContentB:<>{undefined}}{props.conditionA?<>{undefined}:<>ContentB}{props.conditionA?<>ContentC:null}{props.conditionA?:<>ContentC}{props.conditionA?<>ContentD:null}{props.conditionA?:<>ContentD}{props.conditionA?<>ContentE:<>hello}{props.conditionA?<>hello:<>ContentE}{props.conditionA?<>ContentF:<>123}{props.conditionA?<>123:<>ContentF}{props.conditionA === 'Default'?<>4mb:props.conditionB === 'Complete'?<>20mb:<>9mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?<>20mb:<>9mb:<>4mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?
complete
:<>9mb:props.conditionC === 'Complete'?<>dff:
complete else
}
)}); export default ShowWithOtherValues; ========================================================================" `; exports[`qwik > jsx > Javascript Test > showWithFor 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const NestedShow = component$((props) => { return ( <> {props.conditionA ? ( (props.items || []).map((item, idx) => { return
{item}
; }) ) : (
else-condition-A
)} ); }); export default NestedShow; " `; exports[`qwik > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const ShowWithOtherValues = component$((props) => { return (
{props.conditionA ? <>ContentA : null} {props.conditionA ? <>ContentB : <>{undefined}} {props.conditionA ? <>ContentC : null} {props.conditionA ? <>ContentD : null} {props.conditionA ? <>ContentE : <>hello} {props.conditionA ? <>ContentF : <>123}
); }); export default ShowWithOtherValues; " `; exports[`qwik > jsx > Javascript Test > showWithRootText 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const ShowRootText = component$((props) => { return <>{props.conditionA ? <>ContentA :
else-condition-A
}; }); export default ShowRootText; " `; exports[`qwik > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { Fragment, component$, h, useStylesScoped$, useTask$, } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { useStylesScoped$(STYLES); useTask$(({ track }) => { track(() => props.id); track(() => props.foo.value.bar.baz); console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.value.bar.baz); }); return (
{props.id} {props.foo.value.bar.baz}
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Javascript Test > spreadAttrs 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > spreadProps 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Javascript Test > store-async-function 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const arrowFunction = async function arrowFunction() { return Promise.resolve(); }; export const namedFunction = async function namedFunction() { return Promise.resolve(); }; export const fetchUsers = async function fetchUsers() { return Promise.resolve(); }; export const StringLiteralStore = component$((props) => { const state = {}; return
; }); export default StringLiteralStore; " `; exports[`qwik > jsx > Javascript Test > string-literal-store 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const StringLiteralStore = component$((props) => { const state = useStore({ foo: 123 }); return
{state.foo}
; }); export default StringLiteralStore; " `; exports[`qwik > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { useStylesScoped$(STYLES); return (
); }); export default MyComponent; export const STYLES = \` .div-MyComponent { display: flex; flex-direction: column; align-items: stretch; } \`; " `; exports[`qwik > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const StylePropClassAndCss = component$((props) => { useStylesScoped$(STYLES); return (
); }); export default StylePropClassAndCss; export const STYLES = \` .div-StylePropClassAndCss { display: flex; flex-direction: column; align-items: stretch; } \`; " `; exports[`qwik > jsx > Javascript Test > subComponent 1`] = ` "import Foo from \\"./foo-sub-component.jsx\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const SubComponent = component$((props) => { return ; }); export default SubComponent; " `; exports[`qwik > jsx > Javascript Test > svgComponent 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const SvgComponent = component$((props) => { return ( ); }); export default SvgComponent; " `; exports[`qwik > jsx > Javascript Test > typeDependency 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const TypeDependency = component$((props) => { return
{props.foo}
; }); export default TypeDependency; " `; exports[`qwik > jsx > Javascript Test > typeExternalProps 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const TypeExternalProps = component$((props) => { return
Hello {props.name}!
; }); export default TypeExternalProps; " `; exports[`qwik > jsx > Javascript Test > typeExternalStore 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const TypeExternalStore = component$((props) => { const state = useStore({ _name: \\"test\\" }); return
Hello {state._name}!
; }); export default TypeExternalStore; " `; exports[`qwik > jsx > Javascript Test > typeGetterStore 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; export const getName = function getName(props, state, test) { if (state.name === \\"a\\") { return \\"b\\"; } return state.name; }; export const TypeGetterStore = component$((props) => { const test = useComputed$(() => { return \\"test\\"; }); const state = useStore({ name: \\"test\\" }); return
Hello {state.name}!
; }); export default TypeGetterStore; " `; exports[`qwik > jsx > Javascript Test > use-style 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { useStylesScoped$(STYLES); return ; }); export default MyComponent; export const STYLES = \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`; " `; exports[`qwik > jsx > Javascript Test > use-style-and-css 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { useStylesScoped$(STYLES); return ( ); }); export default MyComponent; export const STYLES = \` button { font-size: 12px; outline: 1px solid black; } .button-MyComponent { background: blue; color: white; } \`; " `; exports[`qwik > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { useStylesScoped$(STYLES); return ; }); export default MyComponent; export const STYLES = \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`; " `; exports[`qwik > jsx > Javascript Test > useTarget 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const UseTargetComponent = component$((props) => { const name = useComputed$(() => { const prefix = \\"q\\"; return prefix + \\"foo\\"; }); const state = useStore({ foo: \\"bar\\", lastName: \\"bar\\" }); useVisibleTask$(() => { console.log(state.foo); state.foo = \\"bar\\"; console.log(\\"qwik\\"); state.lastName = \\"baz\\"; console.log(state.foo); state.foo = \\"baz\\"; }); return
{name.value}
; }); export default UseTargetComponent; " `; exports[`qwik > jsx > Javascript Test > webComponent 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; import { register } from \\"swiper/element/bundle\\"; export const MyBasicWebComponent = component$((props) => { useTask$(() => { register(); }); return ( Slide 1 Slide 2 Slide 3 ); }); export default MyBasicWebComponent; " `; exports[`qwik > jsx > Remove Internal mitosis package 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props) => { const state = useStore({ name: \\"PatrickJS\\" }); return (
Hello {state.name}! I can run in React, Qwik, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > Advanced 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyBasicForShowComponent = component$((props: any) => { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"], }); return (
{(state.names || []).map((person, i) => { return (
{i}: {person}
); })} {(state.names || []).map((person) => { return {person}; })} {(state.names || []).map((item) => { return
; })} {( Array.from({ length: 10, }) || [] ).map((_, ee) => { return
{ee}
; })} {( Array.from({ length: 10, }) || [] ).map((item) => { return

{index}

; })} {(state.names || []).map((person, index) => { return ( {person} {index} ); })} {( Array.from({ length: 10, }) || [] ).map((person, count) => { return ( {person} {count} ); })} {(state.names || []).map((person, i) => { return ( {person} {i} ); })} {( Array.from({ length: 10, }) || [] ).map((person, index) => { return ( {person} {index} ); })}
); }); export default MyBasicForShowComponent; " `; exports[`qwik > jsx > Typescript Test > Basic 1`] = ` "import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; export const underscore_fn_name = function underscore_fn_name(props, state) { return \\"bar\\"; }; export const MyBasicComponent = component$((props: MyBasicComponentProps) => { useStylesScoped$(STYLES); const state = useStore({ age: 1, name: \\"Steve\\", sports: [\\"\\"] }); return (
(state.name = myEvent.target.value))} /> Hello! I can run in React, Vue, Solid, or Liquid! >
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > Basic 2`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyBasicForShowComponent = component$((props: any) => { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"], }); return (
{(state.names || []).map((person) => { return person === state.name ? ( <> { state.name = event.target.value + \\" and \\" + person; })} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ) : null; })}
); }); export default MyBasicForShowComponent; " `; exports[`qwik > jsx > Typescript Test > Basic Context 1`] = ` "import { $, Fragment, component$, h, useContext, useContextProvider, useStore, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; export const onChange = function onChange(props, state, myService) { const change = myService.method(\\"change\\"); console.log(change); }; export const MyBasicComponent = component$((props: any) => { const myService = useContext(MyService); const state = useStore({ name: \\"PatrickJS\\" }); useContextProvider(Injector, createInjector()); useVisibleTask$(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }); useTask$(() => { const hi = myService.method(\\"hi\\"); console.log(hi); }); return (
{myService.method(\\"hello\\") + state.name} Hello! I can run in React, Vue, Solid, or Liquid! state.onChange())} />
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { Fragment, component$, h, useStore, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export interface Props { hi: string; bye: string; } export const MyBasicOnMountUpdateComponent = component$((props: Props) => { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"], }); useVisibleTask$(() => { state.name = \\"PatrickJS onMount\\" + props.bye; }); useTask$(() => { state.name = \\"PatrickJS onInit\\" + props.hi; }); return
Hello {state.name}
; }); export default MyBasicOnMountUpdateComponent; " `; exports[`qwik > jsx > Typescript Test > Basic Outputs 1`] = ` "import { Fragment, component$, h, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const MyBasicOutputsComponent = component$((props: any) => { const state = useStore({ name: \\"PatrickJS\\" }); useVisibleTask$(() => { props.onMessageChange(state.name); props.onEvent(props.message); }); return
; }); export default MyBasicOutputsComponent; " `; exports[`qwik > jsx > Typescript Test > Basic Outputs Meta 1`] = ` " /** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Fragment, component$, h, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const MyBasicOutputsComponent = component$((props: any) => { const state = useStore({ name: \\"PatrickJS\\" }); useVisibleTask$(() => { props.onMessageChange(state.name); props.onEvent(props.message); }); return
; }); export default MyBasicOutputsComponent; " `; exports[`qwik > jsx > Typescript Test > BasicAttribute 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { return ; }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; type Props = { children: any; type: string; }; export const MyBooleanAttribute = component$((props: Props) => { return (
{props.children ? ( <> {props.type} ) : null}
); }); export default MyBooleanAttribute; " `; exports[`qwik > jsx > Typescript Test > BasicChildComponent 1`] = ` "import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const log = function log(props, state, message: string) { console.log(message); }; export const MyBasicChildComponent = component$((props: any) => { const state = useStore({ dev: \\"PatrickJS\\", name: \\"Steve\\" }); return (
(state.name = name))} onEvent$={$((event) => state.log(\\"Test\\"))} >
); }); export default MyBasicChildComponent; " `; exports[`qwik > jsx > Typescript Test > BasicFor 1`] = ` "import { $, Fragment, component$, h, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const MyBasicForComponent = component$((props: any) => { const state = useStore({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"], }); useVisibleTask$(() => { console.log(\\"onMount code\\"); }); return (
{(state.names || []).map((person) => { return ( { state.name = event.target.value + \\" and \\" + person; })} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ); })}
); }); export default MyBasicForComponent; " `; exports[`qwik > jsx > Typescript Test > BasicRef 1`] = ` "import { $, Fragment, component$, h, useSignal, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export interface Props { showInput: boolean; } export const onBlur = function onBlur(props, state, inputRef, inputNoArgRef) { // Maintain focus inputRef.value.focus(); }; export const lowerCaseName = function lowerCaseName( props, state, inputRef, inputNoArgRef ) { return state.name.toLowerCase(); }; export const MyBasicRefComponent = component$((props: Props) => { useStylesScoped$(STYLES); const inputRef = useSignal(); const inputNoArgRef = useSignal(); const state = useStore({ name: \\"PatrickJS\\" }); return (
{props.showInput ? ( state.onBlur())} onChange$={$((event) => (state.name = event.target.value))} /> ) : null} Hello {state.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
); }); export default MyBasicRefComponent; export const STYLES = \` .input-MyBasicRefComponent { color: red; } \`; " `; exports[`qwik > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { $, Fragment, component$, h, useSignal } from \\"@builder.io/qwik\\"; export interface Props { showInput: boolean; } export const handlerClick = function handlerClick( props, state, holdValueRef, event: Event ) { event.preventDefault(); console.log(\\"current value\\", holdValueRef.value); holdValueRef.value = holdValueRef.value + \\"JS\\"; }; export const MyBasicRefAssignmentComponent = component$((props: Props) => { const holdValueRef = useSignal(); const state: any = {}; return (
); }); export default MyBasicRefAssignmentComponent; " `; exports[`qwik > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { $, Fragment, component$, h, useSignal, useStore, useTask$, } from \\"@builder.io/qwik\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } export const MyPreviousComponent = component$((props: Props) => { const prevCount = useSignal(); const state = useStore({ count: 0 }); useTask$(({ track }) => { track(() => state.count); prevCount.value = state.count; }); return (

Now: {state.count}, before: {prevCount.value}

); }); export default MyPreviousComponent; " `; exports[`qwik > jsx > Typescript Test > Button 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } export const Button = component$((props: ButtonProps) => { return (
{props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
); }); export default Button; " `; exports[`qwik > jsx > Typescript Test > Columns 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } export const getColumns = function getColumns(props, state) { return props.columns || []; }; export const getGutterSize = function getGutterSize(props, state) { return typeof props.space === \\"number\\" ? props.space || 0 : 20; }; export const getWidth = function getWidth(props, state, index: number) { const columns = getColumns(props, state); return (columns[index] && columns[index].width) || 100 / columns.length; }; export const getColumnCssWidth = function getColumnCssWidth( props, state, index: number ) { const columns = getColumns(props, state); const gutterSize = getGutterSize(props, state); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${getWidth(props, state, index)}% - \${subtractWidth}px)\`; }; export const Column = component$((props: ColumnProps) => { useStylesScoped$(STYLES); const state: any = {}; return (
{(props.columns || []).map((column, index) => { return (
{column.content} {index}
); })}
); }); export default Column; export const STYLES = \` .div-Column { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div-Column { flex-direction: row; } } @media (max-width: 639px) { .div-Column { flex-direction: row-reverse; } } .div-Column-2 { flex-grow: 1; } \`; " `; exports[`qwik > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import { JSX } from \\"../../../../jsx-runtime\\"; import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; export const ContentSlotCode = component$((props: Props) => { return (

); }); export default ContentSlotCode; " `; exports[`qwik > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { JSX } from \\"../../../../jsx-runtime\\"; import { $, Fragment, Slot, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string | JSX.Element; }; export const show = function show(props, state, cls) { props.slotContent ? 1 : \\"\\"; }; export const ContentSlotJsxCode = component$((props: Props) => { const cls = useComputed$(() => { return props.slotContent && props.children ? \`\${state.name}-content\` : \\"\\"; }); const state = useStore({ name: \\"king\\", showContent: false }); return ( <> {props.slotReference ? (
show(props, state, cls))} class={cls.value} > {state.showContent && props.slotContent ? ( {props.content} ) : null}

) : null} ); }); export default ContentSlotJsxCode; " `; exports[`qwik > jsx > Typescript Test > CustomCode 1`] = ` "import { Fragment, component$, h, useSignal, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } export const findAndRunScripts = function findAndRunScripts( props, state, elem ) { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.value && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.value.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (state.scriptsInserted.includes(script.src)) { continue; } state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (state.scriptsRun.includes(script.innerText)) { continue; } try { state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } }; export const CustomCode = component$((props: CustomCodeProps) => { const elem = useSignal(); const state = useStore({ scriptsInserted: [], scriptsRun: [] }); useVisibleTask$(() => { findAndRunScripts(props, state, elem); }); return (
); }); export default CustomCode; " `; exports[`qwik > jsx > Typescript Test > Embed 1`] = ` "import { Fragment, component$, h, useSignal, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } export const findAndRunScripts = function findAndRunScripts( props, state, elem ) { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.value && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.value.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (state.scriptsInserted.includes(script.src)) { continue; } state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (state.scriptsRun.includes(script.innerText)) { continue; } try { state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } }; export const CustomCode = component$((props: CustomCodeProps) => { const elem = useSignal(); const state = useStore({ scriptsInserted: [], scriptsRun: [] }); useVisibleTask$(() => { findAndRunScripts(props, state, elem); }); return (
); }); export default CustomCode; " `; exports[`qwik > jsx > Typescript Test > Form 1`] = ` "import { $, Fragment, component$, h, useComputed$, useSignal, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; export const onSubmit = function onSubmit( props, state, submissionState, formRef, event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && props.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (formRef.value) { formRef.value.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } state.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action!, /* TODO: throw error if no action URL */ { body, headers, method: props.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } state.formErrorMessage = message; } } state.responseData = body; state.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (formRef.value) { formRef.value.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (props.resetFormOnSubmit !== false) { formRef.value.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (props.successUrl) { if (formRef.value) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl, }, }); formRef.value.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (formRef.value) { formRef.value.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } state.responseData = err; state.formState = \\"error\\"; } ); } }; export const FormComponent = component$((props: FormProps) => { useStylesScoped$(STYLES); const submissionState = useComputed$(() => { return (Builder.isEditing && props.previewState) || state.formState; }); const formRef = useSignal(); const state = useStore({ formErrorMessage: \\"\\", formState: \\"unsubmitted\\", responseData: null, }); return (
{ !props.sendWithJs && props.action; })()} method={props.method} name={props.name} onSubmit$={$((event) => onSubmit(props, state, submissionState, formRef, event) )} {...props.attributes} > {props.builderBlock && props.builderBlock.children ? (props.builderBlock?.children || []).map((block, index) => { return ( ); }) : null} {submissionState.value === \\"error\\" ? ( ) : null} {submissionState.value === \\"sending\\" ? ( ) : null} {submissionState.value === \\"error\\" && state.responseData ? (
          {JSON.stringify(state.responseData, null, 2)}
        
) : null} {submissionState.value === \\"success\\" ? ( ) : null}
); }); export default FormComponent; export const STYLES = \` .pre-FormComponent { padding: 10px; color: red; text-align: center; } \`; " `; exports[`qwik > jsx > Typescript Test > Image 1`] = ` "import { $, Fragment, Slot, component$, h, useSignal, useStore, useStylesScoped$, useVisibleTask$, } from \\"@builder.io/qwik\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } export const setLoaded = function setLoaded(props, state, pictureRef) { state.imageLoaded = true; }; export const useLazyLoading = function useLazyLoading( props, state, pictureRef ) { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && state.isBrowser(); }; export const isBrowser = function isBrowser(props, state, pictureRef) { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; export const Image = component$((props: ImageProps) => { useStylesScoped$(STYLES); const pictureRef = useSignal(); const state = useStore({ imageLoaded: false, load: false, scrollListener: null, }); useVisibleTask$(() => { if (useLazyLoading(props, state, pictureRef)) { // throttled scroll capture listener const listener = () => { if (pictureRef.value) { const rect = pictureRef.value.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { state.load = true; state.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; state.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }); return (
{!useLazyLoading(props, state, pictureRef) || state.load ? ( {props.altText} setLoaded(props, state, pictureRef))} srcset={props.srcset} sizes={props.sizes} /> ) : null}
); }); export default Image; export const STYLES = \` .img-Image { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`; " `; exports[`qwik > jsx > Typescript Test > Image State 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const ImgStateComponent = component$((props: any) => { const state = useStore({ canShow: true, images: [\\"http://example.com/qwik.png\\"], }); return (
{(state.images || []).map((item, itemIndex) => { return ( ); })}
); }); export default ImgStateComponent; " `; exports[`qwik > jsx > Typescript Test > Img 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; import { Builder } from \\"@builder.io/sdk\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } export const ImgComponent = component$((props: ImgProps) => { return ( {props.altText} ); }); export default ImgComponent; " `; exports[`qwik > jsx > Typescript Test > Input 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; import { Builder } from \\"@builder.io/sdk\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } export const FormInputComponent = component$((props: FormInputProps) => { return ( props.onChange?.(event.target.value))} /> ); }); export default FormInputComponent; " `; exports[`qwik > jsx > Typescript Test > InputParent 1`] = ` "import FormInputComponent from \\"./input.raw\\"; import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const handleChange = function handleChange(props, state, value: string) { console.log(value); }; export const Stepper = component$((props: any) => { const state: any = {}; return ( handleChange(props, state, value))} > ); }); export default Stepper; " `; exports[`qwik > jsx > Typescript Test > NestedStore 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; type MyStore = { _id?: string; _messageId?: string; }; export const NestedStore = component$((props: any) => { const state = useStore({ _id: \\"abc\\", _messageId: state._id + \\"-message\\", }); return (
Test

Message

); }); export default NestedStore; " `; exports[`qwik > jsx > Typescript Test > RawText 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } export const RawText = component$((props: RawTextProps) => { return ( ); }); export default RawText; " `; exports[`qwik > jsx > Typescript Test > Section 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } export const SectionComponent = component$((props: SectionProps) => { return (
{ props.maxWidth && typeof props.maxWidth === \\"number\\" ? { maxWidth: props.maxWidth, } : undefined; })()} >
); }); export default SectionComponent; " `; exports[`qwik > jsx > Typescript Test > Section 2`] = ` "import { Fragment, Slot, component$, h, useStore } from \\"@builder.io/qwik\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } export const SectionStateComponent = component$((props: SectionProps) => { const state = useStore({ items: [42], max: 42 }); return ( <> {state.max ? (state.items || []).map((item) => { return (
); }) : null} ); }); export default SectionStateComponent; " `; exports[`qwik > jsx > Typescript Test > Select 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; import { Builder } from \\"@builder.io/sdk\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } export const SelectComponent = component$((props: FormSelectProps) => { return ( ); }); export default SelectComponent; " `; exports[`qwik > jsx > Typescript Test > SlotDefault 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string; }; export const SlotCode = component$((props: Props) => { return (
Default content
); }); export default SlotCode; " `; exports[`qwik > jsx > Typescript Test > SlotHtml 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string; }; export const SlotCode = component$((props: Props) => { return (
{
Hello
; })()} >
); }); export default SlotCode; " `; exports[`qwik > jsx > Typescript Test > SlotJsx 1`] = ` "import ContentSlotCode from \\"./content-slot-jsx.raw\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string; }; export const SlotCode = component$((props: Props) => { return (
{
Hello
; })()} >
); }); export default SlotCode; " `; exports[`qwik > jsx > Typescript Test > SlotNamed 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string; }; export const SlotCode = component$((props: Props) => { return (
Default left Default Child
); }); export default SlotCode; " `; exports[`qwik > jsx > Typescript Test > Stamped.io 1`] = ` "import { $, Fragment, component$, h, useStore, useStylesScoped$, useVisibleTask$, } from \\"@builder.io/qwik\\"; import { kebabCase, snakeCase } from \\"lodash\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; export const kebabCaseValue = function kebabCaseValue(props, state) { return kebabCase(\\"testThat\\"); }; export const snakeCaseValue = function snakeCaseValue(props, state) { return snakeCase(\\"testThis\\"); }; export const SmileReviews = component$((props: SmileReviewsProps) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"test\\", reviews: [], showReviewPrompt: false, }); useVisibleTask$(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { state.reviews = data.data; }); }); return (
{state.showReviewPrompt || \\"asdf\\" ? ( <> ) : null} {(state.reviews || []).map((review, index) => { return (
N: {index}
{review.author}
{review.reviewMessage}
); })}
); }); export default SmileReviews; export const STYLES = \` .input-SmileReviews { display: block; } .textarea-SmileReviews { display: block; } .button-SmileReviews { display: block; } .review-SmileReviews { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img-SmileReviews { height: 30px; width: 30px; margin-right: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > StoreComment 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const bar = function bar(props, state) {}; export const StringLiteralStore = component$((props: any) => { const state = useStore({ foo: true }); return {state.foo}; }); export default StringLiteralStore; " `; exports[`qwik > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const foo = function foo(props, state, errors) { return errors; }; export const MyComponent = component$((props: any) => { const state = useStore({ errors: {} }); return {foo(props, state, state.errors)}; }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > StoreWithState 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const bar = function bar(props, state) { return state.foo; }; export const MyComponent = component$((props: any) => { const state = useStore({ foo: false }); return {bar(props, state)}; }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > Submit 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface ButtonProps { attributes?: any; text?: string; } export const SubmitButton = component$((props: ButtonProps) => { return ( ); }); export default SubmitButton; " `; exports[`qwik > jsx > Typescript Test > Text 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; import { Builder } from \\"@builder.io/sdk\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } export const Text = component$((props: TextProps) => { const state = useStore({ name: \\"Decadef20\\" }); return (
my name

' } >
); }); export default Text; " `; exports[`qwik > jsx > Typescript Test > Textarea 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } export const Textarea = component$((props: TextareaProps) => { return ( ); }); export default Textarea; " `; exports[`qwik > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; export const _do = function _do(props, state, id?: string) { state._active = !!id; if (props.onChange) { props.onChange(state._active); } }; export const UseValueAndFnFromStore = component$((props: MyProps) => { const state = useStore({ _active: false, _id: \\"abc\\" }); useTask$(({ track }) => { if (_do.bind(null, props, state)) { _do(props, state, state._id); } }); return
Test
; }); export default UseValueAndFnFromStore; " `; exports[`qwik > jsx > Typescript Test > Video 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } export const Video = component$((props: VideoProps) => { return ( ); }); export default Video; " `; exports[`qwik > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const setName = function setName(props, state, value) { state.name = value; }; export const updateNameWithArrowFn = function updateNameWithArrowFn( props, state, value ) { state.name = value; }; export const MyComponent = component$((props: any) => { const state = useStore({ name: \\"steve\\" }); return
Hello {state.name}
; }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > basicForFragment 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const BasicForFragment = component$((props: any) => { const state = useStore({ id: \\"xyz\\" }); return (
{([\\"a\\", \\"b\\", \\"c\\"] || []).map((option) => { return (
{option}
); })} {([\\"a\\", \\"b\\", \\"c\\"] || []).map((option) => { return (
{option}
); })}
); }); export default BasicForFragment; " `; exports[`qwik > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; export const MyBasicForNoTagRefComponent = component$((props: any) => { const TagNameGetter = useComputed$(() => { return \\"span\\"; }); const state = useStore({ TagName: \\"div\\", name: \\"VincentW\\", tag: \\"span\\", }); return ( Hello {state.name} {(props.actions || []).map((action) => { return ( {action.text} ); })} ); }); export default MyBasicForNoTagRefComponent; " `; exports[`qwik > jsx > Typescript Test > basicForwardRef 1`] = ` "import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } export const MyBasicForwardRefComponent = component$((props: Props) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"PatrickJS\\" }); return (
(state.name = event.target.value))} />
); }); export default MyBasicForwardRefComponent; export const STYLES = \` .input-MyBasicForwardRefComponent { color: red; } \`; " `; exports[`qwik > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` " /** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } export const MyBasicForwardRefComponent = component$((props: Props) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"PatrickJS\\" }); return (
(state.name = event.target.value))} />
); }); export default MyBasicForwardRefComponent; export const STYLES = \` .input-MyBasicForwardRefComponent { color: red; } \`; " `; exports[`qwik > jsx > Typescript Test > basicRefAttributePassing 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Fragment, component$, h, useSignal, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const BasicRefAttributePassingComponent = component$((props: any) => { const buttonRef = useSignal(); useVisibleTask$(() => { console.log(\\"onMount\\"); }); return ; }); export default BasicRefAttributePassingComponent; " `; exports[`qwik > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` " /** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Fragment, component$, h, useSignal } from \\"@builder.io/qwik\\"; export const BasicRefAttributePassingCustomRefComponent = component$( (props: any) => { const buttonRef = useSignal(); return (
); } ); export default BasicRefAttributePassingCustomRefComponent; " `; exports[`qwik > jsx > Typescript Test > class + ClassName + css 1`] = ` "import MyComp from \\"./my-component.jsx\\"; import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > class + css 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > className + css 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > className 1`] = ` "import { JSX } from \\"../../../../jsx-runtime\\"; import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; export const ClassNameCode = component$((props: Props) => { const state = useStore({ bindings: \\"a binding\\" }); return (
Without Binding
With binding
); }); export default ClassNameCode; " `; exports[`qwik > jsx > Typescript Test > classState 1`] = ` "import { Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { useStylesScoped$(STYLES); const state = useStore({ classState: \\"testClassName\\", styleState: { color: \\"red\\", }, }); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > classnameProps 1`] = ` " /** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; type Props = { children: any; className: string; type: string; }; export const MyBasicComponent = component$((props: Props) => { return (
{props.type} Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > complexMeta 1`] = ` " /** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const ComplexMetaRaw = component$((props: any) => { return
; }); export default ComplexMetaRaw; " `; exports[`qwik > jsx > Typescript Test > contentState 1`] = ` "import { Fragment, component$, h, useContextProvider, useStore, } from \\"@builder.io/qwik\\"; import BuilderContext from \\"@dummy/context.js\\"; export const RenderContent = component$((props: any) => { useContextProvider( BuilderContext, useStore({ content: props.content, registeredComponents: props.customComponents, }) ); return
setting context
; }); export default RenderContent; " `; exports[`qwik > jsx > Typescript Test > defaultProps 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } export const Button = component$((props: ButtonProps) => { return (
{props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
); }); export default Button; " `; exports[`qwik > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } export const Button = component$((props: ButtonProps) => { return (
{props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
); }); export default Button; " `; exports[`qwik > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; type Props = { name: string; }; export const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; export const ComponentWithTypes = component$((props: Props) => { return
Hello {props.name || DEFAULT_VALUES.name}
; }); export default ComponentWithTypes; " `; exports[`qwik > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { $, Fragment, component$, h, useStore, useStylesScoped$, } from \\"@builder.io/qwik\\"; export const EventInputAndChange = component$((props: any) => { useStylesScoped$(STYLES); const state = useStore({ name: \\"Steve\\" }); return (
(state.name = event.target.value))} onChange$={$((event) => (state.name = event.target.value))} /> Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default EventInputAndChange; export const STYLES = \` .input-EventInputAndChange { color: red; } \`; " `; exports[`qwik > jsx > Typescript Test > eventProps 1`] = ` "import { EventProps, EventState } from \\"./event-props.type\\"; import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const handleClick = function handleClick(props, state) { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } }; export const EventPropsComponent = component$((props: EventProps) => { const state: any = {}; return ( ); }); export default EventPropsComponent; " `; exports[`qwik > jsx > Typescript Test > expressionState 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ refToUse: !(props.componentRef instanceof Function) ? props.componentRef : null, }); return
{state.refToUse}
; }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > figmaMeta 1`] = ` " /** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const FigmaButton = component$((props: any) => { return ( ); }); export default FigmaButton; " `; exports[`qwik > jsx > Typescript Test > functionProps 1`] = ` "SyntaxError: Identifier expected. (8:98) 6 | export const MyBasicComponent=component$((props:MyBasicComponentProps)=>{ 7 | > 8 | return (

{() => x})()} f1={(()=>{x => x})()} f2={(()=>{x => {}})()} f3={(()=>{function () { | ^ 9 | return x; 10 | }})()} f4={(()=>{function (x) { 11 | return x; ======================================================================== import{Fragment,component$,h}from\\"@builder.io/qwik\\"; export interface MyBasicComponentProps { id: string; } export const MyBasicComponent=component$((props:MyBasicComponentProps)=>{ return (

{() => x})()} f1={(()=>{x => x})()} f2={(()=>{x => {}})()} f3={(()=>{function () { return x; }})()} f4={(()=>{function (x) { return x; }})()} f5={(()=>{function (x) { return; }})()} f6={(()=>{function () { return; }})()} f7={(()=>{(a, b, c) => a + b + c})()}>

)}); export default MyBasicComponent; ========================================================================" `; exports[`qwik > jsx > Typescript Test > getterState 1`] = ` "import { Fragment, component$, h, useComputed$ } from \\"@builder.io/qwik\\"; export interface ButtonProps { foo: string; } export const baz = function baz(props, state, foo2, bar, i: number) { return i + foo2.value.length; }; export const Button = component$((props: ButtonProps) => { const foo2 = useComputed$(() => { return props.foo + \\"foo\\"; }); const bar = useComputed$(() => { return \\"bar\\"; }); const state: any = {}; return (

{foo2.value}

{bar.value}

{baz(props, state, foo2, bar, 1)}

); }); export default Button; " `; exports[`qwik > jsx > Typescript Test > import types 1`] = ` "import { RenderBlockProps, default as RenderBlock, } from \\"./builder-render-block.raw\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; export const getRenderContentProps = function getRenderContentProps( props, state, block, index ) { return { block: block, index: index, }; }; export const RenderContent = component$((props: RenderContentProps) => { const state: any = {}; return ( ); }); export default RenderContent; " `; exports[`qwik > jsx > Typescript Test > layerName 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyLayerNameComponent = component$((props: any) => { useStylesScoped$(STYLES); return (
Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyLayerNameComponent; export const STYLES = \` .layer-name-MyLayerNameComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const MultipleOnUpdate = component$((props: any) => { useTask$(({ track }) => { console.log(\\"Runs on every update/rerender\\"); }); useTask$(({ track }) => { console.log(\\"Runs on every update/rerender as well\\"); }); return
; }); export default MultipleOnUpdate; " `; exports[`qwik > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; export const MultipleOnUpdateWithDeps = component$((props: any) => { const state = useStore({ a: \\"a\\", b: \\"b\\", c: \\"c\\", d: \\"d\\" }); useTask$(({ track }) => { track(() => state.a); track(() => state.b); console.log(\\"Runs when a or b changes\\", state.a, state.b); if (state.a === \\"a\\") { state.a = \\"b\\"; } }); useTask$(({ track }) => { track(() => state.c); track(() => state.d); console.log(\\"Runs when c or d changes\\", state.c, state.d); if (state.a === \\"a\\") { state.a = \\"b\\"; } }); return
; }); export default MultipleOnUpdateWithDeps; " `; exports[`qwik > jsx > Typescript Test > multipleSpreads 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { const state = useStore({ attrs: { hello: \\"world\\", }, }); return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > nestedShow 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; interface Props { conditionA: boolean; conditionB: boolean; } export const NestedShow = component$((props: Props) => { return ( <> {props.conditionA ? ( !props.conditionB ? (
if condition A and condition B
) : (
else-condition-B
) ) : (
else-condition-A
)} ); }); export default NestedShow; " `; exports[`qwik > jsx > Typescript Test > nestedStyles 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const NestedStyles = component$((props: any) => { useStylesScoped$(STYLES); return
Hello world
; }); export default NestedStyles; export const STYLES = \` .div-NestedStyles { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div-NestedStyles { display: block; } } .div-NestedStyles:hover { display: flex; } .div-NestedStyles:active { display: inline; } .div-NestedStyles .nested-selector { display: grid; } .div-NestedStyles .nested-selector:hover { display: block; } .div-NestedStyles.nested-selector:active { display: inline-block; } \`; " `; exports[`qwik > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } export const MyNormalizedLayerNamesComponent = component$( (props: MyNormalizedLayerNamesComponentProps) => { useStylesScoped$(STYLES); return (
Emoji
Dashes
CamelCase
Special chars
Special chars with dashes
Single Number
Multiple Numbers
Chars with numbers at end
Chars with numbers at start
Numnbers separated by dash
Emoji
Number
); } ); export default MyNormalizedLayerNamesComponent; export const STYLES = \` .css-0-MyNormalizedLayerNamesComponent { margin: 10px; } .css-123-MyNormalizedLayerNamesComponent { padding: 10px; } .name-123-MyNormalizedLayerNamesComponent { border: 1px solid; } .name-MyNormalizedLayerNamesComponent { color: red; } .name-789-MyNormalizedLayerNamesComponent { background: blue; } .div-MyNormalizedLayerNamesComponent { background: blue; } \`; " `; exports[`qwik > jsx > Typescript Test > onEvent 1`] = ` "import { $, Fragment, component$, h, useOn, useSignal, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const foo = function foo(props, state, elem, event) { console.log(\\"test2\\"); }; export const Embed = component$((props: any) => { const elem = useSignal(); const state: any = {}; useOn( \\"initEditingBldr\\", $((event, element) => { console.log(\\"test\\"); foo(props, state, elem, event); }) as Parameters[1] ); useVisibleTask$(() => { elem.value.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }); return (
Test
); }); export default Embed; " `; exports[`qwik > jsx > Typescript Test > onInit & onMount 1`] = ` "import { Fragment, component$, h, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const OnInit = component$((props: any) => { useVisibleTask$(() => { console.log(\\"onMount\\"); }); useTask$(() => { console.log(\\"onInit\\"); }); return
; }); export default OnInit; " `; exports[`qwik > jsx > Typescript Test > onInit 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; export const OnInit = component$((props: Props) => { const state = useStore({ name: \\"\\" }); useTask$(() => { state.name = defaultValues.name || props.name; console.log(\\"set defaults with props\\"); }); return
Default name defined by parent {state.name}
; }); export default OnInit; " `; exports[`qwik > jsx > Typescript Test > onInitPlain 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const OnInitPlain = component$((props: any) => { useTask$(() => { console.log(\\"onInit\\"); }); return
; }); export default OnInitPlain; " `; exports[`qwik > jsx > Typescript Test > onMount 1`] = ` "import { Fragment, component$, h, useVisibleTask$ } from \\"@builder.io/qwik\\"; export const Comp = component$((props: any) => { useVisibleTask$(() => { console.log(\\"Runs on mount\\"); }); return
; }); export default Comp; " `; exports[`qwik > jsx > Typescript Test > onMountMultiple 1`] = ` "import { Fragment, component$, h, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const Comp = component$((props: any) => { useVisibleTask$(() => { console.log(\\"Runs on mount\\"); }); useVisibleTask$(() => { console.log(\\"Another one runs on Mount\\"); }); useTask$(() => { console.log(\\"SSR runs on Mount\\"); }); return
; }); export default Comp; " `; exports[`qwik > jsx > Typescript Test > onUpdate 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const OnUpdate = component$((props: any) => { useTask$(({ track }) => { console.log(\\"Runs on every update/rerender\\"); }); return
; }); export default OnUpdate; " `; exports[`qwik > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { Fragment, component$, h, useStore, useTask$ } from \\"@builder.io/qwik\\"; type Props = { size: string; }; export const OnUpdateWithDeps = component$((props: Props) => { const state = useStore({ a: \\"a\\", b: \\"b\\" }); useTask$(({ track }) => { track(() => state.a); track(() => state.b); track(() => props.size); console.log(\\"Runs when a, b or size changes\\", state.a, state.b, props.size); }); return
; }); export default OnUpdateWithDeps; " `; exports[`qwik > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } export const b = 3; export const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} export const MyBasicComponent = component$((props: MyBasicComponentProps) => { return
; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > preserveTyping 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } export const MyBasicComponent = component$((props: MyBasicComponentProps) => { return (
Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > propsDestructure 1`] = ` "import { Fragment, Slot, component$, h, useStore } from \\"@builder.io/qwik\\"; type Props = { children: any; type: string; }; export const MyBasicComponent = component$((props: Props) => { const state = useStore({ name: \\"Decadef20\\" }); return (
{props.type} Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > propsInterface 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; interface Person { name: string; age?: number; } export const MyBasicComponent = component$((props: Person | never) => { return (
Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > propsType 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; type Person = { name: string; age?: number; }; export const MyBasicComponent = component$((props: Person) => { return (
Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
); }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; export const foo = function foo(props, state, params) {}; export const bar = function bar(props, state) {}; export const zoo = function zoo(props, state) { const params = { cb: state.bar, }; }; export const OnUpdate = component$((props: any) => { const state: any = {}; useTask$(({ track }) => { state.foo({ someOption: state.bar, }); }); return
; }); export default OnUpdate; " `; exports[`qwik > jsx > Typescript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import { BuilderBlock } from \\"../../types/builder-block.js\\"; import { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles.jsx\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import { RenderComponentProps, default as RenderComponent, } from \\"./render-component.jsx\\"; import RenderRepeatedBlock from \\"./render-repeated-block.jsx\\"; import { RepeatData } from \\"./types.js\\"; import { Fragment, component$, h, useComputed$ } from \\"@builder.io/qwik\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; export const RenderBlock = component$((props: RenderBlockProps) => { const component = useComputed$(() => { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); const tag = useComputed$(() => { return getBlockTag(useBlock.value); }); const useBlock = useComputed$(() => { return repeatItemData.value ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); }); const actions = useComputed$(() => { return getBlockActions({ block: useBlock.value, state: props.context.state, context: props.context.context, }); }); const attributes = useComputed$(() => { const blockProperties = getBlockProperties(useBlock.value); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock.value, context: props.context, blockStyles: blockProperties.style, }), } : {}), }; }); const shouldWrap = useComputed$(() => { return !component.value?.noWrap; }); const renderComponentProps = useComputed$(() => { return { blockChildren: useChildren.value, componentRef: component.value?.component, componentOptions: { ...getBlockComponentOptions(useBlock.value), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap.value ? {} : { attributes: { ...attributes.value, ...actions.value }, }), customBreakpoints: childrenContext.value?.content?.meta?.breakpoints, }, context: childrenContext.value, }; }); const useChildren = useComputed$(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return useBlock.value.children ?? []; }); const childrenWithoutParentComponent = useComputed$(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component.value?.component && !repeatItemData.value; return shouldRenderChildrenOutsideRef ? useChildren.value : []; }); const repeatItemData = useComputed$(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); const inheritedTextStyles = useComputed$(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock.value, context: props.context, blockStyles: attributes.value.style, }); return extractTextStyles(styles); }); const childrenContext = useComputed$(() => { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles.value, }; }); const renderComponentTag = useComputed$(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); const state: any = {}; return ( <> {shouldWrap.value ? ( <> {isEmptyHtmlElement(tag.value) ? ( ) : null} {!isEmptyHtmlElement(tag.value) && repeatItemData.value ? (repeatItemData.value || []).map((data, index) => { return ( ); }) : null} {!isEmptyHtmlElement(tag.value) && !repeatItemData.value ? ( {(childrenWithoutParentComponent.value || []).map((child) => { return ( ); })} {(childrenWithoutParentComponent.value || []).map((child) => { return ( ); })} ) : null} ) : ( )} ); }); export default RenderBlock; " `; exports[`qwik > jsx > Typescript Test > renderContentExample 1`] = ` "import { $, Fragment, component$, h, useContextProvider, useStore, useStylesScoped$, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; import RenderBlocks from \\"@dummy/RenderBlocks.jsx\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; export const RenderContent = component$((props: Props) => { useStylesScoped$(STYLES); useContextProvider( BuilderContext, useStore({ content: (() => { return 3; })(), registeredComponents: (() => { return 4; })(), }) ); useVisibleTask$(() => { sendComponentsToVisualEditor(props.customComponents); }); useTask$(({ track }) => { track(() => props.content); dispatchNewContentToVisualEditor(props.content); }); return (
trackClick(props.content.id))} >
); }); export default RenderContent; export const STYLES = \` .div-RenderContent { display: flex; flex-direction: columns; } \`; " `; exports[`qwik > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } export const Button = component$((props: ButtonProps) => { return ( {props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null} ); }); export default Button; " `; exports[`qwik > jsx > Typescript Test > rootShow 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export interface RenderStylesProps { foo: string; } export const RenderStyles = component$((props: RenderStylesProps) => { return <>{props.foo === \\"bar\\" ?
Bar
:
Foo
}; }); export default RenderStyles; " `; exports[`qwik > jsx > Typescript Test > self-referencing component 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { return (
{props.name} {props.name === \\"Batman\\" ? ( ) : null}
); }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { return (
{props.name} {props.name === \\"Batman\\" ? (
Wayne
) : null}
); }); export default MyComponent; " `; exports[`qwik > jsx > Typescript Test > setState 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const someFn = function someFn(props, state) { state.n[0] = \\"123\\"; }; export const SetState = component$((props: any) => { const state = useStore({ n: [\\"123\\"] }); return (
); }); export default SetState; " `; exports[`qwik > jsx > Typescript Test > showExpressions 1`] = ` "SyntaxError: Expression expected. (9:115) 7 | export const ShowWithOtherValues=component$((props:Props)=>{ 8 | > 9 | return (
{props.conditionA?<>Content0:<>ContentA}{props.conditionA?<>ContentA:null}{props.conditionA?:<>ContentA}{props.conditionA?<>ContentB:<>{undefined}}{props.conditionA?<>{undefined}:<>ContentB}{props.conditionA?<>ContentC:null}{props.conditionA?:<>ContentC}{props.conditionA?<>ContentD:null}{props.conditionA?:<>ContentD}{props.conditionA?<>ContentE:<>hello}{props.conditionA?<>hello:<>ContentE}{props.conditionA?<>ContentF:<>123}{props.conditionA?<>123:<>ContentF}{props.conditionA === 'Default'?<>4mb:props.conditionB === 'Complete'?<>20mb:<>9mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?<>20mb:<>9mb:<>4mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?
complete
:<>9mb:props.conditionC === 'Complete'?<>dff:
complete else
}
)}); | ^ 10 | 11 | export default ShowWithOtherValues; ======================================================================== import{Fragment,component$,h}from\\"@builder.io/qwik\\"; interface Props { conditionA: boolean; conditionB: boolean; } export const ShowWithOtherValues=component$((props:Props)=>{ return (
{props.conditionA?<>Content0:<>ContentA}{props.conditionA?<>ContentA:null}{props.conditionA?:<>ContentA}{props.conditionA?<>ContentB:<>{undefined}}{props.conditionA?<>{undefined}:<>ContentB}{props.conditionA?<>ContentC:null}{props.conditionA?:<>ContentC}{props.conditionA?<>ContentD:null}{props.conditionA?:<>ContentD}{props.conditionA?<>ContentE:<>hello}{props.conditionA?<>hello:<>ContentE}{props.conditionA?<>ContentF:<>123}{props.conditionA?<>123:<>ContentF}{props.conditionA === 'Default'?<>4mb:props.conditionB === 'Complete'?<>20mb:<>9mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?<>20mb:<>9mb:<>4mb}{props.conditionA === 'Default'?props.conditionB === 'Complete'?
complete
:<>9mb:props.conditionC === 'Complete'?<>dff:
complete else
}
)}); export default ShowWithOtherValues; ========================================================================" `; exports[`qwik > jsx > Typescript Test > showWithFor 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; interface Props { conditionA: boolean; items: string[]; } export const NestedShow = component$((props: Props) => { return ( <> {props.conditionA ? ( (props.items || []).map((item, idx) => { return
{item}
; }) ) : (
else-condition-A
)} ); }); export default NestedShow; " `; exports[`qwik > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; interface Props { conditionA: boolean; } export const ShowWithOtherValues = component$((props: Props) => { return (
{props.conditionA ? <>ContentA : null} {props.conditionA ? <>ContentB : <>{undefined}} {props.conditionA ? <>ContentC : null} {props.conditionA ? <>ContentD : null} {props.conditionA ? <>ContentE : <>hello} {props.conditionA ? <>ContentF : <>123}
); }); export default ShowWithOtherValues; " `; exports[`qwik > jsx > Typescript Test > showWithRootText 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; interface Props { conditionA: boolean; } export const ShowRootText = component$((props: Props) => { return <>{props.conditionA ? <>ContentA :
else-condition-A
}; }); export default ShowRootText; " `; exports[`qwik > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { Fragment, component$, h, useStylesScoped$, useTask$, } from \\"@builder.io/qwik\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; export const MyBasicComponent = component$((props: Props) => { useStylesScoped$(STYLES); useTask$(({ track }) => { track(() => props.id); track(() => props.foo.bar.baz); console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.bar.baz); }); return (
{props.id} {props.foo.bar.baz}
); }); export default MyBasicComponent; export const STYLES = \` .div-MyBasicComponent { padding: 10px; } \`; " `; exports[`qwik > jsx > Typescript Test > spreadAttrs 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > spreadProps 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const MyBasicComponent = component$((props: any) => { return ; }); export default MyBasicComponent; " `; exports[`qwik > jsx > Typescript Test > store-async-function 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const arrowFunction = async function arrowFunction() { return Promise.resolve(); }; export const namedFunction = async function namedFunction() { return Promise.resolve(); }; export const fetchUsers = async function fetchUsers() { return Promise.resolve(); }; export const StringLiteralStore = component$((props: any) => { const state: any = {}; return
; }); export default StringLiteralStore; " `; exports[`qwik > jsx > Typescript Test > string-literal-store 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const StringLiteralStore = component$((props: any) => { const state = useStore({ foo: 123 }); return
{state.foo}
; }); export default StringLiteralStore; " `; exports[`qwik > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { useStylesScoped$(STYLES); return (
); }); export default MyComponent; export const STYLES = \` .div-MyComponent { display: flex; flex-direction: column; align-items: stretch; } \`; " `; exports[`qwik > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const StylePropClassAndCss = component$((props: any) => { useStylesScoped$(STYLES); return (
); }); export default StylePropClassAndCss; export const STYLES = \` .div-StylePropClassAndCss { display: flex; flex-direction: column; align-items: stretch; } \`; " `; exports[`qwik > jsx > Typescript Test > subComponent 1`] = ` "import Foo from \\"./foo-sub-component.jsx\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const SubComponent = component$((props: any) => { return ; }); export default SubComponent; " `; exports[`qwik > jsx > Typescript Test > svgComponent 1`] = ` "import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const SvgComponent = component$((props: any) => { return ( ); }); export default SvgComponent; " `; exports[`qwik > jsx > Typescript Test > typeDependency 1`] = ` "import { Foo } from \\"./foo-type\\"; import { Foo as Foo2 } from \\"./type-export.jsx\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; export const TypeDependency = component$((props: TypeDependencyProps) => { return
{props.foo}
; }); export default TypeDependency; " `; exports[`qwik > jsx > Typescript Test > typeExternalProps 1`] = ` "import { FooProps } from \\"./foo-props\\"; import { Fragment, component$, h } from \\"@builder.io/qwik\\"; export const TypeExternalProps = component$((props: FooProps) => { return
Hello {props.name}!
; }); export default TypeExternalProps; " `; exports[`qwik > jsx > Typescript Test > typeExternalStore 1`] = ` "import { FooStore } from \\"./foo-store\\"; import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const TypeExternalStore = component$((props: any) => { const state = useStore({ _name: \\"test\\" }); return
Hello {state._name}!
; }); export default TypeExternalStore; " `; exports[`qwik > jsx > Typescript Test > typeGetterStore 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; export const getName = function getName(props, state, test) { if (state.name === \\"a\\") { return \\"b\\"; } return state.name; }; export const TypeGetterStore = component$((props: any) => { const test = useComputed$(() => { return \\"test\\"; }); const state = useStore({ name: \\"test\\" }); return
Hello {state.name}!
; }); export default TypeGetterStore; " `; exports[`qwik > jsx > Typescript Test > use-style 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { useStylesScoped$(STYLES); return ; }); export default MyComponent; export const STYLES = \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`; " `; exports[`qwik > jsx > Typescript Test > use-style-and-css 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { useStylesScoped$(STYLES); return ( ); }); export default MyComponent; export const STYLES = \` button { font-size: 12px; outline: 1px solid black; } .button-MyComponent { background: blue; color: white; } \`; " `; exports[`qwik > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { useStylesScoped$(STYLES); return ; }); export default MyComponent; export const STYLES = \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`; " `; exports[`qwik > jsx > Typescript Test > useTarget 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const UseTargetComponent = component$((props: any) => { const name = useComputed$(() => { const prefix = \\"q\\"; return prefix + \\"foo\\"; }); const state = useStore({ foo: \\"bar\\", lastName: \\"bar\\" }); useVisibleTask$(() => { console.log(state.foo); state.foo = \\"bar\\"; console.log(\\"qwik\\"); state.lastName = \\"baz\\"; console.log(state.foo); state.foo = \\"baz\\"; }); return
{name.value}
; }); export default UseTargetComponent; " `; exports[`qwik > jsx > Typescript Test > webComponent 1`] = ` "import { Fragment, component$, h, useTask$ } from \\"@builder.io/qwik\\"; import { register } from \\"swiper/element/bundle\\"; export const MyBasicWebComponent = component$((props: any) => { useTask$(() => { register(); }); return ( Slide 1 Slide 2 Slide 3 ); }); export default MyBasicWebComponent; " `; exports[`qwik > mount 1`] = ` { "high.cjs": "const __proxyMerge__ = (exports.__proxyMerge__ = function __proxyMerge__( state, local ) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }); ", "low.cjs": "const Fragment = require(\\"@builder.io/qwik\\").Fragment; const h = require(\\"@builder.io/qwik\\").h; const qrl = require(\\"@builder.io/qwik\\").qrl; const useStore = require(\\"@builder.io/qwik\\").useStore; const useStylesScopedQrl = require(\\"@builder.io/qwik\\").useStylesScopedQrl; exports.MyComponentStyles = \`.cxfmert{all:unset;display:flex;flex-direction:column;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:20px;line-height:normal;height:auto;text-align:center}\`; exports.MyComponentOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); if (!state.hasOwnProperty(\\"title\\")) state.title = '\\"Default title value\\"'; if (!state.hasOwnProperty(\\"hiliteTitle\\")) state.hiliteTitle = true; var _virtual_index = 1234; _virtual_index; return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); useStylesScopedQrl(qrl(\\"./low.js\\", \\"MyComponentStyles\\", [])); return h( \\"button\\", { \\"builder-id\\": \\"builder-192569f8d0a943398ec7ab9c327e104f\\", class: \\"cxfmert builder-block\\", style: { backgroundColor: (() => { try { return state.hilitTitle ? \\"red\\" : \\"gray\\"; } catch (err) { console.warn(\\"Builder code error\\", err); } })(), }, }, state.title ); }; const __proxyMerge__ = (exports.__proxyMerge__ = function __proxyMerge__( state, local ) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }); ", "med.cjs": "const componentQrl = require(\\"@builder.io/qwik\\").componentQrl; const qrl = require(\\"@builder.io/qwik\\").qrl; exports.MyComponent = componentQrl(qrl(\\"./low.js\\", \\"MyComponentOnMount\\", [])); const __proxyMerge__ = (exports.__proxyMerge__ = function __proxyMerge__( state, local ) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }); ", } `; exports[`qwik > page-with-symbol 1`] = ` { "high.js": "export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "low.js": "import { SymbolHeaderSymbol } from \\"./med.js\\"; import { Fragment, h, qrl, useStore, useStylesScopedQrl, } from \\"@builder.io/qwik\\"; export const MyComponentStyles = \`.c713ty2{display:flex;flex-direction:column;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:20px}.cxvcn5v{display:flex;flex-direction:column;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:20px;line-height:normal;height:auto;text-align:center;padding-top:1em;padding-bottom:1em;font-weight:700;font-size:24px}\`; export const MyComponentOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); useStylesScopedQrl(qrl(\\"./low.js\\", \\"MyComponentStyles\\", [])); return h( Fragment, null, h(SymbolHeaderSymbol, { class: \\"c713ty2\\", symbol: { model: \\"page\\", entry: \\"36da1052e57e47f084ea8b1fbde248e4\\", data: {}, }, }), h(\\"div\\", { class: \\"cxvcn5v\\" }, \\"

Main Text

\\") ); }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "med.js": "import { componentQrl, qrl } from \\"@builder.io/qwik\\"; export const MyComponent = componentQrl( qrl(\\"./low.js\\", \\"MyComponentOnMount\\", []) ); export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", } `; exports[`qwik > show-hide 1`] = `{}`; exports[`qwik > show-hide 2`] = ` { "high.jsx": "import { useLexicalScope } from \\"@builder.io/qwik\\"; export const MyComponent_onClick_0 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); try { return (state.visible = !state.visible); } catch (err) { console.warn(\\"Builder code error\\", err); } }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "low.jsx": "export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "med.jsx": "import { Fragment, componentQrl, h, qrl, useStore, useStylesScopedQrl, } from \\"@builder.io/qwik\\"; export const MyComponentStyles = \`.c9nzze9{display:flex;flex-direction:column;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:20px;appearance:none;padding-top:15px;padding-bottom:15px;padding-left:25px;padding-right:25px;background-color:#3898EC;color:white;border-radius:4px;text-align:center;cursor:pointer}.cjrqfb1{display:flex;flex-direction:column;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:20px;line-height:normal;height:auto;text-align:center}.c837pqv{display:flex;flex-direction:column;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:20px;width:100%;min-height:20px;min-width:20px;overflow:hidden}\`; export const MyComponentOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); if (!state.hasOwnProperty(\\"visible\\")) state.visible = false; return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); useStylesScopedQrl(qrl(\\"./med.js\\", \\"MyComponentStyles\\", [])); return ( <> {state.visible ? (

Show when visible=true

) : null} {!state.visible ? (

Show when visible=false

) : null} {!visible ? ( ) : null} ); }; export const MyComponent = componentQrl( qrl(\\"./med.js\\", \\"MyComponentOnMount\\", []) ); export const CoreButton = function CoreButton(props) { const hasLink = !!props.link; const hProps = { dangerouslySetInnerHTML: props.text || \\"\\", href: props.link, target: props.openInNewTab ? \\"_blank\\" : \\"_self\\", class: props.class, }; return h( hasLink ? \\"a\\" : props.tagName$ || \\"span\\", __passThroughProps__(hProps, props) ); }; export const __passThroughProps__ = function __passThroughProps__( dstProps, srcProps ) { for (const key in srcProps) { if ( Object.prototype.hasOwnProperty.call(srcProps, key) && ((key.startsWith(\\"on\\") && key.endsWith(\\"$\\")) || key == \\"style\\") ) { dstProps[key] = srcProps[key]; } } return dstProps; }; export const Image = function Image(props) { let jsx = props.children || []; let image = props.image; if (image) { const isBuilderIoImage = !!(image || \\"\\").match(/\\\\.builder\\\\.io/) && !props.noWebp; const isPixel = props.builderBlock?.id.startsWith(\\"builder-pixel-\\"); const imgProps = { src: props.image, style: \`object-fit:\${props.backgroundSize || \\"cover\\"};object-position:\${ props.backgroundPosition || \\"center\\" };\` + (props.aspectRatio ? \\"position:absolute;height:100%;width:100%;top:0;left:0\\" : \\"\\"), sizes: props.sizes, alt: props.altText, role: !props.altText ? \\"presentation\\" : void 0, loading: isPixel ? \\"eager\\" : \\"lazy\\", srcset: void 0, }; const qwikBugWorkaround = (imgProps2) => Object.keys(imgProps2).forEach( (k) => imgProps2[k] === void 0 && delete imgProps2[k] ); qwikBugWorkaround(imgProps); if (isBuilderIoImage) { const webpImage = updateQueryParam(image, \\"format\\", \\"webp\\"); const srcset = [\\"100\\", \\"200\\", \\"400\\", \\"800\\", \\"1200\\", \\"1600\\", \\"2000\\"] .concat(props.srcsetSizes ? String(props.srcsetSizes).split(\\" \\") : []) .map((size) => { return updateQueryParam(webpImage, \\"width\\", size) + \\" \\" + size + \\"w\\"; }) .concat(tryAppendWidth(image)) .join(\\",\\"); imgProps.srcset = srcset; jsx = jsx = [ h(\\"picture\\", {}, [ h(\\"source\\", { type: \\"image/webp\\", srcset }), h(\\"img\\", imgProps, jsx), ]), ]; } else { jsx = [h(\\"img\\", imgProps, jsx)]; } if ( props.aspectRatio && !(props.fitContent && props.children && props.children.length) ) { const sizingDiv = h(\\"div\\", { class: \\"builder-image-sizer\\", style: \`width:100%;padding-top:\${ (props.aspectRatio || 1) * 100 }%;pointer-events:none;font-size:0\`, }); jsx.push(sizingDiv); } } const children = props.children ? [jsx].concat(props.children) : [jsx]; return h( props.href ? \\"a\\" : \\"div\\", __passThroughProps__({ href: props.href, class: props.class }, props), children ); function updateQueryParam(uri = \\"\\", key, value) { const re = new RegExp(\\"([?&])\\" + key + \\"=.*?(&|$)\\", \\"i\\"); const separator = uri.indexOf(\\"?\\") !== -1 ? \\"&\\" : \\"?\\"; if (uri.match(re)) { return uri.replace( re, \\"$1\\" + key + \\"=\\" + encodeURIComponent(value) + \\"$2\\" ); } return uri + separator + key + \\"=\\" + encodeURIComponent(value); } function tryAppendWidth(url) { const match = url.match(/[?&]width=(\\\\d+)/); const width = match && match[1]; if (width) { return [url + \\" \\" + width + \\"w\\"]; } return []; } }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", } `; exports[`qwik > svelte > Javascript Test > basic 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ name: \\"Steve\\" }); return (
(state.name = event.target.value))} value={state.name} /> Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > bindGroup 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ fillings: [], tortilla: \\"Plain\\" }); return (
{ state.tortilla === \\"Plain\\"; })()} onChange$={$((event) => (state.tortilla = event.target.value))} /> { state.tortilla === \\"Whole wheat\\"; })()} onChange$={$((event) => (state.tortilla = event.target.value))} /> { state.tortilla === \\"Spinach\\"; })()} onChange$={$((event) => (state.tortilla = event.target.value))} />

{ state.fillings === \\"Rice\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} /> { state.fillings === \\"Beans\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} /> { state.fillings === \\"Cheese\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} /> { state.fillings === \\"Guac (extra)\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} />

Tortilla: {state.tortilla}

Fillings: {state.fillings}

); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > bindProperty 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ value: \\"hello\\" }); return ; }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > classDirective 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ focus: true }); return ( ); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > context 1`] = ` "import { Fragment, component$, h, useContext, useContextProvider, useStore, } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const disabled = useContext(\\"disabled\\"); const state = useStore({ activeTab: 0 }); useContextProvider(\\"activeTab\\", state.activeTab); return
{state.activeTab}
; }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > each 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ numbers: [\\"one\\", \\"two\\", \\"three\\"] }); return (
    {(state.numbers || []).map((num) => { return
  • {num}
  • ; })}
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > eventHandlers 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const log = function log(props, state, msg = \\"hello\\") { console.log(msg); }; export const MyComponent = component$((props) => { const state = {}; return (
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > html 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ html: \\"bold\\" }); return
; }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > ifElse 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const toggle = function toggle(props, state) { state.show = !state.show; }; export const MyComponent = component$((props) => { const state = useStore({ show: true }); return ( <> {state.show ? ( ) : ( )} ); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > imports 1`] = ` "import Button from \\"./Button.jsx\\"; import { Fragment, Slot, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ disabled: false }); return (
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { Fragment, component$, h, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { useVisibleTask$(() => { console.log(\\"onMount\\"); }); useTask$(({ track }) => { console.log(\\"onAfterUpdate\\"); }); return
; }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > reactive 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const lowercaseName = useComputed$(() => { return state.name.toLowerCase(); }); const state = useStore({ name: \\"Steve\\" }); return (
Lowercase: {lowercaseName.value}
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { $, Fragment, component$, h, useStore, useTask$, } from \\"@builder.io/qwik\\"; export const calculateResult = function calculateResult(props, state, a_, b_) { state.result = a_ * b_; }; export const MyComponent = component$((props) => { const state = useStore({ a: 2, b: 5, result: null }); useTask$(({ track }) => { track(() => state.a); track(() => state.b); state.calculateResult(state.a, state.b); }); return (
(state.a = event.target.value))} value={state.a} /> (state.b = event.target.value))} value={state.b} /> Result: {state.result}
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > slots 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { return (
default
default
); }); export default MyComponent; " `; exports[`qwik > svelte > Javascript Test > style 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { useStylesScoped$(STYLES); return ; }); export default MyComponent; export const STYLES = \` input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`; " `; exports[`qwik > svelte > Javascript Test > textExpressions 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props) => { const state = useStore({ a: 5, b: 12 }); return (
normal: {state.a + state.b}
conditional {state.a > 2 ? \\"hello\\" : \\"bye\\"}
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > basic 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ name: \\"Steve\\" }); return (
(state.name = event.target.value))} value={state.name} /> Hello! I can run in React, Vue, Solid, or Liquid!
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > bindGroup 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ fillings: [], tortilla: \\"Plain\\" }); return (
{ state.tortilla === \\"Plain\\"; })()} onChange$={$((event) => (state.tortilla = event.target.value))} /> { state.tortilla === \\"Whole wheat\\"; })()} onChange$={$((event) => (state.tortilla = event.target.value))} /> { state.tortilla === \\"Spinach\\"; })()} onChange$={$((event) => (state.tortilla = event.target.value))} />

{ state.fillings === \\"Rice\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} /> { state.fillings === \\"Beans\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} /> { state.fillings === \\"Cheese\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} /> { state.fillings === \\"Guac (extra)\\"; })()} onChange$={$((event) => (state.fillings = event.target.value))} />

Tortilla: {state.tortilla}

Fillings: {state.fillings}

); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > bindProperty 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ value: \\"hello\\" }); return ; }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > classDirective 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ focus: true }); return ( ); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > context 1`] = ` "import { Fragment, component$, h, useContext, useContextProvider, useStore, } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const disabled = useContext(\\"disabled\\"); const state = useStore({ activeTab: 0 }); useContextProvider(\\"activeTab\\", state.activeTab); return
{state.activeTab}
; }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > each 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ numbers: [\\"one\\", \\"two\\", \\"three\\"] }); return (
    {(state.numbers || []).map((num) => { return
  • {num}
  • ; })}
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > eventHandlers 1`] = ` "import { $, Fragment, component$, h } from \\"@builder.io/qwik\\"; export const log = function log(props, state, msg = \\"hello\\") { console.log(msg); }; export const MyComponent = component$((props: any) => { const state: any = {}; return (
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > html 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ html: \\"bold\\" }); return
; }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > ifElse 1`] = ` "import { $, Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const toggle = function toggle(props, state) { state.show = !state.show; }; export const MyComponent = component$((props: any) => { const state = useStore({ show: true }); return ( <> {state.show ? ( ) : ( )} ); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > imports 1`] = ` "import Button from \\"./Button.jsx\\"; import { Fragment, Slot, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ disabled: false }); return (
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { Fragment, component$, h, useTask$, useVisibleTask$, } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { useVisibleTask$(() => { console.log(\\"onMount\\"); }); useTask$(({ track }) => { console.log(\\"onAfterUpdate\\"); }); return
; }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > reactive 1`] = ` "import { Fragment, component$, h, useComputed$, useStore, } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const lowercaseName = useComputed$(() => { return state.name.toLowerCase(); }); const state = useStore({ name: \\"Steve\\" }); return (
Lowercase: {lowercaseName.value}
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { $, Fragment, component$, h, useStore, useTask$, } from \\"@builder.io/qwik\\"; export const calculateResult = function calculateResult(props, state, a_, b_) { state.result = a_ * b_; }; export const MyComponent = component$((props: any) => { const state = useStore({ a: 2, b: 5, result: null }); useTask$(({ track }) => { track(() => state.a); track(() => state.b); state.calculateResult(state.a, state.b); }); return (
(state.a = event.target.value))} value={state.a} /> (state.b = event.target.value))} value={state.b} /> Result: {state.result}
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > slots 1`] = ` "import { Fragment, Slot, component$, h } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { return (
default
default
); }); export default MyComponent; " `; exports[`qwik > svelte > Typescript Test > style 1`] = ` "import { Fragment, component$, h, useStylesScoped$ } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { useStylesScoped$(STYLES); return ; }); export default MyComponent; export const STYLES = \` input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`; " `; exports[`qwik > svelte > Typescript Test > textExpressions 1`] = ` "import { Fragment, component$, h, useStore } from \\"@builder.io/qwik\\"; export const MyComponent = component$((props: any) => { const state = useStore({ a: 5, b: 12 }); return (
normal: {state.a + state.b}
conditional {state.a > 2 ? \\"hello\\" : \\"bye\\"}
); }); export default MyComponent; " `; exports[`qwik > svg 1`] = ` { "high.js": "export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "low.js": "import { Fragment, h, qrl, useStore, useStylesScopedQrl, } from \\"@builder.io/qwik\\"; export const MyComponentStyles = \`.c8xlkz3{display:flex;flex-direction:column;align-items:stretch;position:relative;flex-shrink:0;box-sizing:border-box;margin-top:auto;margin-bottom:auto}\`; export const MyComponentOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); useStylesScopedQrl(qrl(\\"./low.js\\", \\"MyComponentStyles\\", [])); return h( \\"div\\", { \\"builder-id\\": \\"builder-5bdc93549f3a4c30b28e85aa1fd91a1c\\", class: \\"c8xlkz3 builder-block\\", }, h(\\"div\\", { key: \\"builder-5bdc93549f3a4c30b28e85aa1fd91a1c\\", dangerouslySetInnerHTML: '\\\\n \\\\n \\\\n\\\\n', }) ); }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "med.js": "import { componentQrl, qrl } from \\"@builder.io/qwik\\"; export const MyComponent = componentQrl( qrl(\\"./low.js\\", \\"MyComponentOnMount\\", []) ); export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", } `; exports[`qwik > todo > Todo.cjs 1`] = ` { "high.cjs": "const useLexicalScope = require(\\"@builder.io/qwik\\").useLexicalScope; exports.Todo_onClick_0 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.toggle(); }; exports.Todo_onDblClick_1 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.editing = true; }; exports.Todo_onClick_2 = (event) => { todosState.todos.splice(todosState.todos.indexOf(props.todo)); }; exports.Todo_onBlur_3 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.editing = false; }; exports.Todo_onKeyUp_4 = (event) => { props.todo.text = event.target.value; }; const __proxyMerge__ = (exports.__proxyMerge__ = function __proxyMerge__( state, local ) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }); ", "low.cjs": "const __proxyMerge__ = (exports.__proxyMerge__ = function __proxyMerge__( state, local ) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }); ", "med.cjs": "const Fragment = require(\\"@builder.io/qwik\\").Fragment; const componentQrl = require(\\"@builder.io/qwik\\").componentQrl; const h = require(\\"@builder.io/qwik\\").h; const qrl = require(\\"@builder.io/qwik\\").qrl; const useStore = require(\\"@builder.io/qwik\\").useStore; exports.TodoOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); return h( \\"li\\", { class: \`\${props.todo.completed ? \\"completed\\" : \\"\\"} \${ state.editing ? \\"editing\\" : \\"\\" }\`, }, h( \\"div\\", { class: \\"view\\" }, h(\\"input\\", { class: \\"toggle\\", type: \\"checkbox\\", checked: props.todo.completed, onClick$: qrl(\\"./high.js\\", \\"Todo_onClick_0\\", [s, l]), }), h( \\"label\\", { onDblClick$: qrl(\\"./high.js\\", \\"Todo_onDblClick_1\\", [s, l]) }, props.todo.text ), h(\\"button\\", { class: \\"destroy\\", onClick$: qrl(\\"./high.js\\", \\"Todo_onClick_2\\", [s, l]), }) ), state.editing ? h(\\"input\\", { class: \\"edit\\", value: props.todo.text, onBlur$: qrl(\\"./high.js\\", \\"Todo_onBlur_3\\", [s, l]), onKeyUp$: qrl(\\"./high.js\\", \\"Todo_onKeyUp_4\\", [s, l]), }) : null ); }; exports.Todo = componentQrl(qrl(\\"./med.js\\", \\"TodoOnMount\\", [])); const __proxyMerge__ = (exports.__proxyMerge__ = function __proxyMerge__( state, local ) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }); ", } `; exports[`qwik > todo > Todo.js 1`] = ` { "high.js": "import { useLexicalScope } from \\"@builder.io/qwik\\"; export const Todo_onClick_0 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.toggle(); }; export const Todo_onDblClick_1 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.editing = true; }; export const Todo_onClick_2 = (event) => { todosState.todos.splice(todosState.todos.indexOf(props.todo)); }; export const Todo_onBlur_3 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.editing = false; }; export const Todo_onKeyUp_4 = (event) => { props.todo.text = event.target.value; }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "low.js": "export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "med.js": "import { Fragment, componentQrl, h, qrl, useStore } from \\"@builder.io/qwik\\"; export const TodoOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); return h( \\"li\\", { class: \`\${props.todo.completed ? \\"completed\\" : \\"\\"} \${ state.editing ? \\"editing\\" : \\"\\" }\`, }, h( \\"div\\", { class: \\"view\\" }, h(\\"input\\", { class: \\"toggle\\", type: \\"checkbox\\", checked: props.todo.completed, onClick$: qrl(\\"./high.js\\", \\"Todo_onClick_0\\", [s, l]), }), h( \\"label\\", { onDblClick$: qrl(\\"./high.js\\", \\"Todo_onDblClick_1\\", [s, l]) }, props.todo.text ), h(\\"button\\", { class: \\"destroy\\", onClick$: qrl(\\"./high.js\\", \\"Todo_onClick_2\\", [s, l]), }) ), state.editing ? h(\\"input\\", { class: \\"edit\\", value: props.todo.text, onBlur$: qrl(\\"./high.js\\", \\"Todo_onBlur_3\\", [s, l]), onKeyUp$: qrl(\\"./high.js\\", \\"Todo_onKeyUp_4\\", [s, l]), }) : null ); }; export const Todo = componentQrl(qrl(\\"./med.js\\", \\"TodoOnMount\\", [])); export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", } `; exports[`qwik > todo > Todo.tsx 1`] = ` { "high.tsx": "import { useLexicalScope } from \\"@builder.io/qwik\\"; export const Todo_onClick_0 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.toggle(); }; export const Todo_onDblClick_1 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.editing = true; }; export const Todo_onClick_2 = (event) => { todosState.todos.splice(todosState.todos.indexOf(props.todo)); }; export const Todo_onBlur_3 = (event) => { const [s, l] = useLexicalScope(); const state = __proxyMerge__(s, l); state.editing = false; }; export const Todo_onKeyUp_4 = (event) => { props.todo.text = event.target.value; }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "low.tsx": "export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "med.tsx": "import { Fragment, componentQrl, h, qrl, useStore } from \\"@builder.io/qwik\\"; export const TodoOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); return (
  • {state.editing ? ( ) : null}
  • ); }; export const Todo = componentQrl(qrl(\\"./med.js\\", \\"TodoOnMount\\", [])); export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", } `; exports[`qwik > todos > Todo.tsx 1`] = ` { "high.tsx": "export const Todos_onClick_0 = (event) => { const newValue = !todosState.allCompleted; for (const todoItem of todosState.todos) { todoItem.completed = newValue; } }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "low.tsx": "import { Header, Todo } from \\"./med.js\\"; import { Fragment, h, qrl, useStore } from \\"@builder.io/qwik\\"; export const TodosOnMount = (p) => { const s = useStore( () => { const state = Object.assign( {}, structuredClone( typeof __STATE__ === \\"object\\" && __STATE__[p.serverStateId] ), p ); return state; }, { deep: true } ); const l = {}; const state = __proxyMerge__(s, l); return (
    Hello
    {todosState.todos.length ? ( ) : null}
      {(todosState.todos || []).map( ((todo) => { const l = { ...this, todosItem: todo == null ? {} : todo, todo: todo, }; const state = __proxyMerge__(s, l); return ; }).bind(l) )}
    ); }; export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", "med.tsx": "import { componentQrl, h, qrl } from \\"@builder.io/qwik\\"; export const Todos = componentQrl( qrl(\\"./low.js\\", \\"TodosOnMount\\", []) ); export const __proxyMerge__ = function __proxyMerge__(state, local) { return new Proxy(state, { get: (obj, prop) => { if (local && prop in local) { return local[prop]; } else { return state[prop]; } }, set: (obj, prop, value) => { obj[prop] = value; return true; }, }); }; ", } `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/react-native.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`React Native > Vaild react-native styles 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props) { const [classState, setClassState] = useState(() => \\"testClassName\\"); return ( Hey world Flex container Testing unsupported properties ); } const styles = StyleSheet.create({ view1: { backgroundColor: \\"#971f1f\\", paddingTop: 20, paddingRight: 20, paddingBottom: 20, paddingLeft: 20, borderRadius: 10, borderWidth: 2, borderColor: \\"blue\\", borderStyle: \\"solid\\", fontSize: 16, fontWeight: \\"bold\\", fontFamily: \\"Arial\\", }, view2: { marginTop: 10, marginRight: 15, marginBottom: 10, marginLeft: 15, display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"center\\", justifyContent: \\"space-between\\", width: \\"100%\\", height: 200, color: \\"green\\", fontSize: 20, }, view3: { opacity: \\"0.8\\", transform: \\"scale(1.1)\\" }, }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > AdvancedRef 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; function MyBasicRefComponent(props) { const inputRef = useRef(null); const inputNoArgRef = useRef(null); const [name, setName] = useState(() => \\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef.current.focus(); } function lowerCaseName() { return name.toLowerCase(); } useEffect(() => { console.log(\\"Received an update\\"); }, [inputRef.current, inputNoArgRef.current]); return ( {props.showInput ? ( <> onBlur()} onChange={(event) => setName(event.target.value)} style={styles.textInput1} /> Choose a car: GR Supra GR 86 ) : null} Hello {lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicRefComponent; " `; exports[`React Native > jsx > Javascript Test > Basic 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; function MyBasicComponent(props) { const [name, setName] = useState(() => \\"Steve\\"); function underscore_fn_name() { return \\"bar\\"; } const [age, setAge] = useState(() => 1); const [sports, setSports] = useState(() => [\\"\\"]); return ( setName(myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! > ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > Basic Context 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState, useContext, useRef, useEffect } from \\"react\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; function MyBasicComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); function onChange() { const change = myService.method(\\"change\\"); console.log(change); } const myService = useContext(MyService); const hasInitialized = useRef(false); if (!hasInitialized.current) { const hi = myService.method(\\"hi\\"); console.log(hi); hasInitialized.current = true; } useEffect(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }, []); return ( {myService.method(\\"hello\\") + name} Hello! I can run in React, Vue, Solid, or Liquid! onChange()} /> ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; function MyBasicOnMountUpdateComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); const [names, setNames] = useState(() => [\\"Steve\\", \\"PatrickJS\\"]); const hasInitialized = useRef(false); if (!hasInitialized.current) { setName(\\"PatrickJS onInit\\" + props.hi); hasInitialized.current = true; } useEffect(() => { setName(\\"PatrickJS onMount\\" + props.bye); }, []); return ( Hello {name} ); } export default MyBasicOnMountUpdateComponent; " `; exports[`React Native > jsx > Javascript Test > Basic Outputs 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicOutputsComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); useEffect(() => { props.onMessageChange(name); props.onEvent(props.message); }, []); return ; } export default MyBasicOutputsComponent; " `; exports[`React Native > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicOutputsComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); useEffect(() => { props.onMessageChange(name); props.onEvent(props.message); }, []); return ; } export default MyBasicOutputsComponent; " `; exports[`React Native > jsx > Javascript Test > BasicAttribute 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyComponent(props) { return ; } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; function MyBooleanAttribute(props) { return ( {props.children ? ( <> {props.children} {props.type} ) : null} ); } export default MyBooleanAttribute; " `; exports[`React Native > jsx > Javascript Test > BasicChildComponent 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; function MyBasicChildComponent(props) { const [name, setName] = useState(() => \\"Steve\\"); const [dev, setDev] = useState(() => \\"PatrickJS\\"); function log(message) { console.log(message); } return ( setName(name)} onEvent={(event) => log(\\"Test\\")} /> ); } export default MyBasicChildComponent; " `; exports[`React Native > jsx > Javascript Test > BasicFor 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicForComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); const [names, setNames] = useState(() => [\\"Steve\\", \\"PatrickJS\\"]); useEffect(() => { console.log(\\"onMount code\\"); }, []); return ( {names?.map((person) => ( <> { setName(event.target.value + \\" and \\" + person); }} /> Hello {person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ))} ); } export default MyBasicForComponent; " `; exports[`React Native > jsx > Javascript Test > BasicRef 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState, useRef } from \\"react\\"; function MyBasicRefComponent(props) { const inputRef = useRef(null); const inputNoArgRef = useRef(null); const [name, setName] = useState(() => \\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef.current?.focus(); } function lowerCaseName() { return name.toLowerCase(); } return ( {props.showInput ? ( <> onBlur()} onChange={(event) => setName(event.target.value)} style={styles.textInput1} /> Choose a car: GR Supra GR 86 ) : null} Hello {lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicRefComponent; " `; exports[`React Native > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useRef } from \\"react\\"; function MyBasicRefAssignmentComponent(props) { const holdValueRef = useRef(\\"Patrick\\"); function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", holdValueRef.current); holdValueRef.current = holdValueRef.current + \\"JS\\"; } return ( ); } export default MyBasicRefAssignmentComponent; " `; exports[`React Native > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } function MyPreviousComponent(props) { const [count, setCount] = useState(() => 0); const prevCount = useRef(count); useEffect(() => { prevCount.current = count; }, [count]); return ( Now: {count} , before: {prevCount.current} ); } export default MyPreviousComponent; " `; exports[`React Native > jsx > Javascript Test > Button 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; function Button(props) { return ( {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Javascript Test > Columns 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function Column(props) { function getColumns() { return props.columns || []; } function getGutterSize() { return typeof props.space === \\"number\\" ? props.space || 0 : 20; } function getWidth(index) { const columns = getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } function getColumnCssWidth(index) { const columns = getColumns(); const gutterSize = getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${getWidth(index)}% - \${subtractWidth}px)\`; } return ( {props.columns?.map((column, index) => ( {column.content} {index} ))} ); } const styles = StyleSheet.create({ view1: { display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"stretch\\" }, view2: { flexGrow: \\"1\\" }, }); export default Column; " `; exports[`React Native > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function ContentSlotCode(props) { return ( <>{props.slotTesting} <>{props.children} ); } export default ContentSlotCode; " `; exports[`React Native > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import * as React from \\"react\\"; import { View, Text, Pressable } from \\"react-native\\"; import { useState } from \\"react\\"; function ContentSlotJsxCode(props) { props = { content: \\"\\", slotReference: undefined, slotContent: undefined, ...props, }; const [name, setName] = useState(() => \\"king\\"); const [showContent, setShowContent] = useState(() => false); function cls() { return props.slotContent && props.children ? \`\${name}-content\` : \\"\\"; } function show() { props.slotContent ? 1 : \\"\\"; } return ( <> {props.slotReference ? ( <> show()} > {showContent && props.slotContent ? ( <>{props.content || {props.content}} ) : null} {props.children} ) : null} ); } export default ContentSlotJsxCode; " `; exports[`React Native > jsx > Javascript Test > CustomCode 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; function CustomCode(props) { const elem = useRef(null); const [scriptsInserted, setScriptsInserted] = useState(() => []); const [scriptsRun, setScriptsRun] = useState(() => []); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted.includes(script.src)) { continue; } scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun.includes(script.innerText)) { continue; } try { scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } useEffect(() => { findAndRunScripts(); }, []); return ; } export default CustomCode; " `; exports[`React Native > jsx > Javascript Test > Embed 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; function CustomCode(props) { const elem = useRef(null); const [scriptsInserted, setScriptsInserted] = useState(() => []); const [scriptsRun, setScriptsRun] = useState(() => []); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted.includes(script.src)) { continue; } scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun.includes(script.innerText)) { continue; } try { scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } useEffect(() => { findAndRunScripts(); }, []); return ; } export default CustomCode; " `; exports[`React Native > jsx > Javascript Test > Form 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useState, useRef } from \\"react\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; function FormComponent(props) { const formRef = useRef(null); const [formState, setFormState] = useState(() => \\"unsubmitted\\"); const [responseData, setResponseData] = useState(() => null); const [formErrorMessage, setFormErrorMessage] = useState(() => \\"\\"); function submissionState() { return (Builder.isEditing && props.previewState) || formState; } function onSubmit(event) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !( sendWithJs && props.action?.includes(\\"zapier.com\\") ) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body } }); if (formRef.current) { formRef.current.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } setFormState(\\"sending\\"); const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action /* TODO: throw error if no action URL */, { body, headers, method: props.method || \\"post\\" } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } setFormErrorMessage(message); } } setResponseData(body); setFormState(res.ok ? \\"success\\" : \\"error\\"); if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body }, }); if (formRef.current) { formRef.current.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if ( props.resetFormOnSubmit !== false ) { formRef.current.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if ( props.successUrl ) { if (formRef.current) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl }, }); formRef.current.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err }, }); if (formRef.current) { formRef.current.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } setResponseData(err); setFormState(\\"error\\"); } ); } } return ( onSubmit(event)} {...props.attributes} > {props.builderBlock && props.builderBlock.children ? ( <> {props.builderBlock?.children?.map((block, index) => ( ))} ) : null} {submissionState() === \\"error\\" ? ( ) : null} {submissionState() === \\"sending\\" ? ( ) : null} {submissionState() === \\"error\\" && responseData ? ( {JSON.stringify(responseData, null, 2)} ) : null} {submissionState() === \\"success\\" ? ( ) : null} ); } const styles = StyleSheet.create({ view1: { padding: 10, color: \\"red\\", textAlign: \\"center\\" }, }); export default FormComponent; " `; exports[`React Native > jsx > Javascript Test > Image 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Image, Text } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; function Image(props) { const pictureRef = useRef(null); const [scrollListener, setScrollListener] = useState(() => null); const [imageLoaded, setImageLoaded] = useState(() => false); function setLoaded() { setImageLoaded(true); } function useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && isBrowser(); } function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); } const [load, setLoad] = useState(() => false); useEffect(() => { if (useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (pictureRef.current) { const rect = pictureRef.current.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { setLoad(true); setScrollListener(null); window.removeEventListener(\\"scroll\\", listener); } } }; setScrollListener(listener); window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }, []); useEffect(() => { return () => { if (scrollListener) { window.removeEventListener(\\"scroll\\", scrollListener); } }; }, []); return ( {!useLazyLoading() || load ? ( {props.altText} setLoaded()} srcset={props.srcset} sizes={props.sizes} style={styles.image1} /> ) : null} {props.children} ); } const styles = StyleSheet.create({ image1: { opacity: \\"1\\", transition: \\"opacity 0.2s ease-in-out\\", objectFit: \\"cover\\", objectPosition: \\"center\\", }, }); export default Image; " `; exports[`React Native > jsx > Javascript Test > Image State 1`] = ` "import * as React from \\"react\\"; import { View, Image } from \\"react-native\\"; import { useState } from \\"react\\"; function ImgStateComponent(props) { const [canShow, setCanShow] = useState(() => true); const [images, setImages] = useState(() => [\\"http://example.com/qwik.png\\"]); return ( {images?.map((item, itemIndex) => ( ))} ); } export default ImgStateComponent; " `; exports[`React Native > jsx > Javascript Test > Img 1`] = ` "import * as React from \\"react\\"; import { StyleSheet, Image } from \\"react-native\\"; import { Builder } from \\"@builder.io/sdk\\"; function ImgComponent(props) { return ( {props.altText} ); } export default ImgComponent; " `; exports[`React Native > jsx > Javascript Test > Input 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { Builder } from \\"@builder.io/sdk\\"; function FormInputComponent(props) { return ( props.onChange?.(event.target.value)} /> ); } export default FormInputComponent; " `; exports[`React Native > jsx > Javascript Test > InputParent 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import FormInputComponent from \\"./input.raw\\"; function Stepper(props) { function handleChange(value) { console.log(value); } return ( handleChange(value)} /> ); } export default Stepper; " `; exports[`React Native > jsx > Javascript Test > NestedStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function NestedStore(props) { const [_id, set_id] = useState(() => \\"abc\\"); const [_messageId, set_messageId] = useState(() => _id + \\"-message\\"); return ( Test Message ); } export default NestedStore; " `; exports[`React Native > jsx > Javascript Test > RawText 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function RawText(props) { return ; } export default RawText; " `; exports[`React Native > jsx > Javascript Test > Section 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function SectionComponent(props) { return ( {props.children} ); } export default SectionComponent; " `; exports[`React Native > jsx > Javascript Test > Select 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { Builder } from \\"@builder.io/sdk\\"; function SelectComponent(props) { return ( {props.options?.map((option, index) => ( {option.name || option.value} ))} ); } export default SelectComponent; " `; exports[`React Native > jsx > Javascript Test > SlotDefault 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function SlotCode(props) { return ( <> {props.children || ( Default content )} ); } export default SlotCode; " `; exports[`React Native > jsx > Javascript Test > SlotHtml 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props) { return ( Hello
    }> ); } export default SlotCode; " `; exports[`React Native > jsx > Javascript Test > SlotJsx 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props) { return ( Hello } /> ); } export default SlotCode; " `; exports[`React Native > jsx > Javascript Test > SlotNamed 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function SlotCode(props) { return ( <>{props.myAwesomeSlot} <>{props.top} <>{props.left || Default left} <>{props.children || Default Child} ); } export default SlotCode; " `; exports[`React Native > jsx > Javascript Test > Stamped.io 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Image, Text, TextInput, Button } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; import { kebabCase, snakeCase } from \\"lodash\\"; function SmileReviews(props) { const [reviews, setReviews] = useState(() => []); const [name, setName] = useState(() => \\"test\\"); const [showReviewPrompt, setShowReviewPrompt] = useState(() => false); function kebabCaseValue() { return kebabCase(\\"testThat\\"); } function snakeCaseValue() { return snakeCase(\\"testThis\\"); } useEffect(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { setReviews(data.data); }); }, []); return ( {showReviewPrompt || \\"asdf\\" ? ( <> ) : null} {reviews?.map((review, index) => ( N: {index} {review.author} {review.reviewMessage} ))} ); } const styles = StyleSheet.create({ view1: { margin: 10, padding: 10, background: \\"white\\", display: \\"flex\\", borderRadius: 5, boxShadow: \\"0 2px 5px rgba(0, 0, 0, 0.1)\\", WebkitFontSmoothing: \\"antialiased\\", }, image1: { height: 30, width: 30, marginRight: 10 }, }); export default SmileReviews; " `; exports[`React Native > jsx > Javascript Test > StoreComment 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function StringLiteralStore(props) { const [foo, setFoo] = useState(() => true); function bar() {} return ( <> {foo} ); } export default StringLiteralStore; " `; exports[`React Native > jsx > Javascript Test > StoreShadowVars 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [errors, setErrors] = useState(() => ({})); function foo(errors) { return errors; } return ( <> {foo(errors)} ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > StoreWithState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [foo, setFoo] = useState(() => false); function bar() { return foo; } return ( <> {bar()} ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > Submit 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function SubmitButton(props) { return ( ); } export default SubmitButton; " `; exports[`React Native > jsx > Javascript Test > Text 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; import { Builder } from \\"@builder.io/sdk\\"; function Text(props) { const [name, setName] = useState(() => \\"Decadef20\\"); return ( my name

    ', }} /> ); } export default Text; " `; exports[`React Native > jsx > Javascript Test > Textarea 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function Textarea(props) { return ( ); } export default Textarea; " `; exports[`React Native > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function UseValueAndFnFromStore(props) { const [_id, set_id] = useState(() => \\"abc\\"); const [_active, set_active] = useState(() => false); function _do(id) { set_active(!!id); if (props.onChange) { props.onChange(_active); } } useEffect(() => { if (_do) { _do(_id); } }); return ( Test ); } export default UseValueAndFnFromStore; " `; exports[`React Native > jsx > Javascript Test > Video 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet } from \\"react-native\\"; function Video(props) { return ( ); } export default Video; " `; exports[`React Native > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [name, setName] = useState(() => \\"steve\\"); function setName(value) { setName(value); } function updateNameWithArrowFn(value) { setName(value); } return ( Hello {name} ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > basicForFragment 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function BasicForFragment(props) { const [id, setId] = useState(() => \\"xyz\\"); return ( {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => ( {option} ))} {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => ( {option} ))} {[\\"d\\", \\"e\\", \\"f\\"]?.map((option) => ( {option} ))} ); } export default BasicForFragment; " `; exports[`React Native > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicForNoTagRefComponent(props) { const [name, setName] = useState(() => \\"VincentW\\"); const [TagName, setTagName] = useState(() => \\"div\\"); function TagNameGetter() { return \\"span\\"; } const [Tag, setTag] = useState(() => \\"span\\"); const TagNameGetterRef = TagNameGetter(); return ( Hello {name} {props.actions?.map((action) => ( {action.text} ))} ); } export default MyBasicForNoTagRefComponent; " `; exports[`React Native > jsx > Javascript Test > basicForwardRef 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, TextInput } from \\"react-native\\"; import { useState, forwardRef } from \\"react\\"; const MyBasicForwardRefComponent = forwardRef( function MyBasicForwardRefComponent(props, inputRef) { const [name, setName] = useState(() => \\"PatrickJS\\"); return ( setName(event.target.value)} style={styles.textInput1} /> ); } ); const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicForwardRefComponent; " `; exports[`React Native > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import * as React from \\"react\\"; import { View, StyleSheet, TextInput } from \\"react-native\\"; import { useState, forwardRef } from \\"react\\"; const MyBasicForwardRefComponent = forwardRef( function MyBasicForwardRefComponent(props, inputRef) { const [name, setName] = useState(() => \\"PatrickJS\\"); return ( setName(event.target.value)} style={styles.textInput1} /> ); } ); const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicForwardRefComponent; " `; exports[`React Native > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicOnUpdateReturnComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); useEffect(() => { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { setName(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; }, [name]); return ( Hello! {name} ); } export default MyBasicOnUpdateReturnComponent; " `; exports[`React Native > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useRef, useEffect } from \\"react\\"; function BasicRefAttributePassingComponent(props) { const buttonRef = useRef(null); useEffect(() => { console.log(\\"onMount\\"); }, []); return ( ); } export default BasicRefAttributePassingComponent; " `; exports[`React Native > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useRef } from \\"react\\"; function BasicRefAttributePassingCustomRefComponent(props) { const buttonRef = useRef(null); return ( ); } export default BasicRefAttributePassingCustomRefComponent; " `; exports[`React Native > jsx > Javascript Test > class + ClassName + css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import MyComp from \\"./my-component\\"; function MyBasicComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > class + css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyBasicComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > className + css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyBasicComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > className 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function ClassNameCode(props) { const [bindings, setBindings] = useState(() => \\"a binding\\"); return ( Without Binding With binding ); } export default ClassNameCode; " `; exports[`React Native > jsx > Javascript Test > classState 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props) { const [classState, setClassState] = useState(() => \\"testClassName\\"); const [styleState, setStyleState] = useState(() => ({ color: \\"red\\", })); return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyBasicComponent(props) { return ( {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import * as React from \\"react\\"; import { View } from \\"react-native\\"; function ComplexMetaRaw(props) { return ; } export default ComplexMetaRaw; " `; exports[`React Native > jsx > Javascript Test > componentWithContext 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> {foo.value} ); } export default ComponentWithContext; " `; exports[`React Native > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> <> {foo.value} other ); } export default ComponentWithContext; " `; exports[`React Native > jsx > Javascript Test > contentState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; import BuilderContext from \\"@dummy/context.js\\"; function RenderContent(props) { return ( setting context ); } export default RenderContent; " `; exports[`React Native > jsx > Javascript Test > defaultProps 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; function Button(props) { props = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, ...props, }; return ( {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; function Button(props) { props = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, ...props, }; return ( {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; const DEFAULT_VALUES = { name: \\"Sami\\", }; function ComponentWithTypes(props) { return ( Hello {props.name || DEFAULT_VALUES.name} ); } export default ComponentWithTypes; " `; exports[`React Native > jsx > Javascript Test > eventInputAndChange 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function EventInputAndChange(props) { const [name, setName] = useState(() => \\"Steve\\"); return ( setName(event.target.value)} onChange={(event) => setName(event.target.value)} style={styles.textInput1} /> Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default EventInputAndChange; " `; exports[`React Native > jsx > Javascript Test > eventProps 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function EventPropsComponent(props) { function handleClick() { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } } return ( ); } export default EventPropsComponent; " `; exports[`React Native > jsx > Javascript Test > expressionState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [refToUse, setRefToUse] = useState(() => !(props.componentRef instanceof Function) ? props.componentRef : null ); return ( {refToUse} ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function FigmaButton(props) { return ( ); } export default FigmaButton; " `; exports[`React Native > jsx > Javascript Test > functionProps 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function MyBasicComponent(props) { return ( x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} /> ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > getterState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function Button(props) { function foo2() { return props.foo + \\"foo\\"; } function bar() { return \\"bar\\"; } function baz(i) { return i + foo2().length; } return ( {foo2()} {bar()} {baz(1)} ); } export default Button; " `; exports[`React Native > jsx > Javascript Test > import types 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import RenderBlock from \\"./builder-render-block.raw\\"; function RenderContent(props) { function getRenderContentProps(block, index) { return { block: block, index: index, }; } return ( ); } export default RenderContent; " `; exports[`React Native > jsx > Javascript Test > inputToTextInputRN 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [name, setName] = useState(() => \\"Steve\\"); return ( setName(event.target.value)} style={styles.textInput1} /> Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > layerName 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyLayerNameComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyLayerNameComponent; " `; exports[`React Native > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function MultipleOnUpdate(props) { useEffect(() => { console.log(\\"Runs on every update/rerender\\"); }); useEffect(() => { console.log(\\"Runs on every update/rerender as well\\"); }); return ; } export default MultipleOnUpdate; " `; exports[`React Native > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MultipleOnUpdateWithDeps(props) { const [a, setA] = useState(() => \\"a\\"); const [b, setB] = useState(() => \\"b\\"); const [c, setC] = useState(() => \\"c\\"); const [d, setD] = useState(() => \\"d\\"); useEffect(() => { console.log(\\"Runs when a or b changes\\", a, b); if (a === \\"a\\") { setA(\\"b\\"); } }, [a, b]); useEffect(() => { console.log(\\"Runs when c or d changes\\", c, d); if (a === \\"a\\") { setA(\\"b\\"); } }, [c, d]); return ; } export default MultipleOnUpdateWithDeps; " `; exports[`React Native > jsx > Javascript Test > multipleSpreads 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props) { const [attrs, setAttrs] = useState(() => ({ hello: \\"world\\", })); return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > nestedShow 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function NestedShow(props) { return ( <> {props.conditionA ? ( <> {!props.conditionB ? ( if condition A and condition B ) : ( else-condition-B )} ) : ( else-condition-A )} ); } export default NestedShow; " `; exports[`React Native > jsx > Javascript Test > nestedStyles 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function NestedStyles(props) { return ( Hello world ); } const styles = StyleSheet.create({ view1: { display: \\"flex\\", \\"--bar\\": \\"red\\", color: \\"var(--bar)\\", \\"&:hover\\": { display: \\"flex\\" }, \\":active\\": { display: \\"inline\\" }, \\".nested-selector\\": { display: \\"grid\\" }, \\".nested-selector:hover\\": { display: \\"block\\" }, \\"&.nested-selector:active\\": { display: \\"inline-block\\" }, }, }); export default NestedStyles; " `; exports[`React Native > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyNormalizedLayerNamesComponent(props) { return ( Emoji Dashes CamelCase Special chars Special chars with dashes Single Number Multiple Numbers Chars with numbers at end Chars with numbers at start Numnbers separated by dash Emoji Number ); } const styles = StyleSheet.create({ view1: { margin: 10 }, view2: { padding: 10 }, view3: { border: \\"1px solid\\" }, view4: { color: \\"red\\" }, view5: { background: \\"blue\\" }, view6: { background: \\"blue\\" }, }); export default MyNormalizedLayerNamesComponent; " `; exports[`React Native > jsx > Javascript Test > onClickToPressable 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props) { return ( ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > onEvent 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useRef, useEffect } from \\"react\\"; function Embed(props) { const elem = useRef(null); function foo(event) { console.log(\\"test2\\"); } function elem_onInitEditingBldr(event) { console.log(\\"test\\"); foo(event); } useEffect(() => { elem.current?.addEventListener(\\"initEditingBldr\\", elem_onInitEditingBldr); return () => elem.current?.removeEventListener( \\"initEditingBldr\\", elem_onInitEditingBldr ); }, []); useEffect(() => { elem.current.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }, []); return ( Test ); } export default Embed; " `; exports[`React Native > jsx > Javascript Test > onInit & onMount 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useRef, useEffect } from \\"react\\"; function OnInit(props) { const hasInitialized = useRef(false); if (!hasInitialized.current) { console.log(\\"onInit\\"); hasInitialized.current = true; } useEffect(() => { console.log(\\"onMount\\"); }, []); return ; } export default OnInit; " `; exports[`React Native > jsx > Javascript Test > onInit 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useRef } from \\"react\\"; export const defaultValues = { name: \\"PatrickJS\\", }; function OnInit(props) { const [name, setName] = useState(() => \\"\\"); const hasInitialized = useRef(false); if (!hasInitialized.current) { setName(defaultValues.name || props.name); console.log(\\"set defaults with props\\"); hasInitialized.current = true; } return ( Default name defined by parent {name} ); } export default OnInit; " `; exports[`React Native > jsx > Javascript Test > onInitPlain 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useRef } from \\"react\\"; function OnInitPlain(props) { const hasInitialized = useRef(false); if (!hasInitialized.current) { console.log(\\"onInit\\"); hasInitialized.current = true; } return ; } export default OnInitPlain; " `; exports[`React Native > jsx > Javascript Test > onMount 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function Comp(props) { useEffect(() => { console.log(\\"Runs on mount\\"); }, []); useEffect(() => { return () => { console.log(\\"Runs on unMount\\"); }; }, []); return ; } export default Comp; " `; exports[`React Native > jsx > Javascript Test > onMountMultiple 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function Comp(props) { useEffect(() => { console.log(\\"Runs on mount\\"); }, []); useEffect(() => { console.log(\\"Another one runs on Mount\\"); }, []); useEffect(() => { console.log(\\"SSR runs on Mount\\"); }, []); return ; } export default Comp; " `; exports[`React Native > jsx > Javascript Test > onUpdate 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function OnUpdate(props) { useEffect(() => { console.log(\\"Runs on every update/rerender\\"); }); return ; } export default OnUpdate; " `; exports[`React Native > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function OnUpdateWithDeps(props) { const [a, setA] = useState(() => \\"a\\"); const [b, setB] = useState(() => \\"b\\"); useEffect(() => { console.log(\\"Runs when a, b or size changes\\", a, b, props.size); }, [a, b, props.size]); return ; } export default OnUpdateWithDeps; " `; exports[`React Native > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} function MyBasicComponent(props) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > preserveTyping 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyBasicComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! {props.name} ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > propsDestructure 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props) { const [name, setName] = useState(() => \\"Decadef20\\"); return ( {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > propsInterface 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyBasicComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! {props.name} ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > propsType 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyBasicComponent(props) { return ( Hello! I can run in React, Vue, Solid, or Liquid! {props.name} ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function OnUpdate(props) { function foo(params) {} function bar() {} function zoo() { const params = { cb: bar, }; } useEffect(() => { foo({ someOption: bar, }); }); return ; } export default OnUpdate; " `; exports[`React Native > jsx > Javascript Test > renderBlock 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import { useState } from \\"react\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component\\"; import RenderRepeatedBlock from \\"./render-repeated-block\\"; function RenderBlock(props) { function component() { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } function tag() { return getBlockTag(useBlock()); } function useBlock() { return repeatItemData() ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); } function actions() { return getBlockActions({ block: useBlock(), state: props.context.state, context: props.context.context, }); } function attributes() { const blockProperties = getBlockProperties(useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: blockProperties.style, }), } : {}), }; } function shouldWrap() { return !component?.()?.noWrap; } function renderComponentProps() { return { blockChildren: useChildren(), componentRef: component?.()?.component, componentOptions: { ...getBlockComponentOptions(useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap() ? {} : { attributes: { ...attributes(), ...actions() }, }), customBreakpoints: childrenContext?.()?.content?.meta?.breakpoints, }, context: childrenContext(), }; } function useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? useBlock().children : []; return useBlock().children ?? []; } function childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component?.()?.component && !repeatItemData(); return shouldRenderChildrenOutsideRef ? useChildren() : []; } function repeatItemData() { /** * we don't use \`useBlock()\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } function inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: attributes().style, }); return extractTextStyles(styles); } function childrenContext() { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles(), }; } function renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } const [componentInfo, setComponentInfo] = useState(() => null); const RenderComponentTagRef = renderComponentTag(); const TagRef = tag(); return ( <> {shouldWrap() ? ( <> {isEmptyHtmlElement(tag()) ? ( ) : null} {!isEmptyHtmlElement(tag()) && repeatItemData() ? ( <> {repeatItemData()?.map((data, index) => ( ))} ) : null} {!isEmptyHtmlElement(tag()) && !repeatItemData() ? ( {childrenWithoutParentComponent()?.map((child) => ( ))} {childrenWithoutParentComponent()?.map((child) => ( ))} ) : null} ) : ( <> )} ); } export default RenderBlock; " `; exports[`React Native > jsx > Javascript Test > renderContentExample 1`] = ` "import * as React from \\"react\\"; import { StyleSheet, Pressable } from \\"react-native\\"; import { useContext, useEffect } from \\"react\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks\\"; function RenderContent(props) { useEffect(() => { sendComponentsToVisualEditor(props.customComponents); }, []); useEffect(() => { dispatchNewContentToVisualEditor(props.content); }, [props.content]); return ( trackClick(props.content.id)} style={styles.pressable1} > ); } const styles = StyleSheet.create({ pressable1: { display: \\"flex\\", flexDirection: \\"columns\\" }, }); export default RenderContent; " `; exports[`React Native > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; function Button(props) { return ( <> {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Javascript Test > rootShow 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function RenderStyles(props) { return ( <> {props.foo === \\"bar\\" ? ( <> Bar ) : ( Foo )} ); } export default RenderStyles; " `; exports[`React Native > jsx > Javascript Test > self-referencing component 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyComponent(props) { return ( {props.name} {props.name === \\"Batman\\" ? : null} ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > self-referencing component with children 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyComponent(props) { return ( {props.name} {props.children} {props.name === \\"Batman\\" ? ( Wayne ) : null} ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > setState 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useState } from \\"react\\"; function SetState(props) { const [n, setN] = useState(() => [\\"123\\"]); function someFn() { n[0] = \\"123\\"; } return ( ); } export default SetState; " `; exports[`React Native > jsx > Javascript Test > showExpressions 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function ShowWithOtherValues(props) { return ( {props.conditionA ? ( <> Content0 ) : ( <> ContentA )} {props.conditionA ? ( <> ContentA ) : null} {props.conditionA ? ( <> ) : ( <> ContentA )} {props.conditionA ? ( <> ContentB ) : ( <> {undefined} )} {props.conditionA ? ( <> {undefined} ) : ( <> ContentB )} {props.conditionA ? ( <> ContentC ) : null} {props.conditionA ? ( <> ) : ( <> ContentC )} {props.conditionA ? ( <> ContentD ) : null} {props.conditionA ? ( <> ) : ( <> ContentD )} {props.conditionA ? ( <> ContentE ) : ( <> hello )} {props.conditionA ? ( <> hello ) : ( <> ContentE )} {props.conditionA ? ( <> ContentF ) : ( <> 123 )} {props.conditionA ? ( <> 123 ) : ( <> ContentF )} {props.conditionA === \\"Default\\" ? ( <> 4mb ) : props.conditionB === \\"Complete\\" ? ( <> 20mb ) : ( <> 9mb )} {props.conditionA === \\"Default\\" ? ( <> {props.conditionB === \\"Complete\\" ? ( <> 20mb ) : ( <> 9mb )} ) : ( <> 4mb )} {props.conditionA === \\"Default\\" ? ( <> {props.conditionB === \\"Complete\\" ? ( complete ) : ( <> 9mb )} ) : props.conditionC === \\"Complete\\" ? ( <> dff ) : ( complete else )} ); } export default ShowWithOtherValues; " `; exports[`React Native > jsx > Javascript Test > showWithFor 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function NestedShow(props) { return ( <> {props.conditionA ? ( <> {props.items?.map((item, idx) => ( {item} ))} ) : ( else-condition-A )} ); } export default NestedShow; " `; exports[`React Native > jsx > Javascript Test > showWithOtherValues 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function ShowWithOtherValues(props) { return ( {props.conditionA ? ( <> ContentA ) : null} {props.conditionA ? ( <> ContentB ) : ( <> {undefined} )} {props.conditionA ? ( <> ContentC ) : null} {props.conditionA ? ( <> ContentD ) : null} {props.conditionA ? ( <> ContentE ) : ( <> hello )} {props.conditionA ? ( <> ContentF ) : ( <> 123 )} ); } export default ShowWithOtherValues; " `; exports[`React Native > jsx > Javascript Test > showWithRootText 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function ShowRootText(props) { return ( <> {props.conditionA ? ( <> ContentA ) : ( else-condition-A )} ); } export default ShowRootText; " `; exports[`React Native > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useEffect } from \\"react\\"; function MyBasicComponent(props) { useEffect(() => { console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.value.bar.baz); }, [props.id, props.foo.value.bar.baz]); return ( {props.id} {props.foo.value.bar.baz} ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > spreadAttrs 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyBasicComponent(props) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > spreadNestedProps 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyBasicComponent(props) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > spreadProps 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyBasicComponent(props) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Javascript Test > store-async-function 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function StringLiteralStore(props) { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } return ; } export default StringLiteralStore; " `; exports[`React Native > jsx > Javascript Test > string-literal-store 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function StringLiteralStore(props) { const [foo, setFoo] = useState(() => 123); return ( {foo} ); } export default StringLiteralStore; " `; exports[`React Native > jsx > Javascript Test > styleClassAndCss 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet } from \\"react-native\\"; function MyComponent(props) { return ( ); } const styles = StyleSheet.create({ view1: { display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"stretch\\" }, }); export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet } from \\"react-native\\"; function StylePropClassAndCss(props) { return ; } const styles = StyleSheet.create({ view1: { display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"stretch\\" }, }); export default StylePropClassAndCss; " `; exports[`React Native > jsx > Javascript Test > subComponent 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import Foo from \\"./foo-sub-component\\"; function SubComponent(props) { return ; } export default SubComponent; " `; exports[`React Native > jsx > Javascript Test > svgComponent 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function SvgComponent(props) { return ( ); } export default SvgComponent; " `; exports[`React Native > jsx > Javascript Test > typeDependency 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function TypeDependency(props) { return ( {props.foo} ); } export default TypeDependency; " `; exports[`React Native > jsx > Javascript Test > typeExternalProps 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function TypeExternalProps(props) { return ( Hello {props.name} ! ); } export default TypeExternalProps; " `; exports[`React Native > jsx > Javascript Test > typeExternalStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function TypeExternalStore(props) { const [_name, set_name] = useState(() => \\"test\\"); return ( Hello {_name} ! ); } export default TypeExternalStore; " `; exports[`React Native > jsx > Javascript Test > typeGetterStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function TypeGetterStore(props) { const [name, setName] = useState(() => \\"test\\"); function getName() { if (name === \\"a\\") { return \\"b\\"; } return name; } function test() { return \\"test\\"; } return ( Hello {name} ! ); } export default TypeGetterStore; " `; exports[`React Native > jsx > Javascript Test > use-style 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props) { return ( ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > use-style-and-css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, Button } from \\"react-native\\"; function MyComponent(props) { return ( ); } const styles = StyleSheet.create({ button1: { background: \\"blue\\", color: \\"white\\" }, }); export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > use-style-outside-component 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props) { return ( ); } export default MyComponent; " `; exports[`React Native > jsx > Javascript Test > useTarget 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function UseTargetComponent(props) { function name() { const prefix = \\"rn\\"; return prefix + \\"foo\\"; } const [lastName, setLastName] = useState(() => \\"bar\\"); const [foo, setFoo] = useState(() => \\"bar\\"); useEffect(() => { console.log(foo); setFoo(\\"bar\\"); }, []); return ( {name()} ); } export default UseTargetComponent; " `; exports[`React Native > jsx > Javascript Test > webComponent 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useRef } from \\"react\\"; import { register } from \\"swiper/element/bundle\\"; function MyBasicWebComponent(props) { const hasInitialized = useRef(false); if (!hasInitialized.current) { register(); hasInitialized.current = true; } return ( Slide 1 Slide 2 Slide 3 ); } export default MyBasicWebComponent; " `; exports[`React Native > jsx > Remove Internal mitosis package 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props) { const [name, setName] = useState(() => \\"PatrickJS\\"); return ( Hello {name} ! I can run in React, Qwik, Vue, Solid, or Liquid! ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > AdvancedRef 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; export interface Props { showInput: boolean; } function MyBasicRefComponent(props: Props) { const inputRef = useRef(null); const inputNoArgRef = useRef(null); const [name, setName] = useState(() => \\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef.current.focus(); } function lowerCaseName() { return name.toLowerCase(); } useEffect(() => { console.log(\\"Received an update\\"); }, [inputRef.current, inputNoArgRef.current]); return ( {props.showInput ? ( <> onBlur()} onChange={(event) => setName(event.target.value)} style={styles.textInput1} /> Choose a car: GR Supra GR 86 ) : null} Hello {lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicRefComponent; " `; exports[`React Native > jsx > Typescript Test > Basic 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; function MyBasicComponent(props: MyBasicComponentProps) { const [name, setName] = useState(() => \\"Steve\\"); function underscore_fn_name() { return \\"bar\\"; } const [age, setAge] = useState(() => 1); const [sports, setSports] = useState>(() => [\\"\\"]); return ( setName(myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! > ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > Basic Context 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState, useContext, useRef, useEffect } from \\"react\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; function MyBasicComponent(props: any) { const [name, setName] = useState(() => \\"PatrickJS\\"); function onChange() { const change = myService.method(\\"change\\"); console.log(change); } const myService = useContext(MyService); const hasInitialized = useRef(false); if (!hasInitialized.current) { const hi = myService.method(\\"hi\\"); console.log(hi); hasInitialized.current = true; } useEffect(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }, []); return ( {myService.method(\\"hello\\") + name} Hello! I can run in React, Vue, Solid, or Liquid! onChange()} /> ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; export interface Props { hi: string; bye: string; } function MyBasicOnMountUpdateComponent(props: Props) { const [name, setName] = useState(() => \\"PatrickJS\\"); const [names, setNames] = useState(() => [\\"Steve\\", \\"PatrickJS\\"]); const hasInitialized = useRef(false); if (!hasInitialized.current) { setName(\\"PatrickJS onInit\\" + props.hi); hasInitialized.current = true; } useEffect(() => { setName(\\"PatrickJS onMount\\" + props.bye); }, []); return ( Hello {name} ); } export default MyBasicOnMountUpdateComponent; " `; exports[`React Native > jsx > Typescript Test > Basic Outputs 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicOutputsComponent(props: any) { const [name, setName] = useState(() => \\"PatrickJS\\"); useEffect(() => { props.onMessageChange(name); props.onEvent(props.message); }, []); return ; } export default MyBasicOutputsComponent; " `; exports[`React Native > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicOutputsComponent(props: any) { const [name, setName] = useState(() => \\"PatrickJS\\"); useEffect(() => { props.onMessageChange(name); props.onEvent(props.message); }, []); return ; } export default MyBasicOutputsComponent; " `; exports[`React Native > jsx > Typescript Test > BasicAttribute 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyComponent(props: any) { return ; } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; function MyBooleanAttribute(props: Props) { return ( {props.children ? ( <> {props.children} {props.type} ) : null} ); } export default MyBooleanAttribute; " `; exports[`React Native > jsx > Typescript Test > BasicChildComponent 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; function MyBasicChildComponent(props: any) { const [name, setName] = useState(() => \\"Steve\\"); const [dev, setDev] = useState(() => \\"PatrickJS\\"); function log(message: string) { console.log(message); } return ( setName(name)} onEvent={(event) => log(\\"Test\\")} /> ); } export default MyBasicChildComponent; " `; exports[`React Native > jsx > Typescript Test > BasicFor 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicForComponent(props: any) { const [name, setName] = useState(() => \\"PatrickJS\\"); const [names, setNames] = useState(() => [\\"Steve\\", \\"PatrickJS\\"]); useEffect(() => { console.log(\\"onMount code\\"); }, []); return ( {names?.map((person) => ( <> { setName(event.target.value + \\" and \\" + person); }} /> Hello {person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ))} ); } export default MyBasicForComponent; " `; exports[`React Native > jsx > Typescript Test > BasicRef 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState, useRef } from \\"react\\"; export interface Props { showInput: boolean; } function MyBasicRefComponent(props: Props) { const inputRef = useRef(null); const inputNoArgRef = useRef(null); const [name, setName] = useState(() => \\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef.current?.focus(); } function lowerCaseName() { return name.toLowerCase(); } return ( {props.showInput ? ( <> onBlur()} onChange={(event) => setName(event.target.value)} style={styles.textInput1} /> Choose a car: GR Supra GR 86 ) : null} Hello {lowerCaseName()} ! I can run in React, Qwik, Vue, Solid, or Web Component! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicRefComponent; " `; exports[`React Native > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useRef } from \\"react\\"; export interface Props { showInput: boolean; } function MyBasicRefAssignmentComponent(props: Props) { const holdValueRef = useRef(\\"Patrick\\"); function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", holdValueRef.current); holdValueRef.current = holdValueRef.current + \\"JS\\"; } return ( ); } export default MyBasicRefAssignmentComponent; " `; exports[`React Native > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } function MyPreviousComponent(props: Props) { const [count, setCount] = useState(() => 0); const prevCount = useRef(count); useEffect(() => { prevCount.current = count; }, [count]); return ( Now: {count} , before: {prevCount.current} ); } export default MyPreviousComponent; " `; exports[`React Native > jsx > Typescript Test > Button 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } function Button(props: ButtonProps) { return ( {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Typescript Test > Columns 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } function Column(props: ColumnProps) { function getColumns() { return props.columns || []; } function getGutterSize() { return typeof props.space === \\"number\\" ? props.space || 0 : 20; } function getWidth(index: number) { const columns = getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } function getColumnCssWidth(index: number) { const columns = getColumns(); const gutterSize = getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${getWidth(index)}% - \${subtractWidth}px)\`; } return ( {props.columns?.map((column, index) => ( {column.content} {index} ))} ); } const styles = StyleSheet.create({ view1: { display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"stretch\\" }, view2: { flexGrow: \\"1\\" }, }); export default Column; " `; exports[`React Native > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ContentSlotCode(props: Props) { return ( <>{props.slotTesting} <>{props.children} ); } export default ContentSlotCode; " `; exports[`React Native > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import * as React from \\"react\\"; import { View, Text, Pressable } from \\"react-native\\"; import { useState } from \\"react\\"; type Props = { [key: string]: string | JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ContentSlotJsxCode(props: Props) { props = { content: \\"\\", slotReference: undefined, slotContent: undefined, ...props, }; const [name, setName] = useState(() => \\"king\\"); const [showContent, setShowContent] = useState(() => false); function cls() { return props.slotContent && props.children ? \`\${name}-content\` : \\"\\"; } function show() { props.slotContent ? 1 : \\"\\"; } return ( <> {props.slotReference ? ( <> show()} > {showContent && props.slotContent ? ( <>{props.content || {props.content}} ) : null} {props.children} ) : null} ); } export default ContentSlotJsxCode; " `; exports[`React Native > jsx > Typescript Test > CustomCode 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } function CustomCode(props: CustomCodeProps) { const elem = useRef(null); const [scriptsInserted, setScriptsInserted] = useState(() => []); const [scriptsRun, setScriptsRun] = useState(() => []); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted.includes(script.src)) { continue; } scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun.includes(script.innerText)) { continue; } try { scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } useEffect(() => { findAndRunScripts(); }, []); return ; } export default CustomCode; " `; exports[`React Native > jsx > Typescript Test > Embed 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } function CustomCode(props: CustomCodeProps) { const elem = useRef(null); const [scriptsInserted, setScriptsInserted] = useState(() => []); const [scriptsRun, setScriptsRun] = useState(() => []); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted.includes(script.src)) { continue; } scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun.includes(script.innerText)) { continue; } try { scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } useEffect(() => { findAndRunScripts(); }, []); return ; } export default CustomCode; " `; exports[`React Native > jsx > Typescript Test > Form 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useState, useRef } from \\"react\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; function FormComponent(props: FormProps) { const formRef = useRef(null); const [formState, setFormState] = useState(() => \\"unsubmitted\\"); const [responseData, setResponseData] = useState(() => null); const [formErrorMessage, setFormErrorMessage] = useState(() => \\"\\"); function submissionState() { return (Builder.isEditing && props.previewState) || formState; } function onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !( sendWithJs && props.action?.includes(\\"zapier.com\\") ) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body } }); if (formRef.current) { formRef.current.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } setFormState(\\"sending\\"); const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action! /* TODO: throw error if no action URL */, { body, headers, method: props.method || \\"post\\" } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } setFormErrorMessage(message); } } setResponseData(body); setFormState(res.ok ? \\"success\\" : \\"error\\"); if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body }, }); if (formRef.current) { formRef.current.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if ( props.resetFormOnSubmit !== false ) { formRef.current.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if ( props.successUrl ) { if (formRef.current) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl }, }); formRef.current.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err }, }); if (formRef.current) { formRef.current.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } setResponseData(err); setFormState(\\"error\\"); } ); } } return ( onSubmit(event)} {...props.attributes} > {props.builderBlock && props.builderBlock.children ? ( <> {props.builderBlock?.children?.map((block, index) => ( ))} ) : null} {submissionState() === \\"error\\" ? ( ) : null} {submissionState() === \\"sending\\" ? ( ) : null} {submissionState() === \\"error\\" && responseData ? ( {JSON.stringify(responseData, null, 2)} ) : null} {submissionState() === \\"success\\" ? ( ) : null} ); } const styles = StyleSheet.create({ view1: { padding: 10, color: \\"red\\", textAlign: \\"center\\" }, }); export default FormComponent; " `; exports[`React Native > jsx > Typescript Test > Image 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Image, Text } from \\"react-native\\"; import { useState, useRef, useEffect } from \\"react\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } function Image(props: ImageProps) { const pictureRef = useRef(null); const [scrollListener, setScrollListener] = useState(() => null); const [imageLoaded, setImageLoaded] = useState(() => false); function setLoaded() { setImageLoaded(true); } function useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && isBrowser(); } function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); } const [load, setLoad] = useState(() => false); useEffect(() => { if (useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (pictureRef.current) { const rect = pictureRef.current.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { setLoad(true); setScrollListener(null); window.removeEventListener(\\"scroll\\", listener); } } }; setScrollListener(listener); window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }, []); useEffect(() => { return () => { if (scrollListener) { window.removeEventListener(\\"scroll\\", scrollListener); } }; }, []); return ( {!useLazyLoading() || load ? ( {props.altText} setLoaded()} srcset={props.srcset} sizes={props.sizes} style={styles.image1} /> ) : null} {props.children} ); } const styles = StyleSheet.create({ image1: { opacity: \\"1\\", transition: \\"opacity 0.2s ease-in-out\\", objectFit: \\"cover\\", objectPosition: \\"center\\", }, }); export default Image; " `; exports[`React Native > jsx > Typescript Test > Image State 1`] = ` "import * as React from \\"react\\"; import { View, Image } from \\"react-native\\"; import { useState } from \\"react\\"; function ImgStateComponent(props: any) { const [canShow, setCanShow] = useState(() => true); const [images, setImages] = useState(() => [\\"http://example.com/qwik.png\\"]); return ( {images?.map((item, itemIndex) => ( ))} ); } export default ImgStateComponent; " `; exports[`React Native > jsx > Typescript Test > Img 1`] = ` "import * as React from \\"react\\"; import { StyleSheet, Image } from \\"react-native\\"; export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; function ImgComponent(props: ImgProps) { return ( {props.altText} ); } export default ImgComponent; " `; exports[`React Native > jsx > Typescript Test > Input 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; function FormInputComponent(props: FormInputProps) { return ( props.onChange?.(event.target.value)} /> ); } export default FormInputComponent; " `; exports[`React Native > jsx > Typescript Test > InputParent 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import FormInputComponent from \\"./input.raw\\"; function Stepper(props: any) { function handleChange(value: string) { console.log(value); } return ( handleChange(value)} /> ); } export default Stepper; " `; exports[`React Native > jsx > Typescript Test > NestedStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; type MyStore = { _id?: string; _messageId?: string; }; function NestedStore(props: any) { const [_id, set_id] = useState(() => \\"abc\\"); const [_messageId, set_messageId] = useState( () => _id + \\"-message\\" ); return ( Test Message ); } export default NestedStore; " `; exports[`React Native > jsx > Typescript Test > RawText 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } function RawText(props: RawTextProps) { return ; } export default RawText; " `; exports[`React Native > jsx > Typescript Test > Section 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } function SectionComponent(props: SectionProps) { return ( {props.children} ); } export default SectionComponent; " `; exports[`React Native > jsx > Typescript Test > Select 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; function SelectComponent(props: FormSelectProps) { return ( {props.options?.map((option, index) => ( {option.name || option.value} ))} ); } export default SelectComponent; " `; exports[`React Native > jsx > Typescript Test > SlotDefault 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { [key: string]: string; }; function SlotCode(props: Props) { return ( <> {props.children || ( Default content )} ); } export default SlotCode; " `; exports[`React Native > jsx > Typescript Test > SlotHtml 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props: Props) { return ( Hello
    }> ); } export default SlotCode; " `; exports[`React Native > jsx > Typescript Test > SlotJsx 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props: Props) { return ( Hello } /> ); } export default SlotCode; " `; exports[`React Native > jsx > Typescript Test > SlotNamed 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { [key: string]: string; }; function SlotCode(props: Props) { return ( <>{props.myAwesomeSlot} <>{props.top} <>{props.left || Default left} <>{props.children || Default Child} ); } export default SlotCode; " `; exports[`React Native > jsx > Typescript Test > Stamped.io 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Image, Text, TextInput, Button } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; function SmileReviews(props: SmileReviewsProps) { const [reviews, setReviews] = useState(() => []); const [name, setName] = useState(() => \\"test\\"); const [showReviewPrompt, setShowReviewPrompt] = useState(() => false); function kebabCaseValue() { return kebabCase(\\"testThat\\"); } function snakeCaseValue() { return snakeCase(\\"testThis\\"); } useEffect(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { setReviews(data.data); }); }, []); return ( {showReviewPrompt || \\"asdf\\" ? ( <> ) : null} {reviews?.map((review, index) => ( N: {index} {review.author} {review.reviewMessage} ))} ); } const styles = StyleSheet.create({ view1: { margin: 10, padding: 10, background: \\"white\\", display: \\"flex\\", borderRadius: 5, boxShadow: \\"0 2px 5px rgba(0, 0, 0, 0.1)\\", WebkitFontSmoothing: \\"antialiased\\", }, image1: { height: 30, width: 30, marginRight: 10 }, }); export default SmileReviews; " `; exports[`React Native > jsx > Typescript Test > StoreComment 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function StringLiteralStore(props: any) { const [foo, setFoo] = useState(() => true); function bar() {} return ( <> {foo} ); } export default StringLiteralStore; " `; exports[`React Native > jsx > Typescript Test > StoreShadowVars 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [errors, setErrors] = useState(() => ({})); function foo(errors) { return errors; } return ( <> {foo(errors)} ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > StoreWithState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [foo, setFoo] = useState(() => false); function bar() { return foo; } return ( <> {bar()} ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > Submit 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; export interface ButtonProps { attributes?: any; text?: string; } function SubmitButton(props: ButtonProps) { return ( ); } export default SubmitButton; " `; exports[`React Native > jsx > Typescript Test > Text 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; function Text(props: TextProps) { const [name, setName] = useState(() => \\"Decadef20\\"); return ( my name

    ', }} /> ); } export default Text; " `; exports[`React Native > jsx > Typescript Test > Textarea 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } function Textarea(props: TextareaProps) { return ( ); } export default Textarea; " `; exports[`React Native > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; function UseValueAndFnFromStore(props: MyProps) { const [_id, set_id] = useState(() => \\"abc\\"); const [_active, set_active] = useState(() => false); function _do(id?: string): ReturnType { set_active(!!id); if (props.onChange) { props.onChange(_active); } } useEffect(() => { if (_do) { _do(_id); } }); return ( Test ); } export default UseValueAndFnFromStore; " `; exports[`React Native > jsx > Typescript Test > Video 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet } from \\"react-native\\"; export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } function Video(props: VideoProps) { return ( ); } export default Video; " `; exports[`React Native > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [name, setName] = useState(() => \\"steve\\"); function setName(value) { setName(value); } function updateNameWithArrowFn(value) { setName(value); } return ( Hello {name} ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > basicForFragment 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function BasicForFragment(props: any) { const [id, setId] = useState(() => \\"xyz\\"); return ( {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => ( {option} ))} {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => ( {option} ))} {[\\"d\\", \\"e\\", \\"f\\"]?.map((option) => ( {option} ))} ); } export default BasicForFragment; " `; exports[`React Native > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicForNoTagRefComponent(props: any) { const [name, setName] = useState(() => \\"VincentW\\"); const [TagName, setTagName] = useState(() => \\"div\\"); function TagNameGetter() { return \\"span\\"; } const [Tag, setTag] = useState(() => \\"span\\"); const TagNameGetterRef = TagNameGetter(); return ( Hello {name} {props.actions?.map((action) => ( {action.text} ))} ); } export default MyBasicForNoTagRefComponent; " `; exports[`React Native > jsx > Typescript Test > basicForwardRef 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, TextInput } from \\"react-native\\"; import { useState, forwardRef } from \\"react\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } const MyBasicForwardRefComponent = forwardRef( function MyBasicForwardRefComponent(props: Props, inputRef) { const [name, setName] = useState(() => \\"PatrickJS\\"); return ( setName(event.target.value)} style={styles.textInput1} /> ); } ); const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicForwardRefComponent; " `; exports[`React Native > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import * as React from \\"react\\"; import { View, StyleSheet, TextInput } from \\"react-native\\"; import { useState, forwardRef } from \\"react\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } const MyBasicForwardRefComponent = forwardRef( function MyBasicForwardRefComponent(props: Props, inputRef) { const [name, setName] = useState(() => \\"PatrickJS\\"); return ( setName(event.target.value)} style={styles.textInput1} /> ); } ); const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyBasicForwardRefComponent; " `; exports[`React Native > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyBasicOnUpdateReturnComponent(props: any) { const [name, setName] = useState(() => \\"PatrickJS\\"); useEffect(() => { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { setName(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; }, [name]); return ( Hello! {name} ); } export default MyBasicOnUpdateReturnComponent; " `; exports[`React Native > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useRef, useEffect } from \\"react\\"; function BasicRefAttributePassingComponent(props: any) { const buttonRef = useRef(null); useEffect(() => { console.log(\\"onMount\\"); }, []); return ( ); } export default BasicRefAttributePassingComponent; " `; exports[`React Native > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useRef } from \\"react\\"; function BasicRefAttributePassingCustomRefComponent(props: any) { const buttonRef = useRef(null); return ( ); } export default BasicRefAttributePassingCustomRefComponent; " `; exports[`React Native > jsx > Typescript Test > class + ClassName + css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import MyComp from \\"./my-component\\"; function MyBasicComponent(props: any) { return ( Hello! I can run in React, Vue, Solid, or Liquid! Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > class + css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyBasicComponent(props: any) { return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > className + css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyBasicComponent(props: any) { return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > className 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ClassNameCode(props: Props) { const [bindings, setBindings] = useState(() => \\"a binding\\"); return ( Without Binding With binding ); } export default ClassNameCode; " `; exports[`React Native > jsx > Typescript Test > classState 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props: any) { const [classState, setClassState] = useState(() => \\"testClassName\\"); const [styleState, setStyleState] = useState(() => ({ color: \\"red\\", })); return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { children: any; className: string; type: string; }; function MyBasicComponent(props: Props) { return ( {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import * as React from \\"react\\"; import { View } from \\"react-native\\"; function ComplexMetaRaw(props: any) { return ; } export default ComplexMetaRaw; " `; exports[`React Native > jsx > Typescript Test > componentWithContext 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props: ComponentWithContextProps) { const foo = useContext(Context1); return ( <> {foo.value} ); } export default ComponentWithContext; " `; exports[`React Native > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props: ComponentWithContextProps) { const foo = useContext(Context1); return ( <> <> {foo.value} other ); } export default ComponentWithContext; " `; exports[`React Native > jsx > Typescript Test > contentState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useContext } from \\"react\\"; import BuilderContext from \\"@dummy/context.js\\"; function RenderContent(props: any) { return ( setting context ); } export default RenderContent; " `; exports[`React Native > jsx > Typescript Test > defaultProps 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } function Button(props: ButtonProps) { props = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => { console.log(\\"hi\\"); }, ...props, }; return ( {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } function Button(props: ButtonProps) { props = { text: \\"default text\\", link: \\"https://builder.io/\\", openLinkInNewTab: false, onClick: () => {}, ...props, }; return ( {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; function ComponentWithTypes(props: Props) { return ( Hello {props.name || DEFAULT_VALUES.name} ); } export default ComponentWithTypes; " `; exports[`React Native > jsx > Typescript Test > eventInputAndChange 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function EventInputAndChange(props: any) { const [name, setName] = useState(() => \\"Steve\\"); return ( setName(event.target.value)} onChange={(event) => setName(event.target.value)} style={styles.textInput1} /> Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default EventInputAndChange; " `; exports[`React Native > jsx > Typescript Test > eventProps 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { EventProps, EventState } from \\"./event-props.type\\"; function EventPropsComponent(props: EventProps) { function handleClick(): ReturnType { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } } return ( ); } export default EventPropsComponent; " `; exports[`React Native > jsx > Typescript Test > expressionState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [refToUse, setRefToUse] = useState(() => !(props.componentRef instanceof Function) ? props.componentRef : null ); return ( {refToUse} ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function FigmaButton(props: any) { return ( ); } export default FigmaButton; " `; exports[`React Native > jsx > Typescript Test > functionProps 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; export interface MyBasicComponentProps { id: string; } function MyBasicComponent(props: MyBasicComponentProps) { return ( x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} /> ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > getterState 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; export interface ButtonProps { foo: string; } function Button(props: ButtonProps) { function foo2() { return props.foo + \\"foo\\"; } function bar() { return \\"bar\\"; } function baz(i: number) { return i + foo2().length; } return ( {foo2()} {bar()} {baz(1)} ); } export default Button; " `; exports[`React Native > jsx > Typescript Test > import types 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; function RenderContent(props: RenderContentProps) { function getRenderContentProps(block, index) { return { block: block, index: index, }; } return ( ); } export default RenderContent; " `; exports[`React Native > jsx > Typescript Test > inputToTextInputRN 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [name, setName] = useState(() => \\"Steve\\"); return ( setName(event.target.value)} style={styles.textInput1} /> Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ textInput1: { color: \\"red\\" } }); export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > layerName 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function MyLayerNameComponent(props: any) { return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyLayerNameComponent; " `; exports[`React Native > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function MultipleOnUpdate(props: any) { useEffect(() => { console.log(\\"Runs on every update/rerender\\"); }); useEffect(() => { console.log(\\"Runs on every update/rerender as well\\"); }); return ; } export default MultipleOnUpdate; " `; exports[`React Native > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MultipleOnUpdateWithDeps(props: any) { const [a, setA] = useState(() => \\"a\\"); const [b, setB] = useState(() => \\"b\\"); const [c, setC] = useState(() => \\"c\\"); const [d, setD] = useState(() => \\"d\\"); useEffect(() => { console.log(\\"Runs when a or b changes\\", a, b); if (a === \\"a\\") { setA(\\"b\\"); } }, [a, b]); useEffect(() => { console.log(\\"Runs when c or d changes\\", c, d); if (a === \\"a\\") { setA(\\"b\\"); } }, [c, d]); return ; } export default MultipleOnUpdateWithDeps; " `; exports[`React Native > jsx > Typescript Test > multipleSpreads 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyBasicComponent(props: any) { const [attrs, setAttrs] = useState(() => ({ hello: \\"world\\", })); return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > nestedShow 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; interface Props { conditionA: boolean; conditionB: boolean; } function NestedShow(props: Props) { return ( <> {props.conditionA ? ( <> {!props.conditionB ? ( if condition A and condition B ) : ( else-condition-B )} ) : ( else-condition-A )} ); } export default NestedShow; " `; exports[`React Native > jsx > Typescript Test > nestedStyles 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; function NestedStyles(props: any) { return ( Hello world ); } const styles = StyleSheet.create({ view1: { display: \\"flex\\", \\"--bar\\": \\"red\\", color: \\"var(--bar)\\", \\"&:hover\\": { display: \\"flex\\" }, \\":active\\": { display: \\"inline\\" }, \\".nested-selector\\": { display: \\"grid\\" }, \\".nested-selector:hover\\": { display: \\"block\\" }, \\"&.nested-selector:active\\": { display: \\"inline-block\\" }, }, }); export default NestedStyles; " `; exports[`React Native > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; export interface MyNormalizedLayerNamesComponentProps { id: string; } function MyNormalizedLayerNamesComponent( props: MyNormalizedLayerNamesComponentProps ) { return ( Emoji Dashes CamelCase Special chars Special chars with dashes Single Number Multiple Numbers Chars with numbers at end Chars with numbers at start Numnbers separated by dash Emoji Number ); } const styles = StyleSheet.create({ view1: { margin: 10 }, view2: { padding: 10 }, view3: { border: \\"1px solid\\" }, view4: { color: \\"red\\" }, view5: { background: \\"blue\\" }, view6: { background: \\"blue\\" }, }); export default MyNormalizedLayerNamesComponent; " `; exports[`React Native > jsx > Typescript Test > onClickToPressable 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props: any) { return ( ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > onEvent 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useRef, useEffect } from \\"react\\"; function Embed(props: any) { const elem = useRef(null); function foo(event) { console.log(\\"test2\\"); } function elem_onInitEditingBldr(event) { console.log(\\"test\\"); foo(event); } useEffect(() => { elem.current?.addEventListener(\\"initEditingBldr\\", elem_onInitEditingBldr); return () => elem.current?.removeEventListener( \\"initEditingBldr\\", elem_onInitEditingBldr ); }, []); useEffect(() => { elem.current.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }, []); return ( Test ); } export default Embed; " `; exports[`React Native > jsx > Typescript Test > onInit & onMount 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useRef, useEffect } from \\"react\\"; function OnInit(props: any) { const hasInitialized = useRef(false); if (!hasInitialized.current) { console.log(\\"onInit\\"); hasInitialized.current = true; } useEffect(() => { console.log(\\"onMount\\"); }, []); return ; } export default OnInit; " `; exports[`React Native > jsx > Typescript Test > onInit 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useRef } from \\"react\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; function OnInit(props: Props) { const [name, setName] = useState(() => \\"\\"); const hasInitialized = useRef(false); if (!hasInitialized.current) { setName(defaultValues.name || props.name); console.log(\\"set defaults with props\\"); hasInitialized.current = true; } return ( Default name defined by parent {name} ); } export default OnInit; " `; exports[`React Native > jsx > Typescript Test > onInitPlain 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useRef } from \\"react\\"; function OnInitPlain(props: any) { const hasInitialized = useRef(false); if (!hasInitialized.current) { console.log(\\"onInit\\"); hasInitialized.current = true; } return ; } export default OnInitPlain; " `; exports[`React Native > jsx > Typescript Test > onMount 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function Comp(props: any) { useEffect(() => { console.log(\\"Runs on mount\\"); }, []); useEffect(() => { return () => { console.log(\\"Runs on unMount\\"); }; }, []); return ; } export default Comp; " `; exports[`React Native > jsx > Typescript Test > onMountMultiple 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function Comp(props: any) { useEffect(() => { console.log(\\"Runs on mount\\"); }, []); useEffect(() => { console.log(\\"Another one runs on Mount\\"); }, []); useEffect(() => { console.log(\\"SSR runs on Mount\\"); }, []); return ; } export default Comp; " `; exports[`React Native > jsx > Typescript Test > onUpdate 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function OnUpdate(props: any) { useEffect(() => { console.log(\\"Runs on every update/rerender\\"); }); return ; } export default OnUpdate; " `; exports[`React Native > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; type Props = { size: string; }; function OnUpdateWithDeps(props: Props) { const [a, setA] = useState(() => \\"a\\"); const [b, setB] = useState(() => \\"b\\"); useEffect(() => { console.log(\\"Runs when a, b or size changes\\", a, b, props.size); }, [a, b, props.size]); return ; } export default OnUpdateWithDeps; " `; exports[`React Native > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} function MyBasicComponent(props: MyBasicComponentProps) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > preserveTyping 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } function MyBasicComponent(props: MyBasicComponentProps) { return ( Hello! I can run in React, Vue, Solid, or Liquid! {props.name} ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > propsDestructure 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; type Props = { children: any; type: string; }; function MyBasicComponent(props: Props) { const [name, setName] = useState(() => \\"Decadef20\\"); return ( {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > propsInterface 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; interface Person { name: string; age?: number; } function MyBasicComponent(props: Person | never) { return ( Hello! I can run in React, Vue, Solid, or Liquid! {props.name} ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > propsType 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; type Person = { name: string; age?: number; }; function MyBasicComponent(props: Person) { return ( Hello! I can run in React, Vue, Solid, or Liquid! {props.name} ); } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function OnUpdate(props: any) { function foo(params) {} function bar() {} function zoo() { const params = { cb: bar, }; } useEffect(() => { foo({ someOption: bar, }); }); return ; } export default OnUpdate; " `; exports[`React Native > jsx > Typescript Test > renderBlock 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import { useState } from \\"react\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component\\"; import RenderComponent from \\"./render-component\\"; import RenderRepeatedBlock from \\"./render-repeated-block\\"; import type { RepeatData } from \\"./types.js\\"; function RenderBlock(props: RenderBlockProps) { function component() { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } function tag() { return getBlockTag(useBlock()); } function useBlock() { return repeatItemData() ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); } function actions() { return getBlockActions({ block: useBlock(), state: props.context.state, context: props.context.context, }); } function attributes() { const blockProperties = getBlockProperties(useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: blockProperties.style, }), } : {}), }; } function shouldWrap() { return !component?.()?.noWrap; } function renderComponentProps() { return { blockChildren: useChildren(), componentRef: component?.()?.component, componentOptions: { ...getBlockComponentOptions(useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap() ? {} : { attributes: { ...attributes(), ...actions() }, }), customBreakpoints: childrenContext?.()?.content?.meta?.breakpoints, }, context: childrenContext(), }; } function useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? useBlock().children : []; return useBlock().children ?? []; } function childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component?.()?.component && !repeatItemData(); return shouldRenderChildrenOutsideRef ? useChildren() : []; } function repeatItemData() { /** * we don't use \`useBlock()\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } function inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: attributes().style, }); return extractTextStyles(styles); } function childrenContext() { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles(), }; } function renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } const [componentInfo, setComponentInfo] = useState(() => null); const RenderComponentTagRef = renderComponentTag(); const TagRef = tag(); return ( <> {shouldWrap() ? ( <> {isEmptyHtmlElement(tag()) ? ( ) : null} {!isEmptyHtmlElement(tag()) && repeatItemData() ? ( <> {repeatItemData()?.map((data, index) => ( ))} ) : null} {!isEmptyHtmlElement(tag()) && !repeatItemData() ? ( {childrenWithoutParentComponent()?.map((child) => ( ))} {childrenWithoutParentComponent()?.map((child) => ( ))} ) : null} ) : ( <> )} ); } export default RenderBlock; " `; exports[`React Native > jsx > Typescript Test > renderContentExample 1`] = ` "import * as React from \\"react\\"; import { StyleSheet, Pressable } from \\"react-native\\"; import { useContext, useEffect } from \\"react\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks\\"; function RenderContent(props: Props) { useEffect(() => { sendComponentsToVisualEditor(props.customComponents); }, []); useEffect(() => { dispatchNewContentToVisualEditor(props.content); }, [props.content]); return ( trackClick(props.content.id)} style={styles.pressable1} > ); } const styles = StyleSheet.create({ pressable1: { display: \\"flex\\", flexDirection: \\"columns\\" }, }); export default RenderContent; " `; exports[`React Native > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import * as React from \\"react\\"; import { View, Text, TouchableOpacity, Button, Linking } from \\"react-native\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } function Button(props: ButtonProps) { return ( <> {props.link ? ( Linking.openURL(props.link)} > {props.text} ) : null} {!props.link ? ( ) : null} ); } export default Button; " `; exports[`React Native > jsx > Typescript Test > rootShow 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; export interface RenderStylesProps { foo: string; } function RenderStyles(props: RenderStylesProps) { return ( <> {props.foo === \\"bar\\" ? ( <> Bar ) : ( Foo )} ); } export default RenderStyles; " `; exports[`React Native > jsx > Typescript Test > self-referencing component 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyComponent(props: any) { return ( {props.name} {props.name === \\"Batman\\" ? : null} ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > self-referencing component with children 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyComponent(props: any) { return ( {props.name} {props.children} {props.name === \\"Batman\\" ? ( Wayne ) : null} ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > setState 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useState } from \\"react\\"; function SetState(props: any) { const [n, setN] = useState(() => [\\"123\\"]); function someFn() { n[0] = \\"123\\"; } return ( ); } export default SetState; " `; exports[`React Native > jsx > Typescript Test > showExpressions 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; interface Props { conditionA: boolean; conditionB: boolean; } function ShowWithOtherValues(props: Props) { return ( {props.conditionA ? ( <> Content0 ) : ( <> ContentA )} {props.conditionA ? ( <> ContentA ) : null} {props.conditionA ? ( <> ) : ( <> ContentA )} {props.conditionA ? ( <> ContentB ) : ( <> {undefined} )} {props.conditionA ? ( <> {undefined} ) : ( <> ContentB )} {props.conditionA ? ( <> ContentC ) : null} {props.conditionA ? ( <> ) : ( <> ContentC )} {props.conditionA ? ( <> ContentD ) : null} {props.conditionA ? ( <> ) : ( <> ContentD )} {props.conditionA ? ( <> ContentE ) : ( <> hello )} {props.conditionA ? ( <> hello ) : ( <> ContentE )} {props.conditionA ? ( <> ContentF ) : ( <> 123 )} {props.conditionA ? ( <> 123 ) : ( <> ContentF )} {props.conditionA === \\"Default\\" ? ( <> 4mb ) : props.conditionB === \\"Complete\\" ? ( <> 20mb ) : ( <> 9mb )} {props.conditionA === \\"Default\\" ? ( <> {props.conditionB === \\"Complete\\" ? ( <> 20mb ) : ( <> 9mb )} ) : ( <> 4mb )} {props.conditionA === \\"Default\\" ? ( <> {props.conditionB === \\"Complete\\" ? ( complete ) : ( <> 9mb )} ) : props.conditionC === \\"Complete\\" ? ( <> dff ) : ( complete else )} ); } export default ShowWithOtherValues; " `; exports[`React Native > jsx > Typescript Test > showWithFor 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; interface Props { conditionA: boolean; items: string[]; } function NestedShow(props: Props) { return ( <> {props.conditionA ? ( <> {props.items?.map((item, idx) => ( {item} ))} ) : ( else-condition-A )} ); } export default NestedShow; " `; exports[`React Native > jsx > Typescript Test > showWithOtherValues 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; interface Props { conditionA: boolean; } function ShowWithOtherValues(props: Props) { return ( {props.conditionA ? ( <> ContentA ) : null} {props.conditionA ? ( <> ContentB ) : ( <> {undefined} )} {props.conditionA ? ( <> ContentC ) : null} {props.conditionA ? ( <> ContentD ) : null} {props.conditionA ? ( <> ContentE ) : ( <> hello )} {props.conditionA ? ( <> ContentF ) : ( <> 123 )} ); } export default ShowWithOtherValues; " `; exports[`React Native > jsx > Typescript Test > showWithRootText 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; interface Props { conditionA: boolean; } function ShowRootText(props: Props) { return ( <> {props.conditionA ? ( <> ContentA ) : ( else-condition-A )} ); } export default ShowRootText; " `; exports[`React Native > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useEffect } from \\"react\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; function MyBasicComponent(props: Props) { useEffect(() => { console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.bar.baz); }, [props.id, props.foo.bar.baz]); return ( {props.id} {props.foo.bar.baz} ); } const styles = StyleSheet.create({ view1: { padding: 10 } }); export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > spreadAttrs 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyBasicComponent(props: any) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > spreadNestedProps 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyBasicComponent(props: any) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > spreadProps 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyBasicComponent(props: any) { return ; } export default MyBasicComponent; " `; exports[`React Native > jsx > Typescript Test > store-async-function 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function StringLiteralStore(props: any) { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } return ; } export default StringLiteralStore; " `; exports[`React Native > jsx > Typescript Test > string-literal-store 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function StringLiteralStore(props: any) { const [foo, setFoo] = useState(() => 123); return ( {foo} ); } export default StringLiteralStore; " `; exports[`React Native > jsx > Typescript Test > styleClassAndCss 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet } from \\"react-native\\"; function MyComponent(props: any) { return ( ); } const styles = StyleSheet.create({ view1: { display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"stretch\\" }, }); export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet } from \\"react-native\\"; function StylePropClassAndCss(props: any) { return ; } const styles = StyleSheet.create({ view1: { display: \\"flex\\", flexDirection: \\"column\\", alignItems: \\"stretch\\" }, }); export default StylePropClassAndCss; " `; exports[`React Native > jsx > Typescript Test > subComponent 1`] = ` "import * as React from \\"react\\"; import {} from \\"react-native\\"; import Foo from \\"./foo-sub-component\\"; function SubComponent(props: any) { return ; } export default SubComponent; " `; exports[`React Native > jsx > Typescript Test > svgComponent 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; function SvgComponent(props: any) { return ( ); } export default SvgComponent; " `; exports[`React Native > jsx > Typescript Test > typeDependency 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export\\"; function TypeDependency(props: TypeDependencyProps) { return ( {props.foo} ); } export default TypeDependency; " `; exports[`React Native > jsx > Typescript Test > typeExternalProps 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { FooProps } from \\"./foo-props\\"; function TypeExternalProps(props: FooProps) { return ( Hello {props.name} ! ); } export default TypeExternalProps; " `; exports[`React Native > jsx > Typescript Test > typeExternalStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; import { FooStore } from \\"./foo-store\\"; function TypeExternalStore(props: any) { const [_name, set_name] = useState(() => \\"test\\"); return ( Hello {_name} ! ); } export default TypeExternalStore; " `; exports[`React Native > jsx > Typescript Test > typeGetterStore 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; function TypeGetterStore(props: any) { const [name, setName] = useState(() => \\"test\\"); function getName(): ReturnType { if (name === \\"a\\") { return \\"b\\"; } return name; } function test(): ReturnType { return \\"test\\"; } return ( Hello {name} ! ); } export default TypeGetterStore; " `; exports[`React Native > jsx > Typescript Test > use-style 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props: any) { return ( ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > use-style-and-css 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, Button } from \\"react-native\\"; function MyComponent(props: any) { return ( ); } const styles = StyleSheet.create({ button1: { background: \\"blue\\", color: \\"white\\" }, }); export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > use-style-outside-component 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props: any) { return ( ); } export default MyComponent; " `; exports[`React Native > jsx > Typescript Test > useTarget 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function UseTargetComponent(props: any) { function name() { const prefix = \\"rn\\"; return prefix + \\"foo\\"; } const [lastName, setLastName] = useState(() => \\"bar\\"); const [foo, setFoo] = useState(() => \\"bar\\"); useEffect(() => { console.log(foo); setFoo(\\"bar\\"); }, []); return ( {name()} ); } export default UseTargetComponent; " `; exports[`React Native > jsx > Typescript Test > webComponent 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useRef } from \\"react\\"; import { register } from \\"swiper/element/bundle\\"; function MyBasicWebComponent(props: any) { const hasInitialized = useRef(false); if (!hasInitialized.current) { register(); hasInitialized.current = true; } return ( Slide 1 Slide 2 Slide 3 ); } export default MyBasicWebComponent; " `; exports[`React Native > native-wind style 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props) { return ( ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > basic 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [name, setName] = useState(() => \\"Steve\\"); return ( setName(event.target.value)} value={name} /> Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > bindGroup 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [tortilla, setTortilla] = useState(() => \\"Plain\\"); const [fillings, setFillings] = useState(() => []); return ( setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> Tortilla: {tortilla} Fillings: {fillings} ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > bindProperty 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [value, setValue] = useState(() => \\"hello\\"); return ; } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > classDirective 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [focus, setFocus] = useState(() => true); return ; } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > context 1`] = ` "'>' expected. (34:13) 32 | 33 | > 34 | <'activeTab'.Provider value={activeTab}>{activeTab} | ^ 35 | 36 | 37 | );" `; exports[`React Native > svelte > Javascript Test > each 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [numbers, setNumbers] = useState(() => [\\"one\\", \\"two\\", \\"three\\"]); return ( {numbers?.map((num) => ( {num} ))} ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > eventHandlers 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props) { function log(msg = \\"hello\\") { console.log(msg); } return ( ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > html 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [html, setHtml] = useState(() => \\"bold\\"); return ; } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > ifElse 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [show, setShow] = useState(() => true); function toggle() { setShow(!show); } return ( <> {show ? ( <> ) : ( )} ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > imports 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; import Button from \\"./Button\\"; function MyComponent(props) { const [disabled, setDisabled] = useState(() => false); return ( ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > lifecycleHooks 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function MyComponent(props) { useEffect(() => { console.log(\\"onMount\\"); }, []); useEffect(() => { console.log(\\"onAfterUpdate\\"); }); useEffect(() => { return () => { console.log(\\"onDestroy\\"); }; }, []); return ; } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > reactive 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [name, setName] = useState(() => \\"Steve\\"); function lowercaseName() { return name.toLowerCase(); } return ( Lowercase: {lowercaseName()} ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > reactiveWithFn 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyComponent(props) { const [a, setA] = useState(() => 2); const [b, setB] = useState(() => 5); const [result, setResult] = useState(() => null); function calculateResult(a_, b_) { setResult(a_ * b_); } useEffect(() => { calculateResult(a, b); }, [a, b]); return ( setA(event.target.value)} value={a} /> setB(event.target.value)} value={b} /> Result: {result} ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > slots 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyComponent(props) { return ( <>{props.children || default} <> {props.Test || ( default )} ); } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > style 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyComponent(props) { return ; } export default MyComponent; " `; exports[`React Native > svelte > Javascript Test > textExpressions 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props) { const [a, setA] = useState(() => 5); const [b, setB] = useState(() => 12); return ( normal: {a + b} conditional {a > 2 ? \\"hello\\" : \\"bye\\"} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > basic 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [name, setName] = useState(() => \\"Steve\\"); return ( setName(event.target.value)} value={name} /> Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > bindGroup 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [tortilla, setTortilla] = useState(() => \\"Plain\\"); const [fillings, setFillings] = useState(() => []); return ( setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> Tortilla: {tortilla} Fillings: {fillings} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > bindProperty 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [value, setValue] = useState(() => \\"hello\\"); return ; } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > classDirective 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [focus, setFocus] = useState(() => true); return ; } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > context 1`] = ` "'>' expected. (34:13) 32 | 33 | > 34 | <'activeTab'.Provider value={activeTab}>{activeTab} | ^ 35 | 36 | 37 | );" `; exports[`React Native > svelte > Typescript Test > each 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [numbers, setNumbers] = useState(() => [\\"one\\", \\"two\\", \\"three\\"]); return ( {numbers?.map((num) => ( {num} ))} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > eventHandlers 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; function MyComponent(props: any) { function log(msg = \\"hello\\") { console.log(msg); } return ( ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > html 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [html, setHtml] = useState(() => \\"bold\\"); return ; } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > ifElse 1`] = ` "import * as React from \\"react\\"; import { View, Text, Button } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [show, setShow] = useState(() => true); function toggle() { setShow(!show); } return ( <> {show ? ( <> ) : ( )} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > imports 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useState } from \\"react\\"; import Button from \\"./Button\\"; function MyComponent(props: any) { const [disabled, setDisabled] = useState(() => false); return ( ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > lifecycleHooks 1`] = ` "import * as React from \\"react\\"; import { View } from \\"react-native\\"; import { useEffect } from \\"react\\"; function MyComponent(props: any) { useEffect(() => { console.log(\\"onMount\\"); }, []); useEffect(() => { console.log(\\"onAfterUpdate\\"); }); useEffect(() => { return () => { console.log(\\"onDestroy\\"); }; }, []); return ; } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > reactive 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [name, setName] = useState(() => \\"Steve\\"); function lowercaseName() { return name.toLowerCase(); } return ( Lowercase: {lowercaseName()} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > reactiveWithFn 1`] = ` "import * as React from \\"react\\"; import { View, Text, TextInput } from \\"react-native\\"; import { useState, useEffect } from \\"react\\"; function MyComponent(props: any) { const [a, setA] = useState(() => 2); const [b, setB] = useState(() => 5); const [result, setResult] = useState(() => null); function calculateResult(a_, b_) { setResult(a_ * b_); } useEffect(() => { calculateResult(a, b); }, [a, b]); return ( setA(event.target.value)} value={a} /> setB(event.target.value)} value={b} /> Result: {result} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > slots 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; function MyComponent(props: any) { return ( <>{props.children || default} <> {props.Test || ( default )} ); } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > style 1`] = ` "import * as React from \\"react\\"; import { TextInput } from \\"react-native\\"; function MyComponent(props: any) { return ; } export default MyComponent; " `; exports[`React Native > svelte > Typescript Test > textExpressions 1`] = ` "import * as React from \\"react\\"; import { View, Text } from \\"react-native\\"; import { useState } from \\"react\\"; function MyComponent(props: any) { const [a, setA] = useState(() => 5); const [b, setB] = useState(() => 12); return ( normal: {a + b} conditional {a > 2 ? \\"hello\\" : \\"bye\\"} ); } export default MyComponent; " `; exports[`React Native > twrnc state complex style 1`] = ` "import * as React from \\"react\\"; import { StyleSheet, Text, Button } from \\"react-native\\"; import tw from \\"twrnc\\"; import { clsx } from \\"clsx\\"; function Button(props) { function buttonClasses() { return clsx(\\"px-4 py-2 rounded transition-colors\\", { \\"bg-blue-500 hover:bg-blue-600 text-white\\": props.type === \\"primary\\", \\"bg-gray-300 hover:bg-gray-400 text-black\\": props.type === \\"secondary\\", }); } return ( ); } export default Button; " `; exports[`React Native > twrnc state style 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text } from \\"react-native\\"; import { useState } from \\"react\\"; import tw from \\"twrnc\\"; function MyBasicComponent(props) { const [classState, setClassState] = useState(() => \\"testClassName\\"); return ( Hello! I can run in React, Vue, Solid, or Liquid! ); } export default MyBasicComponent; " `; exports[`React Native > twrnc style 1`] = ` "import * as React from \\"react\\"; import { View, StyleSheet, Text, Button } from \\"react-native\\"; import tw from \\"twrnc\\"; function MyComponent(props) { return ( ); } export default MyComponent; " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/react-state-builder.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`React - stateType: builder > jsx > Javascript Test > AdvancedRef 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef, useEffect } from \\"react\\"; function MyBasicRefComponent(props) { const inputRef = useRef(null); const inputNoArgRef = useRef(null); const state = useBuilderState({ name: \\"PatrickJS\\", onBlur: function onBlur() { // Maintain focus inputRef.current.focus(); }, lowerCaseName: function lowerCaseName() { return state.name.toLowerCase(); }, }); useEffect(() => { console.log(\\"Received an update\\"); }, [inputRef.current, inputNoArgRef.current]); return ( <>
    {props.showInput ? ( <> state.onBlur()} onChange={(event) => (state.name = event.target.value)} /> ) : null} Hello {state.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } export default MyBasicRefComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Basic 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; export const DEFAULT_VALUES = { name: \\"Steve\\", }; function MyBasicComponent(props) { const state = useBuilderState({ name: \\"Steve\\", underscore_fn_name() { return \\"bar\\"; }, age: 1, sports: [\\"\\"], }); return ( <>
    (state.name = myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
    ); } export default MyBasicComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Basic Context 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useContext, useRef, useEffect } from \\"react\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; function MyBasicComponent(props) { const state = useBuilderState({ name: \\"PatrickJS\\", onChange: function onChange() { const change = myService.method(\\"change\\"); console.log(change); }, }); const myService = useContext(MyService); const hasInitialized = useRef(false); if (!hasInitialized.current) { const hi = myService.method(\\"hi\\"); console.log(hi); hasInitialized.current = true; } useEffect(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }, []); return (
    {myService.method(\\"hello\\") + state.name} Hello! I can run in React, Vue, Solid, or Liquid! state.onChange()} />
    ); } export default MyBasicComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Basic OnMount Update 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef, useEffect } from \\"react\\"; function MyBasicOnMountUpdateComponent(props) { const state = useBuilderState({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"], }); const hasInitialized = useRef(false); if (!hasInitialized.current) { state.name = \\"PatrickJS onInit\\" + props.hi; hasInitialized.current = true; } useEffect(() => { state.name = \\"PatrickJS onMount\\" + props.bye; }, []); return
    Hello {state.name}
    ; } export default MyBasicOnMountUpdateComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Basic Outputs 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useEffect } from \\"react\\"; function MyBasicOutputsComponent(props) { const state = useBuilderState({ name: \\"PatrickJS\\" }); useEffect(() => { props.onMessageChange(state.name); props.onEvent(props.message); }, []); return
    ; } export default MyBasicOutputsComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ \\"use client\\"; import * as React from \\"react\\"; import { useEffect } from \\"react\\"; function MyBasicOutputsComponent(props) { const state = useBuilderState({ name: \\"PatrickJS\\" }); useEffect(() => { props.onMessageChange(state.name); props.onEvent(props.message); }, []); return
    ; } export default MyBasicOutputsComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicAttribute 1`] = ` "import * as React from \\"react\\"; function MyComponent(props) { const state = useBuilderState({}); return ; } export default MyComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import * as React from \\"react\\"; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; function MyBooleanAttribute(props) { const state = useBuilderState({}); return (
    {props.children ? ( <> {props.children} {props.type} ) : null}
    ); } export default MyBooleanAttribute; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicChildComponent 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; function MyBasicChildComponent(props) { const state = useBuilderState({ name: \\"Steve\\", dev: \\"PatrickJS\\", log: function log(message) { console.log(message); }, }); return (
    (state.name = name)} onEvent={(event) => state.log(\\"Test\\")} />
    ); } export default MyBasicChildComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicFor 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useEffect } from \\"react\\"; function MyBasicForComponent(props) { const state = useBuilderState({ name: \\"PatrickJS\\", names: [\\"Steve\\", \\"PatrickJS\\"], }); useEffect(() => { console.log(\\"onMount code\\"); }, []); return (
    {state.names?.map((person) => ( <> { state.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ))}
    ); } export default MyBasicForComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicRef 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef } from \\"react\\"; function MyBasicRefComponent(props) { const inputRef = useRef(null); const inputNoArgRef = useRef(null); const state = useBuilderState({ name: \\"PatrickJS\\", onBlur: function onBlur() { // Maintain focus inputRef.current?.focus(); }, lowerCaseName: function lowerCaseName() { return state.name.toLowerCase(); }, }); return ( <>
    {props.showInput ? ( <> state.onBlur()} onChange={(event) => (state.name = event.target.value)} /> ) : null} Hello {state.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } export default MyBasicRefComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicRefAssignment 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef } from \\"react\\"; function MyBasicRefAssignmentComponent(props) { const holdValueRef = useRef(\\"Patrick\\"); const state = useBuilderState({ handlerClick: function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", holdValueRef.current); holdValueRef.current = holdValueRef.current + \\"JS\\"; }, }); return (
    ); } export default MyBasicRefAssignmentComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > BasicRefPrevious 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef, useEffect } from \\"react\\"; export function usePrevious(value) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } function MyPreviousComponent(props) { const state = useBuilderState({ count: 0 }); const prevCount = useRef(state.count); useEffect(() => { prevCount.current = state.count; }, [state.count]); return (

    Now: {state.count}, before: {prevCount.current}

    ); } export default MyPreviousComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Button 1`] = ` "import * as React from \\"react\\"; function Button(props) { const state = useBuilderState({}); return (
    {props.link ? ( {props.text} ) : null} {!props.link ? ( ) : null}
    ); } export default Button; " `; exports[`React - stateType: builder > jsx > Javascript Test > Columns 1`] = ` "import * as React from \\"react\\"; function Column(props) { const state = useBuilderState({ getColumns() { return props.columns || []; }, getGutterSize() { return typeof props.space === \\"number\\" ? props.space || 0 : 20; }, getWidth(index) { const columns = state.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; }, getColumnCssWidth(index) { const columns = state.getColumns(); const gutterSize = state.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${state.getWidth(index)}% - \${subtractWidth}px)\`; }, }); return ( <>
    {props.columns?.map((column, index) => (
    {column.content} {index}
    ))}
    ); } export default Column; " `; exports[`React - stateType: builder > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import * as React from \\"react\\"; function ContentSlotCode(props) { const state = useBuilderState({}); return (
    <>{props.slotTesting}

    <>{props.children}
    ); } export default ContentSlotCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > ContentSlotJSX 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; function ContentSlotJsxCode(props) { props = { content: \\"\\", slotReference: undefined, slotContent: undefined, ...props, }; const state = useBuilderState({ name: \\"king\\", showContent: false, get cls() { return props.slotContent && props.children ? \`\${state.name}-content\` : \\"\\"; }, show() { props.slotContent ? 1 : \\"\\"; }, }); return ( <> {props.slotReference ? ( <>
    state.show()} className={state.cls} > {state.showContent && props.slotContent ? ( <>{props.content || \\"{props.content}\\"} ) : null}

    {props.children}
    ) : null} ); } export default ContentSlotJsxCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > CustomCode 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef, useEffect } from \\"react\\"; function CustomCode(props) { const elem = useRef(null); const state = useBuilderState({ scriptsInserted: [], scriptsRun: [], findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (state.scriptsInserted.includes(script.src)) { continue; } state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (state.scriptsRun.includes(script.innerText)) { continue; } try { state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } }, }); useEffect(() => { state.findAndRunScripts(); }, []); return (
    ); } export default CustomCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > Embed 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef, useEffect } from \\"react\\"; function CustomCode(props) { const elem = useRef(null); const state = useBuilderState({ scriptsInserted: [], scriptsRun: [], findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem.current && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.current.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (state.scriptsInserted.includes(script.src)) { continue; } state.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (state.scriptsRun.includes(script.innerText)) { continue; } try { state.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } }, }); useEffect(() => { state.findAndRunScripts(); }, []); return (
    ); } export default CustomCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > Form 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef } from \\"react\\"; import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; function FormComponent(props) { const formRef = useRef(null); const state = useBuilderState({ formState: \\"unsubmitted\\", responseData: null, formErrorMessage: \\"\\", get submissionState() { return (Builder.isEditing && props.previewState) || state.formState; }, onSubmit(event) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !( sendWithJs && props.action?.includes(\\"zapier.com\\") ) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body }, }); if (formRef.current) { formRef.current.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } state.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action /* TODO: throw error if no action URL */, { body, headers, method: props.method || \\"post\\" } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } state.formErrorMessage = message; } } state.responseData = body; state.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body }, }); if (formRef.current) { formRef.current.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if ( props.resetFormOnSubmit !== false ) { formRef.current.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if ( props.successUrl ) { if (formRef.current) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl }, }); formRef.current.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err }, }); if (formRef.current) { formRef.current.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } state.responseData = err; state.formState = \\"error\\"; } ); } }, }); return ( <> {\\" \\"}
    state.onSubmit(event)} {...props.attributes} > {props.builderBlock && props.builderBlock.children ? ( <> {props.builderBlock?.children?.map((block, index) => ( ))} ) : null} {state.submissionState === \\"error\\" ? ( ) : null} {state.submissionState === \\"sending\\" ? ( ) : null} {state.submissionState === \\"error\\" && state.responseData ? (
                {JSON.stringify(state.responseData, null, 2)}
              
    ) : null} {state.submissionState === \\"success\\" ? ( ) : null} {\\" \\"} {\\" \\"} ); } export default FormComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Image 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useRef, useEffect } from \\"react\\"; function Image(props) { const pictureRef = useRef(null); const state = useBuilderState({ scrollListener: null, imageLoaded: false, setLoaded() { state.imageLoaded = true; }, useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && state.isBrowser(); }, isBrowser: function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }, load: false, }); useEffect(() => { if (state.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (pictureRef.current) { const rect = pictureRef.current.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { state.load = true; state.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; state.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }, []); useEffect(() => { return () => { if (state.scrollListener) { window.removeEventListener(\\"scroll\\", state.scrollListener); } }; }, []); return ( <>
    {!state.useLazyLoading() || state.load ? ( {props.altText} state.setLoaded()} srcset={props.srcset} sizes={props.sizes} /> ) : null} {props.children}
    ); } export default Image; " `; exports[`React - stateType: builder > jsx > Javascript Test > Image State 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; function ImgStateComponent(props) { const state = useBuilderState({ canShow: true, images: [\\"http://example.com/qwik.png\\"], }); return (
    {state.images?.map((item, itemIndex) => ( ))}
    ); } export default ImgStateComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Img 1`] = ` "import * as React from \\"react\\"; import { Builder } from \\"@builder.io/sdk\\"; function ImgComponent(props) { const state = useBuilderState({}); return ( {props.altText} ); } export default ImgComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Input 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { Builder } from \\"@builder.io/sdk\\"; function FormInputComponent(props) { const state = useBuilderState({}); return ( props.onChange?.(event.target.value)} /> ); } export default FormInputComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > InputParent 1`] = ` "import * as React from \\"react\\"; import FormInputComponent from \\"./input.raw\\"; function Stepper(props) { const state = useBuilderState({ handleChange(value) { console.log(value); }, }); return ( state.handleChange(value)} /> ); } export default Stepper; " `; exports[`React - stateType: builder > jsx > Javascript Test > NestedStore 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; function NestedStore(props) { const state = useBuilderState({ _id: \\"abc\\", _messageId: state._id + \\"-message\\", }); return (
    Test

    Message

    ); } export default NestedStore; " `; exports[`React - stateType: builder > jsx > Javascript Test > RawText 1`] = ` "import * as React from \\"react\\"; function RawText(props) { const state = useBuilderState({}); return ( ); } export default RawText; " `; exports[`React - stateType: builder > jsx > Javascript Test > Section 1`] = ` "import * as React from \\"react\\"; function SectionComponent(props) { const state = useBuilderState({}); return (
    {props.children}
    ); } export default SectionComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > Select 1`] = ` "import * as React from \\"react\\"; import { Builder } from \\"@builder.io/sdk\\"; function SelectComponent(props) { const state = useBuilderState({}); return ( ); } export default SelectComponent; " `; exports[`React - stateType: builder > jsx > Javascript Test > SlotDefault 1`] = ` "import * as React from \\"react\\"; function SlotCode(props) { const state = useBuilderState({}); return (
    <> {props.children ||
    Default content
    }
    ); } export default SlotCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > SlotHtml 1`] = ` "import * as React from \\"react\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props) { const state = useBuilderState({}); return (
    Hello
    }>
    ); } export default SlotCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > SlotJsx 1`] = ` "import * as React from \\"react\\"; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props) { const state = useBuilderState({}); return (
    Hello
    } />
    ); } export default SlotCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > SlotNamed 1`] = ` "import * as React from \\"react\\"; function SlotCode(props) { const state = useBuilderState({}); return (
    <>{props.myAwesomeSlot} <>{props.top} <>{props.left || \\"Default left\\"} <>{props.children || \\"Default Child\\"}
    ); } export default SlotCode; " `; exports[`React - stateType: builder > jsx > Javascript Test > Stamped.io 1`] = ` "\\"use client\\"; import * as React from \\"react\\"; import { useEffect } from \\"react\\"; import { kebabCase, snakeCase } from \\"lodash\\"; function SmileReviews(props) { const state = useBuilderState({ reviews: [], name: \\"test\\", showReviewPrompt: false, kebabCaseValue() { return kebabCase(\\"testThat\\"); }, snakeCaseValue() { return snakeCase(\\"testThis\\"); }, }); useEffect(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { state.reviews = data.data; }); }, []); return ( <>
    {state.showReviewPrompt || \\"asdf\\" ? ( <> {(review, _index) => { const index = _index(); return (
    N: {index}
    {review.author}
    {review.reviewMessage}
    ); }}
    ); } export default SmileReviews; " `; exports[`Solid > jsx > Javascript Test > Stamped.io 2`] = ` "import { Show, For, onMount, createSignal, createMemo } from \\"solid-js\\"; import { kebabCase, snakeCase } from \\"lodash\\"; function SmileReviews(props) { const [reviews, setReviews] = createSignal([]); const [name, setName] = createSignal(\\"test\\"); const [showReviewPrompt, setShowReviewPrompt] = createSignal(false); function kebabCaseValue() { return kebabCase(\\"testThat\\"); } function snakeCaseValue() { return snakeCase(\\"testThis\\"); } onMount(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { setReviews(data.data); }); }); return ( <>
    {(review, _index) => { const index = _index(); return (
    N: {index}
    {review.author}
    {review.reviewMessage}
    ); }}
    ); } export default SmileReviews; " `; exports[`Solid > jsx > Javascript Test > StoreComment 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props) { const [foo, setFoo] = createSignal(true); function bar() {} return ( <> <>{foo()} ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Javascript Test > StoreComment 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props) { const [foo, setFoo] = createSignal(true); function bar() {} return ( <> <>{foo()} ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [errors, setErrors] = createSignal({}); function foo(errors) { return errors; } return ( <> <>{foo(errors())} ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > StoreShadowVars 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [errors, setErrors] = createSignal({}); function foo(errors) { return errors; } return ( <> <>{foo(errors())} ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > StoreWithState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [foo, setFoo] = createSignal(false); function bar() { return foo(); } return ( <> <>{bar()} ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > StoreWithState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [foo, setFoo] = createSignal(false); function bar() { return foo(); } return ( <> <>{bar()} ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > Submit 1`] = ` "function SubmitButton(props) { return ( <> ); } export default SubmitButton; " `; exports[`Solid > jsx > Javascript Test > Submit 2`] = ` "function SubmitButton(props) { return ( <> ); } export default SubmitButton; " `; exports[`Solid > jsx > Javascript Test > Text 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import { Builder } from \\"@builder.io/sdk\\"; function Text(props) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    my name

    ' } >
    ); } export default Text; " `; exports[`Solid > jsx > Javascript Test > Text 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import { Builder } from \\"@builder.io/sdk\\"; function Text(props) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    my name

    ' } >
    ); } export default Text; " `; exports[`Solid > jsx > Javascript Test > Textarea 1`] = ` "function Textarea(props) { return ( <> ); } export default Textarea; " `; exports[`Solid > jsx > Javascript Test > Textarea 2`] = ` "function Textarea(props) { return ( <> ); } export default Textarea; " `; exports[`Solid > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function UseValueAndFnFromStore(props) { const [_id, set_id] = createSignal(\\"abc\\"); const [_active, set_active] = createSignal(false); function _do(id) { set_active(!!id); if (props.onChange) { props.onChange(_active()); } } return ( <>
    Test
    ); } export default UseValueAndFnFromStore; " `; exports[`Solid > jsx > Javascript Test > UseValueAndFnFromStore 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function UseValueAndFnFromStore(props) { const [_id, set_id] = createSignal(\\"abc\\"); const [_active, set_active] = createSignal(false); function _do(id) { set_active(!!id); if (props.onChange) { props.onChange(_active()); } } return ( <>
    Test
    ); } export default UseValueAndFnFromStore; " `; exports[`Solid > jsx > Javascript Test > Video 1`] = ` "function Video(props) { return ( <> ); } export default Video; " `; exports[`Solid > jsx > Javascript Test > Video 2`] = ` "function Video(props) { return ( <> ); } export default Video; " `; exports[`Solid > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [name, setName] = createSignal(\\"steve\\"); function setName(value) { setName(value); } function updateNameWithArrowFn(value) { setName(value); } return ( <>
    Hello {name()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > arrowFunctionInUseStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [name, setName] = createSignal(\\"steve\\"); function setName(value) { setName(value); } function updateNameWithArrowFn(value) { setName(value); } return ( <>
    Hello {name()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > basicForFragment 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function BasicForFragment(props) { const [id, setId] = createSignal(\\"xyz\\"); return ( <>
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    ); } export default BasicForFragment; " `; exports[`Solid > jsx > Javascript Test > basicForFragment 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function BasicForFragment(props) { const [id, setId] = createSignal(\\"xyz\\"); return ( <>
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    ); } export default BasicForFragment; " `; exports[`Solid > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; function MyBasicForNoTagRefComponent(props) { const [name, setName] = createSignal(\\"VincentW\\"); const [TagName, setTagName] = createSignal(\\"div\\"); const [tag, setTag] = createSignal(\\"span\\"); const TagNameGetter = createMemo(() => { return \\"span\\"; }); return ( <> Hello {name()} {(action, _index) => { const index = _index(); return ( {action.text} ); }} ); } export default MyBasicForNoTagRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicForNoTagReference 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; function MyBasicForNoTagRefComponent(props) { const [name, setName] = createSignal(\\"VincentW\\"); const [TagName, setTagName] = createSignal(\\"div\\"); const [tag, setTag] = createSignal(\\"span\\"); const TagNameGetter = createMemo(() => { return \\"span\\"; }); return ( <> Hello {name()} {(action, _index) => { const index = _index(); return ( {action.text} ); }} ); } export default MyBasicForNoTagRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicForwardRef 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicForwardRefComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicForwardRef 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicForwardRefComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicForwardRefComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicForwardRefMetadata 2`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicForwardRefComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyBasicOnUpdateReturnComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); const onUpdateFn_0_name__ = createMemo(() => name()); function onUpdateFn_0() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { setName(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; } createEffect(on(() => [onUpdateFn_0_name__()], onUpdateFn_0)); return ( <>
    Hello! {name()}
    ); } export default MyBasicOnUpdateReturnComponent; " `; exports[`Solid > jsx > Javascript Test > basicOnUpdateReturn 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyBasicOnUpdateReturnComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); const onUpdateFn_0_name__ = createMemo(() => name()); function onUpdateFn_0() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { setName(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; } createEffect(on(() => [onUpdateFn_0_name__()], onUpdateFn_0)); return ( <>
    Hello! {name()}
    ); } export default MyBasicOnUpdateReturnComponent; " `; exports[`Solid > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { onMount } from \\"solid-js\\"; function BasicRefAttributePassingComponent(props) { let buttonRef; onMount(() => { console.log(\\"onMount\\"); }); return ( <> ); } export default BasicRefAttributePassingComponent; " `; exports[`Solid > jsx > Javascript Test > basicRefAttributePassing 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { onMount } from \\"solid-js\\"; function BasicRefAttributePassingComponent(props) { let buttonRef; onMount(() => { console.log(\\"onMount\\"); }); return ( <> ); } export default BasicRefAttributePassingComponent; " `; exports[`Solid > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ function BasicRefAttributePassingCustomRefComponent(props) { let buttonRef; return ( <>
    ); } export default BasicRefAttributePassingCustomRefComponent; " `; exports[`Solid > jsx > Javascript Test > basicRefAttributePassingCustomRef 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ function BasicRefAttributePassingCustomRefComponent(props) { let buttonRef; return ( <>
    ); } export default BasicRefAttributePassingCustomRefComponent; " `; exports[`Solid > jsx > Javascript Test > class + ClassName + css 1`] = ` "import MyComp from \\"./my-component\\"; function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > class + ClassName + css 2`] = ` "import MyComp from \\"./my-component\\"; function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > class + css 1`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > class + css 2`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > className + css 1`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > className + css 2`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > className 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function ClassNameCode(props) { const [bindings, setBindings] = createSignal(\\"a binding\\"); return ( <>
    Without Binding
    With binding
    ); } export default ClassNameCode; " `; exports[`Solid > jsx > Javascript Test > className 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function ClassNameCode(props) { const [bindings, setBindings] = createSignal(\\"a binding\\"); return ( <>
    Without Binding
    With binding
    ); } export default ClassNameCode; " `; exports[`Solid > jsx > Javascript Test > classState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [classState, setClassState] = createSignal(\\"testClassName\\"); const [styleState, setStyleState] = createSignal({ color: \\"red\\", }); return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > classState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [classState, setClassState] = createSignal(\\"testClassName\\"); const [styleState, setStyleState] = createSignal({ color: \\"red\\", }); return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ function MyBasicComponent(props) { return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > classnameProps 2`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ function MyBasicComponent(props) { return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ function ComplexMetaRaw(props) { return ( <>
    ); } export default ComplexMetaRaw; " `; exports[`Solid > jsx > Javascript Test > complexMeta 2`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ function ComplexMetaRaw(props) { return ( <>
    ); } export default ComplexMetaRaw; " `; exports[`Solid > jsx > Javascript Test > componentWithContext 1`] = ` "import { useContext } from \\"solid-js\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> <> <>{foo.value} ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Javascript Test > componentWithContext 2`] = ` "import { useContext } from \\"solid-js\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> <> <>{foo.value} ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import { useContext } from \\"solid-js\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> <> <>{foo.value}
    other
    ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Javascript Test > componentWithContextMultiRoot 2`] = ` "import { useContext } from \\"solid-js\\"; import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props) { const foo = useContext(Context1); return ( <> <> <>{foo.value}
    other
    ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Javascript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; function RenderContent(props) { return ( <>
    setting context
    ); } export default RenderContent; " `; exports[`Solid > jsx > Javascript Test > contentState 2`] = ` "import BuilderContext from \\"@dummy/context.js\\"; function RenderContent(props) { return ( <>
    setting context
    ); } export default RenderContent; " `; exports[`Solid > jsx > Javascript Test > defaultProps 1`] = ` "import { Show } from \\"solid-js\\"; function Button(props) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > defaultProps 2`] = ` "import { Show } from \\"solid-js\\"; function Button(props) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { Show } from \\"solid-js\\"; function Button(props) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > defaultPropsOutsideComponent 2`] = ` "import { Show } from \\"solid-js\\"; function Button(props) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "const DEFAULT_VALUES = { name: \\"Sami\\", }; function ComponentWithTypes(props) { return ( <>
    {\\" \\"} Hello {props.name || DEFAULT_VALUES.name}
    ); } export default ComponentWithTypes; " `; exports[`Solid > jsx > Javascript Test > defaultValsWithTypes 2`] = ` "const DEFAULT_VALUES = { name: \\"Sami\\", }; function ComponentWithTypes(props) { return ( <>
    {\\" \\"} Hello {props.name || DEFAULT_VALUES.name}
    ); } export default ComponentWithTypes; " `; exports[`Solid > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function EventInputAndChange(props) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} onInput={(event) => setName(event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default EventInputAndChange; " `; exports[`Solid > jsx > Javascript Test > eventInputAndChange 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function EventInputAndChange(props) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} onInput={(event) => setName(event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default EventInputAndChange; " `; exports[`Solid > jsx > Javascript Test > eventProps 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function EventPropsComponent(props) { function handleClick() { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } } return ( <> ); } export default EventPropsComponent; " `; exports[`Solid > jsx > Javascript Test > eventProps 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function EventPropsComponent(props) { function handleClick() { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } } return ( <> ); } export default EventPropsComponent; " `; exports[`Solid > jsx > Javascript Test > expressionState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [refToUse, setRefToUse] = createSignal( !(props.componentRef instanceof Function) ? props.componentRef : null ); return ( <>
    {refToUse()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > expressionState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [refToUse, setRefToUse] = createSignal( !(props.componentRef instanceof Function) ? props.componentRef : null ); return ( <>
    {refToUse()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ function FigmaButton(props) { return ( <> ); } export default FigmaButton; " `; exports[`Solid > jsx > Javascript Test > figmaMeta 2`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ function FigmaButton(props) { return ( <> ); } export default FigmaButton; " `; exports[`Solid > jsx > Javascript Test > functionProps 1`] = ` "function MyBasicComponent(props) { return ( <>

    x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} >

    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > functionProps 2`] = ` "function MyBasicComponent(props) { return ( <>

    x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} >

    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > getterState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function Button(props) { const foo2 = createMemo(() => { return props.foo + \\"foo\\"; }); const bar = createMemo(() => { return \\"bar\\"; }); function baz(i) { return i + foo2().length; } return ( <>

    {foo2()}

    {bar()}

    {baz(1)}

    ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > getterState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function Button(props) { const foo2 = createMemo(() => { return props.foo + \\"foo\\"; }); const bar = createMemo(() => { return \\"bar\\"; }); function baz(i) { return i + foo2().length; } return ( <>

    {foo2()}

    {bar()}

    {baz(1)}

    ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > import types 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import RenderBlock from \\"./builder-render-block.raw\\"; function RenderContent(props) { function getRenderContentProps(block, index) { return { block: block, index: index, }; } return ( <> ); } export default RenderContent; " `; exports[`Solid > jsx > Javascript Test > import types 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import RenderBlock from \\"./builder-render-block.raw\\"; function RenderContent(props) { function getRenderContentProps(block, index) { return { block: block, index: index, }; } return ( <> ); } export default RenderContent; " `; exports[`Solid > jsx > Javascript Test > layerName 1`] = ` "function MyLayerNameComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyLayerNameComponent; " `; exports[`Solid > jsx > Javascript Test > layerName 2`] = ` "function MyLayerNameComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyLayerNameComponent; " `; exports[`Solid > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function MultipleOnUpdate(props) { return ( <>
    ); } export default MultipleOnUpdate; " `; exports[`Solid > jsx > Javascript Test > multipleOnUpdate 2`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function MultipleOnUpdate(props) { return ( <>
    ); } export default MultipleOnUpdate; " `; exports[`Solid > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MultipleOnUpdateWithDeps(props) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const [c, setC] = createSignal(\\"c\\"); const [d, setD] = createSignal(\\"d\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { console.log(\\"Runs when a or b changes\\", a(), b()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); const onUpdateFn_1_c__ = createMemo(() => c()); const onUpdateFn_1_d__ = createMemo(() => d()); function onUpdateFn_1() { console.log(\\"Runs when c or d changes\\", c(), d()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_1_c__(), onUpdateFn_1_d__()], onUpdateFn_1) ); return ( <>
    ); } export default MultipleOnUpdateWithDeps; " `; exports[`Solid > jsx > Javascript Test > multipleOnUpdateWithDeps 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MultipleOnUpdateWithDeps(props) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const [c, setC] = createSignal(\\"c\\"); const [d, setD] = createSignal(\\"d\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { console.log(\\"Runs when a or b changes\\", a(), b()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); const onUpdateFn_1_c__ = createMemo(() => c()); const onUpdateFn_1_d__ = createMemo(() => d()); function onUpdateFn_1() { console.log(\\"Runs when c or d changes\\", c(), d()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_1_c__(), onUpdateFn_1_d__()], onUpdateFn_1) ); return ( <>
    ); } export default MultipleOnUpdateWithDeps; " `; exports[`Solid > jsx > Javascript Test > multipleSpreads 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [attrs, setAttrs] = createSignal({ hello: \\"world\\", }); return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > multipleSpreads 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [attrs, setAttrs] = createSignal({ hello: \\"world\\", }); return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > nestedShow 1`] = ` "import { Show } from \\"solid-js\\"; function NestedShow(props) { return ( <> else-condition-A
    } when={props.conditionA}> else-condition-B
    } when={!props.conditionB}>
    if condition A and condition B
    ); } export default NestedShow; " `; exports[`Solid > jsx > Javascript Test > nestedShow 2`] = ` "import { Show } from \\"solid-js\\"; function NestedShow(props) { return ( <> else-condition-A
    } when={props.conditionA}> else-condition-B} when={!props.conditionB}>
    if condition A and condition B
    ); } export default NestedShow; " `; exports[`Solid > jsx > Javascript Test > nestedStyles 1`] = ` "function NestedStyles(props) { return ( <>
    Hello world
    ); } export default NestedStyles; " `; exports[`Solid > jsx > Javascript Test > nestedStyles 2`] = ` "function NestedStyles(props) { return ( <>
    Hello world
    ); } export default NestedStyles; " `; exports[`Solid > jsx > Javascript Test > normalizeLayerNames 1`] = ` "function MyNormalizedLayerNamesComponent(props) { return ( <>
    Emoji
    Dashes
    CamelCase
    Special chars
    Special chars with dashes
    Single Number
    Multiple Numbers
    Chars with numbers at end
    Chars with numbers at start
    Numnbers separated by dash
    Emoji
    Number
    ); } export default MyNormalizedLayerNamesComponent; " `; exports[`Solid > jsx > Javascript Test > normalizeLayerNames 2`] = ` "function MyNormalizedLayerNamesComponent(props) { return ( <>
    Emoji
    Dashes
    CamelCase
    Special chars
    Special chars with dashes
    Single Number
    Multiple Numbers
    Chars with numbers at end
    Chars with numbers at start
    Numnbers separated by dash
    Emoji
    Number
    ); } export default MyNormalizedLayerNamesComponent; " `; exports[`Solid > jsx > Javascript Test > onEvent 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function Embed(props) { function foo(event) { console.log(\\"test2\\"); } function elem_onInitEditingBldr(event) { console.log(\\"test\\"); foo(event); } let elem; onMount(() => { elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }); return ( <>
    elem_onInitEditingBldr(event)} >
    Test
    ); } export default Embed; " `; exports[`Solid > jsx > Javascript Test > onEvent 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function Embed(props) { function foo(event) { console.log(\\"test2\\"); } function elem_onInitEditingBldr(event) { console.log(\\"test\\"); foo(event); } let elem; onMount(() => { elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }); return ( <>
    elem_onInitEditingBldr(event)} >
    Test
    ); } export default Embed; " `; exports[`Solid > jsx > Javascript Test > onInit & onMount 1`] = ` "import { onMount } from \\"solid-js\\"; function OnInit(props) { console.log(\\"onInit\\"); onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default OnInit; " `; exports[`Solid > jsx > Javascript Test > onInit & onMount 2`] = ` "import { onMount } from \\"solid-js\\"; function OnInit(props) { console.log(\\"onInit\\"); onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default OnInit; " `; exports[`Solid > jsx > Javascript Test > onInit 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export const defaultValues = { name: \\"PatrickJS\\", }; function OnInit(props) { const [name, setName] = createSignal(\\"\\"); setName(defaultValues.name || props.name); console.log(\\"set defaults with props\\"); return ( <>
    Default name defined by parent {name()}
    ); } export default OnInit; " `; exports[`Solid > jsx > Javascript Test > onInit 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export const defaultValues = { name: \\"PatrickJS\\", }; function OnInit(props) { const [name, setName] = createSignal(\\"\\"); setName(defaultValues.name || props.name); console.log(\\"set defaults with props\\"); return ( <>
    Default name defined by parent {name()}
    ); } export default OnInit; " `; exports[`Solid > jsx > Javascript Test > onInitPlain 1`] = ` "function OnInitPlain(props) { console.log(\\"onInit\\"); return ( <>
    ); } export default OnInitPlain; " `; exports[`Solid > jsx > Javascript Test > onInitPlain 2`] = ` "function OnInitPlain(props) { console.log(\\"onInit\\"); return ( <>
    ); } export default OnInitPlain; " `; exports[`Solid > jsx > Javascript Test > onMount 1`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props) { onMount(() => { console.log(\\"Runs on mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Javascript Test > onMount 2`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props) { onMount(() => { console.log(\\"Runs on mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Javascript Test > onMountMultiple 1`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props) { onMount(() => { console.log(\\"Runs on mount\\"); }); onMount(() => { console.log(\\"Another one runs on Mount\\"); }); onMount(() => { console.log(\\"SSR runs on Mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Javascript Test > onMountMultiple 2`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props) { onMount(() => { console.log(\\"Runs on mount\\"); }); onMount(() => { console.log(\\"Another one runs on Mount\\"); }); onMount(() => { console.log(\\"SSR runs on Mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Javascript Test > onUpdate 1`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function OnUpdate(props) { return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Javascript Test > onUpdate 2`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function OnUpdate(props) { return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function OnUpdateWithDeps(props) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); const onUpdateFn_0_props_size = createMemo(() => props.size); function onUpdateFn_0() { console.log(\\"Runs when a, b or size changes\\", a(), b(), props.size); } createEffect( on( () => [onUpdateFn_0_a__(), onUpdateFn_0_b__(), onUpdateFn_0_props_size()], onUpdateFn_0 ) ); return ( <>
    ); } export default OnUpdateWithDeps; " `; exports[`Solid > jsx > Javascript Test > onUpdateWithDeps 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function OnUpdateWithDeps(props) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); const onUpdateFn_0_props_size = createMemo(() => props.size); function onUpdateFn_0() { console.log(\\"Runs when a, b or size changes\\", a(), b(), props.size); } createEffect( on( () => [onUpdateFn_0_a__(), onUpdateFn_0_b__(), onUpdateFn_0_props_size()], onUpdateFn_0 ) ); return ( <>
    ); } export default OnUpdateWithDeps; " `; exports[`Solid > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} function MyBasicComponent(props) { return ( <>
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > preserveExportOrLocalStatement 2`] = ` "const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value) {} function MyBasicComponent(props) { return ( <>
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > preserveTyping 1`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > preserveTyping 2`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > propsDestructure 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > propsDestructure 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > propsInterface 1`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > propsInterface 2`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > propsType 1`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > propsType 2`] = ` "function MyBasicComponent(props) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function OnUpdate(props) { function foo(params) {} function bar() {} function zoo() { const params = { cb: bar, }; } return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Javascript Test > referencingFunInsideHook 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function OnUpdate(props) { function foo(params) {} function bar() {} function zoo() { const params = { cb: bar, }; } return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Javascript Test > renderBlock 1`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component\\"; import RenderRepeatedBlock from \\"./render-repeated-block\\"; function RenderBlock(props) { const component = createMemo(() => { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); const tag = createMemo(() => { return getBlockTag(useBlock()); }); const useBlock = createMemo(() => { return repeatItemData() ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); }); const actions = createMemo(() => { return getBlockActions({ block: useBlock(), state: props.context.state, context: props.context.context, }); }); const attributes = createMemo(() => { const blockProperties = getBlockProperties(useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: blockProperties.style, }), } : {}), }; }); const shouldWrap = createMemo(() => { return !component()?.noWrap; }); const renderComponentProps = createMemo(() => { return { blockChildren: useChildren(), componentRef: component()?.component, componentOptions: { ...getBlockComponentOptions(useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap() ? {} : { attributes: { ...attributes(), ...actions() }, }), customBreakpoints: childrenContext()?.content?.meta?.breakpoints, }, context: childrenContext(), }; }); const useChildren = createMemo(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return useBlock().children ?? []; }); const childrenWithoutParentComponent = createMemo(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component()?.component && !repeatItemData(); return shouldRenderChildrenOutsideRef ? useChildren() : []; }); const repeatItemData = createMemo(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); const inheritedTextStyles = createMemo(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: attributes().style, }); return extractTextStyles(styles); }); const childrenContext = createMemo(() => { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles(), }; }); const renderComponentTag = createMemo(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); return ( <> } when={shouldWrap()} > {(data, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} ); } export default RenderBlock; " `; exports[`Solid > jsx > Javascript Test > renderBlock 2`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import BlockStyles from \\"./block-styles\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component\\"; import RenderRepeatedBlock from \\"./render-repeated-block\\"; function RenderBlock(props) { const component = createMemo(() => { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); const tag = createMemo(() => { return getBlockTag(useBlock()); }); const useBlock = createMemo(() => { return repeatItemData() ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); }); const actions = createMemo(() => { return getBlockActions({ block: useBlock(), state: props.context.state, context: props.context.context, }); }); const attributes = createMemo(() => { const blockProperties = getBlockProperties(useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: blockProperties.style, }), } : {}), }; }); const shouldWrap = createMemo(() => { return !component()?.noWrap; }); const renderComponentProps = createMemo(() => { return { blockChildren: useChildren(), componentRef: component()?.component, componentOptions: { ...getBlockComponentOptions(useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap() ? {} : { attributes: { ...attributes(), ...actions() }, }), customBreakpoints: childrenContext()?.content?.meta?.breakpoints, }, context: childrenContext(), }; }); const useChildren = createMemo(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return useBlock().children ?? []; }); const childrenWithoutParentComponent = createMemo(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component()?.component && !repeatItemData(); return shouldRenderChildrenOutsideRef ? useChildren() : []; }); const repeatItemData = createMemo(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); const inheritedTextStyles = createMemo(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: attributes().style, }); return extractTextStyles(styles); }); const childrenContext = createMemo(() => { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles(), }; }); const renderComponentTag = createMemo(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); return ( <> } when={shouldWrap()} > {(data, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} ); } export default RenderBlock; " `; exports[`Solid > jsx > Javascript Test > renderContentExample 1`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks\\"; function RenderContent(props) { onMount(() => { sendComponentsToVisualEditor(props.customComponents); }); const onUpdateFn_0_props_content = createMemo(() => props.content); function onUpdateFn_0() { dispatchNewContentToVisualEditor(props.content); } createEffect(on(() => [onUpdateFn_0_props_content()], onUpdateFn_0)); return ( <>
    trackClick(props.content.id)} >
    ); } export default RenderContent; " `; exports[`Solid > jsx > Javascript Test > renderContentExample 2`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks\\"; function RenderContent(props) { onMount(() => { sendComponentsToVisualEditor(props.customComponents); }); const onUpdateFn_0_props_content = createMemo(() => props.content); function onUpdateFn_0() { dispatchNewContentToVisualEditor(props.content); } createEffect(on(() => [onUpdateFn_0_props_content()], onUpdateFn_0)); return ( <>
    trackClick(props.content.id)} >
    ); } export default RenderContent; " `; exports[`Solid > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { Show } from \\"solid-js\\"; function Button(props) { return ( <> <> {props.text} ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > rootFragmentMultiNode 2`] = ` "import { Show } from \\"solid-js\\"; function Button(props) { return ( <> <> {props.text} ); } export default Button; " `; exports[`Solid > jsx > Javascript Test > rootShow 1`] = ` "import { Show } from \\"solid-js\\"; function RenderStyles(props) { return ( <> Foo} when={props.foo === \\"bar\\"}>
    Bar
    ); } export default RenderStyles; " `; exports[`Solid > jsx > Javascript Test > rootShow 2`] = ` "import { Show } from \\"solid-js\\"; function RenderStyles(props) { return ( <> Foo} when={props.foo === \\"bar\\"}>
    Bar
    ); } export default RenderStyles; " `; exports[`Solid > jsx > Javascript Test > self-referencing component 1`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props) { return ( <>
    {props.name}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > self-referencing component 2`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props) { return ( <>
    {props.name}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props) { return ( <>
    {props.name} {props.children}
    Wayne
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > self-referencing component with children 2`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props) { return ( <>
    {props.name} {props.children}
    Wayne
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > setState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function SetState(props) { const [n, setN] = createSignal([\\"123\\"]); function someFn() { n()[0] = \\"123\\"; } return ( <>
    ); } export default SetState; " `; exports[`Solid > jsx > Javascript Test > setState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function SetState(props) { const [n, setN] = createSignal([\\"123\\"]); function someFn() { n()[0] = \\"123\\"; } return ( <>
    ); } export default SetState; " `; exports[`Solid > jsx > Javascript Test > showExpressions 1`] = ` "import { Show } from \\"solid-js\\"; function ShowWithOtherValues(props) { return ( <>
    ContentA} when={props.conditionA}> Content0 ContentA ContentA} when={props.conditionA}> ContentB ContentB} when={props.conditionA}> {undefined} ContentC ContentC} when={props.conditionA}> ContentD ContentD} when={props.conditionA}> hello} when={props.conditionA}> ContentE ContentE} when={props.conditionA}> hello 123} when={props.conditionA}> ContentF ContentF} when={props.conditionA}> 123 9mb} when={props.conditionB === \\"Complete\\"}> 20mb } when={props.conditionA === \\"Default\\"} > 4mb 4mb} when={props.conditionA === \\"Default\\"}> 9mb} when={props.conditionB === \\"Complete\\"}> 20mb complete else
    } when={props.conditionC === \\"Complete\\"} > dff } when={props.conditionA === \\"Default\\"} > 9mb} when={props.conditionB === \\"Complete\\"}>
    complete
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Javascript Test > showExpressions 2`] = ` "import { Show } from \\"solid-js\\"; function ShowWithOtherValues(props) { return ( <>
    ContentA} when={props.conditionA}> Content0 ContentA ContentA} when={props.conditionA}> ContentB ContentB} when={props.conditionA}> {undefined} ContentC ContentC} when={props.conditionA}> ContentD ContentD} when={props.conditionA}> hello} when={props.conditionA}> ContentE ContentE} when={props.conditionA}> hello 123} when={props.conditionA}> ContentF ContentF} when={props.conditionA}> 123 9mb} when={props.conditionB === \\"Complete\\"}> 20mb } when={props.conditionA === \\"Default\\"} > 4mb 4mb} when={props.conditionA === \\"Default\\"}> 9mb} when={props.conditionB === \\"Complete\\"}> 20mb complete else
    } when={props.conditionC === \\"Complete\\"} > dff } when={props.conditionA === \\"Default\\"} > 9mb} when={props.conditionB === \\"Complete\\"}>
    complete
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Javascript Test > showWithFor 1`] = ` "import { Show, For } from \\"solid-js\\"; function NestedShow(props) { return ( <> else-condition-A} when={props.conditionA}> {(item, _index) => { const idx = _index(); return
    {item}
    ; }}
    ); } export default NestedShow; " `; exports[`Solid > jsx > Javascript Test > showWithFor 2`] = ` "import { Show, For } from \\"solid-js\\"; function NestedShow(props) { return ( <> else-condition-A} when={props.conditionA}> {(item, _index) => { const idx = _index(); return
    {item}
    ; }}
    ); } export default NestedShow; " `; exports[`Solid > jsx > Javascript Test > showWithOtherValues 1`] = ` "import { Show } from \\"solid-js\\"; function ShowWithOtherValues(props) { return ( <>
    ContentA ContentB ContentC ContentD hello} when={props.conditionA}> ContentE 123} when={props.conditionA}> ContentF
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Javascript Test > showWithOtherValues 2`] = ` "import { Show } from \\"solid-js\\"; function ShowWithOtherValues(props) { return ( <>
    ContentA ContentB ContentC ContentD hello} when={props.conditionA}> ContentE 123} when={props.conditionA}> ContentF
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Javascript Test > showWithRootText 1`] = ` "import { Show } from \\"solid-js\\"; function ShowRootText(props) { return ( <> else-condition-A} when={props.conditionA}> ContentA ); } export default ShowRootText; " `; exports[`Solid > jsx > Javascript Test > showWithRootText 2`] = ` "import { Show } from \\"solid-js\\"; function ShowRootText(props) { return ( <> else-condition-A} when={props.conditionA}> ContentA ); } export default ShowRootText; " `; exports[`Solid > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const onUpdateFn_0_props_id = createMemo(() => props.id); const onUpdateFn_0_props_foo_value_bar_baz = createMemo( () => props.foo.value.bar.baz ); function onUpdateFn_0() { console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.value.bar.baz); } createEffect( on( () => [onUpdateFn_0_props_id(), onUpdateFn_0_props_foo_value_bar_baz()], onUpdateFn_0 ) ); return ( <>
    {props.id} {props.foo.value.bar.baz}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > signalsOnUpdate 2`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const onUpdateFn_0_props_id = createMemo(() => props.id); const onUpdateFn_0_props_foo_value_bar_baz = createMemo( () => props.foo.value.bar.baz ); function onUpdateFn_0() { console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.value.bar.baz); } createEffect( on( () => [onUpdateFn_0_props_id(), onUpdateFn_0_props_foo_value_bar_baz()], onUpdateFn_0 ) ); return ( <>
    {props.id} {props.foo.value.bar.baz}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > spreadAttrs 1`] = ` "function MyBasicComponent(props) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > spreadAttrs 2`] = ` "function MyBasicComponent(props) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > spreadNestedProps 1`] = ` "function MyBasicComponent(props) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > spreadNestedProps 2`] = ` "function MyBasicComponent(props) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > spreadProps 1`] = ` "function MyBasicComponent(props) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > spreadProps 2`] = ` "function MyBasicComponent(props) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Javascript Test > store-async-function 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props) { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } return ( <>
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Javascript Test > store-async-function 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props) { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } return ( <>
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Javascript Test > string-literal-store 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props) { const [foo, setFoo] = createSignal(123); return ( <>
    {foo()}
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Javascript Test > string-literal-store 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props) { const [foo, setFoo] = createSignal(123); return ( <>
    {foo()}
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Javascript Test > styleClassAndCss 1`] = ` "function MyComponent(props) { return ( <>
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > styleClassAndCss 2`] = ` "function MyComponent(props) { return ( <>
    ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "function StylePropClassAndCss(props) { return ( <>
    ); } export default StylePropClassAndCss; " `; exports[`Solid > jsx > Javascript Test > stylePropClassAndCss 2`] = ` "function StylePropClassAndCss(props) { return ( <>
    ); } export default StylePropClassAndCss; " `; exports[`Solid > jsx > Javascript Test > subComponent 1`] = ` "import Foo from \\"./foo-sub-component\\"; function SubComponent(props) { return ( <> ); } export default SubComponent; " `; exports[`Solid > jsx > Javascript Test > subComponent 2`] = ` "import Foo from \\"./foo-sub-component\\"; function SubComponent(props) { return ( <> ); } export default SubComponent; " `; exports[`Solid > jsx > Javascript Test > svgComponent 1`] = ` "function SvgComponent(props) { return ( <> ); } export default SvgComponent; " `; exports[`Solid > jsx > Javascript Test > svgComponent 2`] = ` "function SvgComponent(props) { return ( <> ); } export default SvgComponent; " `; exports[`Solid > jsx > Javascript Test > typeDependency 1`] = ` "function TypeDependency(props) { return ( <>
    {props.foo}
    ); } export default TypeDependency; " `; exports[`Solid > jsx > Javascript Test > typeDependency 2`] = ` "function TypeDependency(props) { return ( <>
    {props.foo}
    ); } export default TypeDependency; " `; exports[`Solid > jsx > Javascript Test > typeExternalProps 1`] = ` "function TypeExternalProps(props) { return ( <>
    Hello {props.name}!{\\" \\"}
    ); } export default TypeExternalProps; " `; exports[`Solid > jsx > Javascript Test > typeExternalProps 2`] = ` "function TypeExternalProps(props) { return ( <>
    Hello {props.name}!{\\" \\"}
    ); } export default TypeExternalProps; " `; exports[`Solid > jsx > Javascript Test > typeExternalStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function TypeExternalStore(props) { const [_name, set_name] = createSignal(\\"test\\"); return ( <>
    Hello {_name()}!{\\" \\"}
    ); } export default TypeExternalStore; " `; exports[`Solid > jsx > Javascript Test > typeExternalStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function TypeExternalStore(props) { const [_name, set_name] = createSignal(\\"test\\"); return ( <>
    Hello {_name()}!{\\" \\"}
    ); } export default TypeExternalStore; " `; exports[`Solid > jsx > Javascript Test > typeGetterStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function TypeGetterStore(props) { const [name, setName] = createSignal(\\"test\\"); function getName() { if (name() === \\"a\\") { return \\"b\\"; } return name(); } const test = createMemo(() => { return \\"test\\"; }); return ( <>
    Hello {name()}!{\\" \\"}
    ); } export default TypeGetterStore; " `; exports[`Solid > jsx > Javascript Test > typeGetterStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function TypeGetterStore(props) { const [name, setName] = createSignal(\\"test\\"); function getName() { if (name() === \\"a\\") { return \\"b\\"; } return name(); } const test = createMemo(() => { return \\"test\\"; }); return ( <>
    Hello {name()}!{\\" \\"}
    ); } export default TypeGetterStore; " `; exports[`Solid > jsx > Javascript Test > use-style 1`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > use-style 2`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > use-style-and-css 1`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > use-style-and-css 2`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > use-style-outside-component 1`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > use-style-outside-component 2`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Javascript Test > useTarget 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function UseTargetComponent(props) { const [lastName, setLastName] = createSignal(\\"bar\\"); const [foo, setFoo] = createSignal(\\"bar\\"); const name = createMemo(() => { const prefix = \\"so\\"; return prefix + \\"foo\\"; }); onMount(() => { console.log(foo()); setFoo(\\"bar\\"); }); return ( <>
    {name()}
    ); } export default UseTargetComponent; " `; exports[`Solid > jsx > Javascript Test > useTarget 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function UseTargetComponent(props) { const [lastName, setLastName] = createSignal(\\"bar\\"); const [foo, setFoo] = createSignal(\\"bar\\"); const name = createMemo(() => { const prefix = \\"so\\"; return prefix + \\"foo\\"; }); onMount(() => { console.log(foo()); setFoo(\\"bar\\"); }); return ( <>
    {name()}
    ); } export default UseTargetComponent; " `; exports[`Solid > jsx > Javascript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; function MyBasicWebComponent(props) { register(); return ( <> Slide 1 Slide 2 Slide 3 ); } export default MyBasicWebComponent; " `; exports[`Solid > jsx > Javascript Test > webComponent 2`] = ` "import { register } from \\"swiper/element/bundle\\"; function MyBasicWebComponent(props) { register(); return ( <> Slide 1 Slide 2 Slide 3 ); } export default MyBasicWebComponent; " `; exports[`Solid > jsx > Remove Internal mitosis package 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    Hello {name()}! I can run in React, Qwik, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Remove Internal mitosis package 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    Hello {name()}! I can run in React, Qwik, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > Advanced 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function MyBasicForShowComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); return ( <>
    {(person, _index) => { const i = _index(); return (
    {i}:{person}
    ); }}
    {(person, _index) => { const index = _index(); return {person}; }} {(undefined, _index) => { const index = _index(); return
    ; }}
    {(_, _index) => { const ee = _index(); return
    {ee}
    ; }}
    {(undefined, _index) => { const index = _index(); return

    {index}

    ; }}
    {(person, _index) => { const index = _index(); return ( {person} {index} ); }} {(person, _index) => { const count = _index(); return ( {person} {count} ); }} {(person, _index) => { const i = _index(); return ( {person} {i} ); }} {(person, _index) => { const index = _index(); return ( {person} {index} ); }}
    ); } export default MyBasicForShowComponent; " `; exports[`Solid > jsx > Typescript Test > Advanced 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function MyBasicForShowComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); return ( <>
    {(person, _index) => { const i = _index(); return (
    {i}:{person}
    ); }}
    {(person, _index) => { const index = _index(); return {person}; }} {(undefined, _index) => { const index = _index(); return
    ; }}
    {(_, _index) => { const ee = _index(); return
    {ee}
    ; }}
    {(undefined, _index) => { const index = _index(); return

    {index}

    ; }}
    {(person, _index) => { const index = _index(); return ( {person} {index} ); }} {(person, _index) => { const count = _index(); return ( {person} {count} ); }} {(person, _index) => { const i = _index(); return ( {person} {i} ); }} {(person, _index) => { const index = _index(); return ( {person} {index} ); }}
    ); } export default MyBasicForShowComponent; " `; exports[`Solid > jsx > Typescript Test > AdvancedRef 1`] = ` "import { Show, on, createEffect, createMemo, createSignal } from \\"solid-js\\"; export interface Props { showInput: boolean; } function MyBasicRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef.focus(); } function lowerCaseName() { return name().toLowerCase(); } let inputRef: HTMLInputElement; let inputNoArgRef: HTMLLabelElement; const onUpdateFn_0_inputRef = createMemo(() => inputRef); const onUpdateFn_0_inputNoArgRef = createMemo(() => inputNoArgRef); function onUpdateFn_0() { console.log(\\"Received an update\\"); } createEffect( on( () => [onUpdateFn_0_inputRef(), onUpdateFn_0_inputNoArgRef()], onUpdateFn_0 ) ); return ( <>
    <> onBlur()} onInput={(event) => setName(event.target.value)} /> Hello {lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } export default MyBasicRefComponent; " `; exports[`Solid > jsx > Typescript Test > AdvancedRef 2`] = ` "import { Show, on, createEffect, createMemo, createSignal } from \\"solid-js\\"; export interface Props { showInput: boolean; } function MyBasicRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef.focus(); } function lowerCaseName() { return name().toLowerCase(); } let inputRef: HTMLInputElement; let inputNoArgRef: HTMLLabelElement; const onUpdateFn_0_inputRef = createMemo(() => inputRef); const onUpdateFn_0_inputNoArgRef = createMemo(() => inputNoArgRef); function onUpdateFn_0() { console.log(\\"Received an update\\"); } createEffect( on( () => [onUpdateFn_0_inputRef(), onUpdateFn_0_inputNoArgRef()], onUpdateFn_0 ) ); return ( <>
    <> onBlur()} onInput={(event) => setName(event.target.value)} /> Hello {lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } export default MyBasicRefComponent; " `; exports[`Solid > jsx > Typescript Test > Basic 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; function MyBasicComponent(props: MyBasicComponentProps) { const [name, setName] = createSignal(\\"Steve\\"); const [age, setAge] = createSignal(1); const [sports, setSports] = createSignal([\\"\\"]); function underscore_fn_name() { return \\"bar\\"; } return ( <>
    setName(myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > Basic 2`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; function MyBasicForShowComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); return ( <>
    {(person, _index) => { const index = _index(); return ( { setName(event.target.value + \\" and \\" + person); }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ); }}
    ); } export default MyBasicForShowComponent; " `; exports[`Solid > jsx > Typescript Test > Basic 3`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface MyBasicComponentProps { id: string; } export const DEFAULT_VALUES = { name: \\"Steve\\", }; function MyBasicComponent(props: MyBasicComponentProps) { const [name, setName] = createSignal(\\"Steve\\"); const [age, setAge] = createSignal(1); const [sports, setSports] = createSignal([\\"\\"]); function underscore_fn_name() { return \\"bar\\"; } return ( <>
    setName(myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > Basic 4`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; function MyBasicForShowComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); return ( <>
    {(person, _index) => { const index = _index(); return ( { setName(event.target.value + \\" and \\" + person); }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ); }}
    ); } export default MyBasicForShowComponent; " `; exports[`Solid > jsx > Typescript Test > Basic Context 1`] = ` "import { useContext, onMount, createSignal, createMemo } from \\"solid-js\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; function MyBasicComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); function onChange() { const change = myService.method(\\"change\\"); console.log(change); } const myService = useContext(MyService); const hi = myService.method(\\"hi\\"); console.log(hi); onMount(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }); return ( <>
    {myService.method(\\"hello\\") + name()} Hello! I can run in React, Vue, Solid, or Liquid! onChange()} />
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > Basic Context 2`] = ` "import { useContext, onMount, createSignal, createMemo } from \\"solid-js\\"; import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; function MyBasicComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); function onChange() { const change = myService.method(\\"change\\"); console.log(change); } const myService = useContext(MyService); const hi = myService.method(\\"hi\\"); console.log(hi); onMount(() => { const bye = myService.method(\\"hi\\"); console.log(bye); }); return ( <>
    {myService.method(\\"hello\\") + name()} Hello! I can run in React, Vue, Solid, or Liquid! onChange()} />
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; export interface Props { hi: string; bye: string; } function MyBasicOnMountUpdateComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); setName(\\"PatrickJS onInit\\" + props.hi); onMount(() => { setName(\\"PatrickJS onMount\\" + props.bye); }); return ( <>
    Hello {name()}
    ); } export default MyBasicOnMountUpdateComponent; " `; exports[`Solid > jsx > Typescript Test > Basic OnMount Update 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; export interface Props { hi: string; bye: string; } function MyBasicOnMountUpdateComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); setName(\\"PatrickJS onInit\\" + props.hi); onMount(() => { setName(\\"PatrickJS onMount\\" + props.bye); }); return ( <>
    Hello {name()}
    ); } export default MyBasicOnMountUpdateComponent; " `; exports[`Solid > jsx > Typescript Test > Basic Outputs 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function MyBasicOutputsComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); onMount(() => { props.onMessageChange(name()); props.onEvent(props.message); }); return ( <>
    ); } export default MyBasicOutputsComponent; " `; exports[`Solid > jsx > Typescript Test > Basic Outputs 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function MyBasicOutputsComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); onMount(() => { props.onMessageChange(name()); props.onEvent(props.message); }); return ( <>
    ); } export default MyBasicOutputsComponent; " `; exports[`Solid > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { onMount, createSignal, createMemo } from \\"solid-js\\"; function MyBasicOutputsComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); onMount(() => { props.onMessageChange(name()); props.onEvent(props.message); }); return ( <>
    ); } export default MyBasicOutputsComponent; " `; exports[`Solid > jsx > Typescript Test > Basic Outputs Meta 2`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { onMount, createSignal, createMemo } from \\"solid-js\\"; function MyBasicOutputsComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); onMount(() => { props.onMessageChange(name()); props.onEvent(props.message); }); return ( <>
    ); } export default MyBasicOutputsComponent; " `; exports[`Solid > jsx > Typescript Test > BasicAttribute 1`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > BasicAttribute 2`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { Show } from \\"solid-js\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; function MyBooleanAttribute(props: Props) { return ( <>
    {props.children} {props.type}
    ); } export default MyBooleanAttribute; " `; exports[`Solid > jsx > Typescript Test > BasicBooleanAttribute 2`] = ` "import { Show } from \\"solid-js\\"; type Props = { children: any; type: string; }; import MyBooleanAttributeComponent from \\"./basic-boolean-attribute-component.raw\\"; function MyBooleanAttribute(props: Props) { return ( <>
    {props.children} {props.type}
    ); } export default MyBooleanAttribute; " `; exports[`Solid > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; function MyBasicChildComponent(props: any) { const [name, setName] = createSignal(\\"Steve\\"); const [dev, setDev] = createSignal(\\"PatrickJS\\"); function log(message: string) { console.log(message); } return ( <>
    setName(name)} onEvent={(event) => log(\\"Test\\")} >
    ); } export default MyBasicChildComponent; " `; exports[`Solid > jsx > Typescript Test > BasicChildComponent 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import MyBasicOnMountUpdateComponent from \\"./basic-onMount-update.raw\\"; import MyBasicOutputsComponent from \\"./basic-outputs.raw\\"; import MyBasicComponent from \\"./basic.raw\\"; function MyBasicChildComponent(props: any) { const [name, setName] = createSignal(\\"Steve\\"); const [dev, setDev] = createSignal(\\"PatrickJS\\"); function log(message: string) { console.log(message); } return ( <>
    setName(name)} onEvent={(event) => log(\\"Test\\")} >
    ); } export default MyBasicChildComponent; " `; exports[`Solid > jsx > Typescript Test > BasicFor 1`] = ` "import { For, onMount, createSignal, createMemo } from \\"solid-js\\"; function MyBasicForComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); onMount(() => { console.log(\\"onMount code\\"); }); return ( <>
    {(person, _index) => { const index = _index(); return ( <> { setName(event.target.value + \\" and \\" + person); }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ); }}
    ); } export default MyBasicForComponent; " `; exports[`Solid > jsx > Typescript Test > BasicFor 2`] = ` "import { For, onMount, createSignal, createMemo } from \\"solid-js\\"; function MyBasicForComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const [names, setNames] = createSignal([\\"Steve\\", \\"PatrickJS\\"]); onMount(() => { console.log(\\"onMount code\\"); }); return ( <>
    {(person, _index) => { const index = _index(); return ( <> { setName(event.target.value + \\" and \\" + person); }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ); }}
    ); } export default MyBasicForComponent; " `; exports[`Solid > jsx > Typescript Test > BasicRef 1`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; } function MyBasicRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef?.focus(); } function lowerCaseName() { return name().toLowerCase(); } let inputRef: HTMLInputElement | null; let inputNoArgRef: HTMLLabelElement | null; return ( <>
    <> onBlur()} onInput={(event) => setName(event.target.value)} /> Hello {lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } export default MyBasicRefComponent; " `; exports[`Solid > jsx > Typescript Test > BasicRef 2`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; } function MyBasicRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); function onBlur() { // Maintain focus inputRef?.focus(); } function lowerCaseName() { return name().toLowerCase(); } let inputRef: HTMLInputElement | null; let inputNoArgRef: HTMLLabelElement | null; return ( <>
    <> onBlur()} onInput={(event) => setName(event.target.value)} /> Hello {lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } export default MyBasicRefComponent; " `; exports[`Solid > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; } function MyBasicRefAssignmentComponent(props: Props) { function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", holdValueRef); holdValueRef = holdValueRef + \\"JS\\"; } return ( <>
    ); } export default MyBasicRefAssignmentComponent; " `; exports[`Solid > jsx > Typescript Test > BasicRefAssignment 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; } function MyBasicRefAssignmentComponent(props: Props) { function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", holdValueRef); holdValueRef = holdValueRef + \\"JS\\"; } return ( <>
    ); } export default MyBasicRefAssignmentComponent; " `; exports[`Solid > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } function MyPreviousComponent(props: Props) { const [count, setCount] = createSignal(0); const onUpdateFn_0_count__ = createMemo(() => count()); function onUpdateFn_0() { prevCount = count(); } createEffect(on(() => [onUpdateFn_0_count__()], onUpdateFn_0)); return ( <>

    Now: {count()}, before: {prevCount}

    ); } export default MyPreviousComponent; " `; exports[`Solid > jsx > Typescript Test > BasicRefPrevious 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; export interface Props { showInput: boolean; } export function usePrevious(value: T) { // The ref object is a generic container whose current property is mutable ... // ... and can hold any value, similar to an instance property on a class let ref = useRef(null); // Store current value in ref onUpdate(() => { ref = value; }, [value]); // Only re-run if value changes // Return previous value (happens before update in useEffect above) return ref; } function MyPreviousComponent(props: Props) { const [count, setCount] = createSignal(0); const onUpdateFn_0_count__ = createMemo(() => count()); function onUpdateFn_0() { prevCount = count(); } createEffect(on(() => [onUpdateFn_0_count__()], onUpdateFn_0)); return ( <>

    Now: {count()}, before: {prevCount}

    ); } export default MyPreviousComponent; " `; exports[`Solid > jsx > Typescript Test > Button 1`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } function Button(props: ButtonProps) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > Button 2`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } function Button(props: ButtonProps) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > Columns 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } function Column(props: ColumnProps) { function getColumns() { return props.columns || []; } function getGutterSize() { return typeof props.space === \\"number\\" ? props.space || 0 : 20; } function getWidth(index: number) { const columns = getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } function getColumnCssWidth(index: number) { const columns = getColumns(); const gutterSize = getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${getWidth(index)}% - \${subtractWidth}px)\`; } return ( <>
    {(column, _index) => { const index = _index(); return (
    {column.content} {index}
    ); }}
    ); } export default Column; " `; exports[`Solid > jsx > Typescript Test > Columns 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; type Column = { content: any; // TODO: Implement this when support for dynamic CSS lands width?: number; }; export interface ColumnProps { columns?: Column[]; // TODO: Implement this when support for dynamic CSS lands space?: number; // TODO: Implement this when support for dynamic CSS lands stackColumnsAt?: \\"tablet\\" | \\"mobile\\" | \\"never\\"; // TODO: Implement this when support for dynamic CSS lands reverseColumnsWhenStacked?: boolean; } function Column(props: ColumnProps) { function getColumns() { return props.columns || []; } function getGutterSize() { return typeof props.space === \\"number\\" ? props.space || 0 : 20; } function getWidth(index: number) { const columns = getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } function getColumnCssWidth(index: number) { const columns = getColumns(); const gutterSize = getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${getWidth(index)}% - \${subtractWidth}px)\`; } return ( <>
    {(column, _index) => { const index = _index(); return (
    {column.content} {index}
    ); }}
    ); } export default Column; " `; exports[`Solid > jsx > Typescript Test > ContentSlotHtml 1`] = ` "type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ContentSlotCode(props: Props) { return ( <>

    ); } export default ContentSlotCode; " `; exports[`Solid > jsx > Typescript Test > ContentSlotHtml 2`] = ` "type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ContentSlotCode(props: Props) { return ( <>

    ); } export default ContentSlotCode; " `; exports[`Solid > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; type Props = { [key: string]: string | JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ContentSlotJsxCode(props: Props) { const [name, setName] = createSignal(\\"king\\"); const [showContent, setShowContent] = createSignal(false); const cls = createMemo(() => { return props.slotContent && props.children ? \`\${name()}-content\` : \\"\\"; }); function show() { props.slotContent ? 1 : \\"\\"; } return ( <>
    show()} > {props.content}

    {props.children}
    ); } export default ContentSlotJsxCode; " `; exports[`Solid > jsx > Typescript Test > ContentSlotJSX 2`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; type Props = { [key: string]: string | JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ContentSlotJsxCode(props: Props) { const [name, setName] = createSignal(\\"king\\"); const [showContent, setShowContent] = createSignal(false); const cls = createMemo(() => { return props.slotContent && props.children ? \`\${name()}-content\` : \\"\\"; }); function show() { props.slotContent ? 1 : \\"\\"; } return ( <>
    show()} > {props.content}

    {props.children}
    ); } export default ContentSlotJsxCode; " `; exports[`Solid > jsx > Typescript Test > CustomCode 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } function CustomCode(props: CustomCodeProps) { const [scriptsInserted, setScriptsInserted] = createSignal([]); const [scriptsRun, setScriptsRun] = createSignal([]); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted().includes(script.src)) { continue; } scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun().includes(script.innerText)) { continue; } try { scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } let elem: HTMLDivElement; onMount(() => { findAndRunScripts(); }); return ( <>
    ); } export default CustomCode; " `; exports[`Solid > jsx > Typescript Test > CustomCode 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } function CustomCode(props: CustomCodeProps) { const [scriptsInserted, setScriptsInserted] = createSignal([]); const [scriptsRun, setScriptsRun] = createSignal([]); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted().includes(script.src)) { continue; } scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun().includes(script.innerText)) { continue; } try { scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } let elem: HTMLDivElement; onMount(() => { findAndRunScripts(); }); return ( <>
    ); } export default CustomCode; " `; exports[`Solid > jsx > Typescript Test > Embed 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } function CustomCode(props: CustomCodeProps) { const [scriptsInserted, setScriptsInserted] = createSignal([]); const [scriptsRun, setScriptsRun] = createSignal([]); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted().includes(script.src)) { continue; } scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun().includes(script.innerText)) { continue; } try { scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } let elem: HTMLDivElement; onMount(() => { findAndRunScripts(); }); return ( <>
    ); } export default CustomCode; " `; exports[`Solid > jsx > Typescript Test > Embed 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; export interface CustomCodeProps { code: string; replaceNodes?: boolean; } function CustomCode(props: CustomCodeProps) { const [scriptsInserted, setScriptsInserted] = createSignal([]); const [scriptsRun, setScriptsRun] = createSignal([]); function findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (scriptsInserted().includes(script.src)) { continue; } scriptsInserted().push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (scriptsRun().includes(script.innerText)) { continue; } try { scriptsRun().push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } let elem: HTMLDivElement; onMount(() => { findAndRunScripts(); }); return ( <>
    ); } export default CustomCode; " `; exports[`Solid > jsx > Typescript Test > Form 1`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; function FormComponent(props: FormProps) { const [formState, setFormState] = createSignal(\\"unsubmitted\\"); const [responseData, setResponseData] = createSignal(null); const [formErrorMessage, setFormErrorMessage] = createSignal(\\"\\"); const submissionState = createMemo(() => { return (Builder.isEditing && props.previewState) || formState(); }); function onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && props.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (formRef) { formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } setFormState(\\"sending\\"); const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action!, /* TODO: throw error if no action URL */ { body, headers, method: props.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } setFormErrorMessage(message); } } setResponseData(body); setFormState(res.ok ? \\"success\\" : \\"error\\"); if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (formRef) { formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (props.resetFormOnSubmit !== false) { formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (props.successUrl) { if (formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl, }, }); formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (formRef) { formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } setResponseData(err); setFormState(\\"error\\"); } ); } } let formRef: HTMLFormElement; return ( <>
    onSubmit(event)} {...props.attributes} > {(block, _index) => { const index = _index(); return ( ); }}
                {JSON.stringify(responseData(), null, 2)}
              
    ); } export default FormComponent; " `; exports[`Solid > jsx > Typescript Test > Form 2`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; export interface FormProps { attributes?: any; name?: string; action?: string; validate?: boolean; method?: string; builderBlock?: BuilderElement; sendSubmissionsTo?: string; sendSubmissionsToEmail?: string; sendWithJs?: boolean; contentType?: string; customHeaders?: { [key: string]: string; }; successUrl?: string; previewState?: FormState; successMessage?: BuilderElement[]; errorMessage?: BuilderElement[]; sendingMessage?: BuilderElement[]; resetFormOnSubmit?: boolean; errorMessagePath?: string; } export type FormState = \\"unsubmitted\\" | \\"sending\\" | \\"success\\" | \\"error\\"; import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; function FormComponent(props: FormProps) { const [formState, setFormState] = createSignal(\\"unsubmitted\\"); const [responseData, setResponseData] = createSignal(null); const [formErrorMessage, setFormErrorMessage] = createSignal(\\"\\"); const submissionState = createMemo(() => { return (Builder.isEditing && props.previewState) || formState(); }); function onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = props.sendWithJs || props.sendSubmissionsTo === \\"email\\"; if (props.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(props.action || props.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = props.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = props.contentType; if (props.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && props.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (formRef) { formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } setFormState(\\"sending\\"); const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( props.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(props.name || \\"\\")}\`; fetch( props.sendSubmissionsTo === \\"email\\" ? formUrl : props.action!, /* TODO: throw error if no action URL */ { body, headers, method: props.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && props.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, props.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } setFormErrorMessage(message); } } setResponseData(body); setFormState(res.ok ? \\"success\\" : \\"error\\"); if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (formRef) { formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (props.resetFormOnSubmit !== false) { formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (props.successUrl) { if (formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: props.successUrl, }, }); formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = props.successUrl; } } else { location.href = props.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (formRef) { formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } setResponseData(err); setFormState(\\"error\\"); } ); } } let formRef: HTMLFormElement; return ( <>
    onSubmit(event)} {...props.attributes} > {(block, _index) => { const index = _index(); return ( ); }}
                {JSON.stringify(responseData(), null, 2)}
              
    ); } export default FormComponent; " `; exports[`Solid > jsx > Typescript Test > Image 1`] = ` "import { Show, onMount, createSignal, createMemo } from \\"solid-js\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } function Image(props: ImageProps) { const [scrollListener, setScrollListener] = createSignal(null); const [imageLoaded, setImageLoaded] = createSignal(false); const [load, setLoad] = createSignal(false); function setLoaded() { setImageLoaded(true); } function useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && isBrowser(); } function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); } let pictureRef: HTMLElement; onMount(() => { if (useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (pictureRef) { const rect = pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { setLoad(true); setScrollListener(null); window.removeEventListener(\\"scroll\\", listener); } } }; setScrollListener(listener); window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }); return ( <>
    {props.altText} setLoaded()} srcset={props.srcset} sizes={props.sizes} /> {props.children}
    ); } export default Image; " `; exports[`Solid > jsx > Typescript Test > Image 2`] = ` "import { Show, onMount, createSignal, createMemo } from \\"solid-js\\"; // TODO: AMP Support? export interface ImageProps { _class?: string; image: string; sizes?: string; lazy?: boolean; height?: number; width?: number; altText?: string; backgroundSize?: string; backgroundPosition?: string; // TODO: Support generating Builder.io and or Shopify \`srcset\`s when needed srcset?: string; // TODO: Implement support for custom aspect ratios aspectRatio?: number; // TODO: This might not work as expected in terms of positioning children?: any; } function Image(props: ImageProps) { const [scrollListener, setScrollListener] = createSignal(null); const [imageLoaded, setImageLoaded] = createSignal(false); const [load, setLoad] = createSignal(false); function setLoaded() { setImageLoaded(true); } function useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!props.lazy && isBrowser(); } function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); } let pictureRef: HTMLElement; onMount(() => { if (useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (pictureRef) { const rect = pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { setLoad(true); setScrollListener(null); window.removeEventListener(\\"scroll\\", listener); } } }; setScrollListener(listener); window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } }); return ( <>
    {props.altText} setLoaded()} srcset={props.srcset} sizes={props.sizes} /> {props.children}
    ); } export default Image; " `; exports[`Solid > jsx > Typescript Test > Image State 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function ImgStateComponent(props: any) { const [canShow, setCanShow] = createSignal(true); const [images, setImages] = createSignal([\\"http://example.com/qwik.png\\"]); return ( <>
    {(item, _index) => { const itemIndex = _index(); return ( <> ); }}
    ); } export default ImgStateComponent; " `; exports[`Solid > jsx > Typescript Test > Image State 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function ImgStateComponent(props: any) { const [canShow, setCanShow] = createSignal(true); const [images, setImages] = createSignal([\\"http://example.com/qwik.png\\"]); return ( <>
    {(item, _index) => { const itemIndex = _index(); return ( <> ); }}
    ); } export default ImgStateComponent; " `; exports[`Solid > jsx > Typescript Test > Img 1`] = ` "export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; function ImgComponent(props: ImgProps) { return ( <> {props.altText} ); } export default ImgComponent; " `; exports[`Solid > jsx > Typescript Test > Img 2`] = ` "export interface ImgProps { attributes?: any; imgSrc?: string; altText?: string; backgroundSize?: \\"cover\\" | \\"contain\\"; backgroundPosition?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; } import { Builder } from \\"@builder.io/sdk\\"; function ImgComponent(props: ImgProps) { return ( <> {props.altText} ); } export default ImgComponent; " `; exports[`Solid > jsx > Typescript Test > Input 1`] = ` "export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; function FormInputComponent(props: FormInputProps) { return ( <> props.onChange?.(event.target.value)} /> ); } export default FormInputComponent; " `; exports[`Solid > jsx > Typescript Test > Input 2`] = ` "export interface FormInputProps { type?: string; attributes?: any; name?: string; value?: string; placeholder?: string; defaultValue?: string; required?: boolean; onChange?: (value: string) => void; } import { Builder } from \\"@builder.io/sdk\\"; function FormInputComponent(props: FormInputProps) { return ( <> props.onChange?.(event.target.value)} /> ); } export default FormInputComponent; " `; exports[`Solid > jsx > Typescript Test > InputParent 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import FormInputComponent from \\"./input.raw\\"; function Stepper(props: any) { function handleChange(value: string) { console.log(value); } return ( <> handleChange(value)} > ); } export default Stepper; " `; exports[`Solid > jsx > Typescript Test > InputParent 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import FormInputComponent from \\"./input.raw\\"; function Stepper(props: any) { function handleChange(value: string) { console.log(value); } return ( <> handleChange(value)} > ); } export default Stepper; " `; exports[`Solid > jsx > Typescript Test > NestedStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type MyStore = { _id?: string; _messageId?: string; }; function NestedStore(props: any) { const [_id, set_id] = createSignal(\\"abc\\"); const [_messageId, set_messageId] = createSignal(_id() + \\"-message\\"); return ( <>
    Test

    Message

    ); } export default NestedStore; " `; exports[`Solid > jsx > Typescript Test > NestedStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type MyStore = { _id?: string; _messageId?: string; }; function NestedStore(props: any) { const [_id, set_id] = createSignal(\\"abc\\"); const [_messageId, set_messageId] = createSignal(_id() + \\"-message\\"); return ( <>
    Test

    Message

    ); } export default NestedStore; " `; exports[`Solid > jsx > Typescript Test > RawText 1`] = ` "export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } function RawText(props: RawTextProps) { return ( <> ); } export default RawText; " `; exports[`Solid > jsx > Typescript Test > RawText 2`] = ` "export interface RawTextProps { attributes?: any; text?: string; // builderBlock?: any; } function RawText(props: RawTextProps) { return ( <> ); } export default RawText; " `; exports[`Solid > jsx > Typescript Test > Section 1`] = ` "export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } function SectionComponent(props: SectionProps) { return ( <>
    {props.children}
    ); } export default SectionComponent; " `; exports[`Solid > jsx > Typescript Test > Section 2`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } function SectionStateComponent(props: SectionProps) { const [max, setMax] = createSignal(42); const [items, setItems] = createSignal([42]); return ( <> {(item, _index) => { const index = _index(); return (
    {props.children}
    ); }}
    ); } export default SectionStateComponent; " `; exports[`Solid > jsx > Typescript Test > Section 3`] = ` "export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } function SectionComponent(props: SectionProps) { return ( <>
    {props.children}
    ); } export default SectionComponent; " `; exports[`Solid > jsx > Typescript Test > Section 4`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; export interface SectionProps { maxWidth?: number; attributes?: any; children?: any; } function SectionStateComponent(props: SectionProps) { const [max, setMax] = createSignal(42); const [items, setItems] = createSignal([42]); return ( <> {(item, _index) => { const index = _index(); return (
    {props.children}
    ); }}
    ); } export default SectionStateComponent; " `; exports[`Solid > jsx > Typescript Test > Select 1`] = ` "import { For } from \\"solid-js\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; function SelectComponent(props: FormSelectProps) { return ( <> ); } export default SelectComponent; " `; exports[`Solid > jsx > Typescript Test > Select 2`] = ` "import { For } from \\"solid-js\\"; export interface FormSelectProps { options?: { name?: string; value: string; }[]; attributes?: any; name?: string; value?: string; defaultValue?: string; } import { Builder } from \\"@builder.io/sdk\\"; function SelectComponent(props: FormSelectProps) { return ( <> ); } export default SelectComponent; " `; exports[`Solid > jsx > Typescript Test > SlotDefault 1`] = ` "type Props = { [key: string]: string; }; function SlotCode(props: Props) { return ( <>
    Default content
    ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotDefault 2`] = ` "type Props = { [key: string]: string; }; function SlotCode(props: Props) { return ( <>
    Default content
    ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotHtml 1`] = ` "type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props: Props) { return ( <>
    Hello
    }> ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotHtml 2`] = ` "type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props: Props) { return ( <>
    Hello
    }> ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotJsx 1`] = ` "type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props: Props) { return ( <>
    Hello
    }> ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotJsx 2`] = ` "type Props = { [key: string]: string; }; import ContentSlotCode from \\"./content-slot-jsx.raw\\"; function SlotCode(props: Props) { return ( <>
    Hello
    }> ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotNamed 1`] = ` "type Props = { [key: string]: string; }; function SlotCode(props: Props) { return ( <>
    Default left Default Child
    ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > SlotNamed 2`] = ` "type Props = { [key: string]: string; }; function SlotCode(props: Props) { return ( <>
    Default left Default Child
    ); } export default SlotCode; " `; exports[`Solid > jsx > Typescript Test > Stamped.io 1`] = ` "import { Show, For, onMount, createSignal, createMemo } from \\"solid-js\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; function SmileReviews(props: SmileReviewsProps) { const [reviews, setReviews] = createSignal([]); const [name, setName] = createSignal(\\"test\\"); const [showReviewPrompt, setShowReviewPrompt] = createSignal(false); function kebabCaseValue() { return kebabCase(\\"testThat\\"); } function snakeCaseValue() { return snakeCase(\\"testThis\\"); } onMount(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { setReviews(data.data); }); }); return ( <>
    {(review, _index) => { const index = _index(); return (
    N: {index}
    {review.author}
    {review.reviewMessage}
    ); }}
    ); } export default SmileReviews; " `; exports[`Solid > jsx > Typescript Test > Stamped.io 2`] = ` "import { Show, For, onMount, createSignal, createMemo } from \\"solid-js\\"; type SmileReviewsProps = { productId: string; apiKey: string; }; import { kebabCase, snakeCase } from \\"lodash\\"; function SmileReviews(props: SmileReviewsProps) { const [reviews, setReviews] = createSignal([]); const [name, setName] = createSignal(\\"test\\"); const [showReviewPrompt, setShowReviewPrompt] = createSignal(false); function kebabCaseValue() { return kebabCase(\\"testThat\\"); } function snakeCaseValue() { return snakeCase(\\"testThis\\"); } onMount(() => { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ props.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${props.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { setReviews(data.data); }); }); return ( <>
    {(review, _index) => { const index = _index(); return (
    N: {index}
    {review.author}
    {review.reviewMessage}
    ); }}
    ); } export default SmileReviews; " `; exports[`Solid > jsx > Typescript Test > StoreComment 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props: any) { const [foo, setFoo] = createSignal(true); function bar() {} return ( <> <>{foo()} ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Typescript Test > StoreComment 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props: any) { const [foo, setFoo] = createSignal(true); function bar() {} return ( <> <>{foo()} ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [errors, setErrors] = createSignal({}); function foo(errors) { return errors; } return ( <> <>{foo(errors())} ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > StoreShadowVars 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [errors, setErrors] = createSignal({}); function foo(errors) { return errors; } return ( <> <>{foo(errors())} ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > StoreWithState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [foo, setFoo] = createSignal(false); function bar() { return foo(); } return ( <> <>{bar()} ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > StoreWithState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [foo, setFoo] = createSignal(false); function bar() { return foo(); } return ( <> <>{bar()} ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > Submit 1`] = ` "export interface ButtonProps { attributes?: any; text?: string; } function SubmitButton(props: ButtonProps) { return ( <> ); } export default SubmitButton; " `; exports[`Solid > jsx > Typescript Test > Submit 2`] = ` "export interface ButtonProps { attributes?: any; text?: string; } function SubmitButton(props: ButtonProps) { return ( <> ); } export default SubmitButton; " `; exports[`Solid > jsx > Typescript Test > Text 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; function Text(props: TextProps) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    my name

    ' } >
    ); } export default Text; " `; exports[`Solid > jsx > Typescript Test > Text 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface TextProps { attributes?: any; rtlMode: boolean; text?: string; content?: string; builderBlock?: any; } import { Builder } from \\"@builder.io/sdk\\"; function Text(props: TextProps) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    my name

    ' } >
    ); } export default Text; " `; exports[`Solid > jsx > Typescript Test > Textarea 1`] = ` "export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } function Textarea(props: TextareaProps) { return ( <> ); } export default Textarea; " `; exports[`Solid > jsx > Typescript Test > Textarea 2`] = ` "export interface TextareaProps { attributes?: any; name?: string; value?: string; defaultValue?: string; placeholder?: string; } function Textarea(props: TextareaProps) { return ( <> ); } export default Textarea; " `; exports[`Solid > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; function UseValueAndFnFromStore(props: MyProps) { const [_id, set_id] = createSignal(\\"abc\\"); const [_active, set_active] = createSignal(false); function _do(id?: string) { set_active(!!id); if (props.onChange) { props.onChange(_active()); } } return ( <>
    Test
    ); } export default UseValueAndFnFromStore; " `; exports[`Solid > jsx > Typescript Test > UseValueAndFnFromStore 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; type MyProps = { onChange?: (active: boolean) => void; }; type MyStore = { _id?: string; _active?: boolean; _do?: (id?: string) => void; }; function UseValueAndFnFromStore(props: MyProps) { const [_id, set_id] = createSignal(\\"abc\\"); const [_active, set_active] = createSignal(false); function _do(id?: string) { set_active(!!id); if (props.onChange) { props.onChange(_active()); } } return ( <>
    Test
    ); } export default UseValueAndFnFromStore; " `; exports[`Solid > jsx > Typescript Test > Video 1`] = ` "export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } function Video(props: VideoProps) { return ( <> ); } export default Video; " `; exports[`Solid > jsx > Typescript Test > Video 2`] = ` "export interface VideoProps { attributes?: any; video?: string; autoPlay?: boolean; controls?: boolean; muted?: boolean; loop?: boolean; playsInline?: boolean; aspectRatio?: number; width?: number; height?: number; fit?: \\"contain\\" | \\"cover\\" | \\"fill\\"; position?: | \\"center\\" | \\"top\\" | \\"left\\" | \\"right\\" | \\"bottom\\" | \\"top left\\" | \\"top right\\" | \\"bottom left\\" | \\"bottom right\\"; posterImage?: string; lazyLoad?: boolean; } function Video(props: VideoProps) { return ( <> ); } export default Video; " `; exports[`Solid > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [name, setName] = createSignal(\\"steve\\"); function setName(value) { setName(value); } function updateNameWithArrowFn(value) { setName(value); } return ( <>
    Hello {name()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > arrowFunctionInUseStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [name, setName] = createSignal(\\"steve\\"); function setName(value) { setName(value); } function updateNameWithArrowFn(value) { setName(value); } return ( <>
    Hello {name()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > basicForFragment 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function BasicForFragment(props: any) { const [id, setId] = createSignal(\\"xyz\\"); return ( <>
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    ); } export default BasicForFragment; " `; exports[`Solid > jsx > Typescript Test > basicForFragment 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function BasicForFragment(props: any) { const [id, setId] = createSignal(\\"xyz\\"); return ( <>
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    {(option, _index) => { const index = _index(); return ( <>
    {option}
    ); }}
    ); } export default BasicForFragment; " `; exports[`Solid > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; function MyBasicForNoTagRefComponent(props: any) { const [name, setName] = createSignal(\\"VincentW\\"); const [TagName, setTagName] = createSignal(\\"div\\"); const [tag, setTag] = createSignal(\\"span\\"); const TagNameGetter = createMemo(() => { return \\"span\\"; }); return ( <> Hello {name()} {(action, _index) => { const index = _index(); return ( {action.text} ); }} ); } export default MyBasicForNoTagRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicForNoTagReference 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; function MyBasicForNoTagRefComponent(props: any) { const [name, setName] = createSignal(\\"VincentW\\"); const [TagName, setTagName] = createSignal(\\"div\\"); const [tag, setTag] = createSignal(\\"span\\"); const TagNameGetter = createMemo(() => { return \\"span\\"; }); return ( <> Hello {name()} {(action, _index) => { const index = _index(); return ( {action.text} ); }} ); } export default MyBasicForNoTagRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicForwardRef 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } function MyBasicForwardRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicForwardRef 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } function MyBasicForwardRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } function MyBasicForwardRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicForwardRefMetadata 2`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { createSignal, createMemo } from \\"solid-js\\"; export interface Props { showInput: boolean; inputRef: HTMLInputElement; } function MyBasicForwardRefComponent(props: Props) { const [name, setName] = createSignal(\\"PatrickJS\\"); return ( <>
    setName(event.target.value)} />
    ); } export default MyBasicForwardRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyBasicOnUpdateReturnComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const onUpdateFn_0_name__ = createMemo(() => name()); function onUpdateFn_0() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { setName(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; } createEffect(on(() => [onUpdateFn_0_name__()], onUpdateFn_0)); return ( <>
    Hello! {name()}
    ); } export default MyBasicOnUpdateReturnComponent; " `; exports[`Solid > jsx > Typescript Test > basicOnUpdateReturn 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyBasicOnUpdateReturnComponent(props: any) { const [name, setName] = createSignal(\\"PatrickJS\\"); const onUpdateFn_0_name__ = createMemo(() => name()); function onUpdateFn_0() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { setName(data.name); }); return () => { if (!signal.aborted) { controller.abort(); } }; } createEffect(on(() => [onUpdateFn_0_name__()], onUpdateFn_0)); return ( <>
    Hello! {name()}
    ); } export default MyBasicOnUpdateReturnComponent; " `; exports[`Solid > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { onMount } from \\"solid-js\\"; function BasicRefAttributePassingComponent(props: any) { let buttonRef: HTMLButtonElement | null; onMount(() => { console.log(\\"onMount\\"); }); return ( <> ); } export default BasicRefAttributePassingComponent; " `; exports[`Solid > jsx > Typescript Test > basicRefAttributePassing 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { onMount } from \\"solid-js\\"; function BasicRefAttributePassingComponent(props: any) { let buttonRef: HTMLButtonElement | null; onMount(() => { console.log(\\"onMount\\"); }); return ( <> ); } export default BasicRefAttributePassingComponent; " `; exports[`Solid > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ function BasicRefAttributePassingCustomRefComponent(props: any) { let buttonRef: HTMLButtonElement | null; return ( <>
    ); } export default BasicRefAttributePassingCustomRefComponent; " `; exports[`Solid > jsx > Typescript Test > basicRefAttributePassingCustomRef 2`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ function BasicRefAttributePassingCustomRefComponent(props: any) { let buttonRef: HTMLButtonElement | null; return ( <>
    ); } export default BasicRefAttributePassingCustomRefComponent; " `; exports[`Solid > jsx > Typescript Test > class + ClassName + css 1`] = ` "import MyComp from \\"./my-component\\"; function MyBasicComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > class + ClassName + css 2`] = ` "import MyComp from \\"./my-component\\"; function MyBasicComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > class + css 1`] = ` "function MyBasicComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > class + css 2`] = ` "function MyBasicComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > className + css 1`] = ` "function MyBasicComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > className + css 2`] = ` "function MyBasicComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > className 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ClassNameCode(props: Props) { const [bindings, setBindings] = createSignal(\\"a binding\\"); return ( <>
    Without Binding
    With binding
    ); } export default ClassNameCode; " `; exports[`Solid > jsx > Typescript Test > className 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type Props = { [key: string]: string | JSX.Element; slotTesting: JSX.Element; }; import type { JSX } from \\"../../../../jsx-runtime\\"; function ClassNameCode(props: Props) { const [bindings, setBindings] = createSignal(\\"a binding\\"); return ( <>
    Without Binding
    With binding
    ); } export default ClassNameCode; " `; exports[`Solid > jsx > Typescript Test > classState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props: any) { const [classState, setClassState] = createSignal(\\"testClassName\\"); const [styleState, setStyleState] = createSignal({ color: \\"red\\", }); return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > classState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props: any) { const [classState, setClassState] = createSignal(\\"testClassName\\"); const [styleState, setStyleState] = createSignal({ color: \\"red\\", }); return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ type Props = { children: any; className: string; type: string; }; function MyBasicComponent(props: Props) { return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > classnameProps 2`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ type Props = { children: any; className: string; type: string; }; function MyBasicComponent(props: Props) { return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ function ComplexMetaRaw(props: any) { return ( <>
    ); } export default ComplexMetaRaw; " `; exports[`Solid > jsx > Typescript Test > complexMeta 2`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ function ComplexMetaRaw(props: any) { return ( <>
    ); } export default ComplexMetaRaw; " `; exports[`Solid > jsx > Typescript Test > componentWithContext 1`] = ` "import { useContext } from \\"solid-js\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props: ComponentWithContextProps) { const foo = useContext(Context1); return ( <> <> <>{foo.value} ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Typescript Test > componentWithContext 2`] = ` "import { useContext } from \\"solid-js\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props: ComponentWithContextProps) { const foo = useContext(Context1); return ( <> <> <>{foo.value} ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import { useContext } from \\"solid-js\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props: ComponentWithContextProps) { const foo = useContext(Context1); return ( <> <> <>{foo.value}
    other
    ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Typescript Test > componentWithContextMultiRoot 2`] = ` "import { useContext } from \\"solid-js\\"; export interface ComponentWithContextProps { content: string; } import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; function ComponentWithContext(props: ComponentWithContextProps) { const foo = useContext(Context1); return ( <> <> <>{foo.value}
    other
    ); } export default ComponentWithContext; " `; exports[`Solid > jsx > Typescript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; function RenderContent(props: any) { return ( <>
    setting context
    ); } export default RenderContent; " `; exports[`Solid > jsx > Typescript Test > contentState 2`] = ` "import BuilderContext from \\"@dummy/context.js\\"; function RenderContent(props: any) { return ( <>
    setting context
    ); } export default RenderContent; " `; exports[`Solid > jsx > Typescript Test > defaultProps 1`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } function Button(props: ButtonProps) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > defaultProps 2`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; buttonText?: string; // no default value link?: string; openLinkInNewTab?: boolean; onClick?: () => void; } function Button(props: ButtonProps) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } function Button(props: ButtonProps) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > defaultPropsOutsideComponent 2`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; onClick: () => void; } function Button(props: ButtonProps) { return ( <>
    {props.text}
    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; function ComponentWithTypes(props: Props) { return ( <>
    {\\" \\"} Hello {props.name || DEFAULT_VALUES.name}
    ); } export default ComponentWithTypes; " `; exports[`Solid > jsx > Typescript Test > defaultValsWithTypes 2`] = ` "type Props = { name: string; }; const DEFAULT_VALUES: Props = { name: \\"Sami\\", }; function ComponentWithTypes(props: Props) { return ( <>
    {\\" \\"} Hello {props.name || DEFAULT_VALUES.name}
    ); } export default ComponentWithTypes; " `; exports[`Solid > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function EventInputAndChange(props: any) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} onInput={(event) => setName(event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default EventInputAndChange; " `; exports[`Solid > jsx > Typescript Test > eventInputAndChange 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function EventInputAndChange(props: any) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} onInput={(event) => setName(event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default EventInputAndChange; " `; exports[`Solid > jsx > Typescript Test > eventProps 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import { EventProps, EventState } from \\"./event-props.type\\"; function EventPropsComponent(props: EventProps) { function handleClick() { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } } return ( <> ); } export default EventPropsComponent; " `; exports[`Solid > jsx > Typescript Test > eventProps 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import { EventProps, EventState } from \\"./event-props.type\\"; function EventPropsComponent(props: EventProps) { function handleClick() { if (props.onGetVoid) { props.onGetVoid(); } if (props.onEnter) { console.log(props.onEnter()); } if (props.onPass) { props.onPass(\\"test\\"); } } return ( <> ); } export default EventPropsComponent; " `; exports[`Solid > jsx > Typescript Test > expressionState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [refToUse, setRefToUse] = createSignal( !(props.componentRef instanceof Function) ? props.componentRef : null ); return ( <>
    {refToUse()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > expressionState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [refToUse, setRefToUse] = createSignal( !(props.componentRef instanceof Function) ? props.componentRef : null ); return ( <>
    {refToUse()}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ function FigmaButton(props: any) { return ( <> ); } export default FigmaButton; " `; exports[`Solid > jsx > Typescript Test > figmaMeta 2`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ function FigmaButton(props: any) { return ( <> ); } export default FigmaButton; " `; exports[`Solid > jsx > Typescript Test > functionProps 1`] = ` "export interface MyBasicComponentProps { id: string; } function MyBasicComponent(props: MyBasicComponentProps) { return ( <>

    x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} >

    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > functionProps 2`] = ` "export interface MyBasicComponentProps { id: string; } function MyBasicComponent(props: MyBasicComponentProps) { return ( <>

    x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} >

    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > getterState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface ButtonProps { foo: string; } function Button(props: ButtonProps) { const foo2 = createMemo(() => { return props.foo + \\"foo\\"; }); const bar = createMemo(() => { return \\"bar\\"; }); function baz(i: number) { return i + foo2().length; } return ( <>

    {foo2()}

    {bar()}

    {baz(1)}

    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > getterState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; export interface ButtonProps { foo: string; } function Button(props: ButtonProps) { const foo2 = createMemo(() => { return props.foo + \\"foo\\"; }); const bar = createMemo(() => { return \\"bar\\"; }); function baz(i: number) { return i + foo2().length; } return ( <>

    {foo2()}

    {bar()}

    {baz(1)}

    ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > import types 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; function RenderContent(props: RenderContentProps) { function getRenderContentProps(block, index) { return { block: block, index: index, }; } return ( <> ); } export default RenderContent; " `; exports[`Solid > jsx > Typescript Test > import types 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type RenderContentProps = { options?: GetContentOptions; content: BuilderContent; renderContentProps: RenderBlockProps; }; import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import RenderBlock, { RenderBlockProps } from \\"./builder-render-block.raw\\"; function RenderContent(props: RenderContentProps) { function getRenderContentProps(block, index) { return { block: block, index: index, }; } return ( <> ); } export default RenderContent; " `; exports[`Solid > jsx > Typescript Test > layerName 1`] = ` "function MyLayerNameComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyLayerNameComponent; " `; exports[`Solid > jsx > Typescript Test > layerName 2`] = ` "function MyLayerNameComponent(props: any) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyLayerNameComponent; " `; exports[`Solid > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function MultipleOnUpdate(props: any) { return ( <>
    ); } export default MultipleOnUpdate; " `; exports[`Solid > jsx > Typescript Test > multipleOnUpdate 2`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function MultipleOnUpdate(props: any) { return ( <>
    ); } export default MultipleOnUpdate; " `; exports[`Solid > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MultipleOnUpdateWithDeps(props: any) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const [c, setC] = createSignal(\\"c\\"); const [d, setD] = createSignal(\\"d\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { console.log(\\"Runs when a or b changes\\", a(), b()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); const onUpdateFn_1_c__ = createMemo(() => c()); const onUpdateFn_1_d__ = createMemo(() => d()); function onUpdateFn_1() { console.log(\\"Runs when c or d changes\\", c(), d()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_1_c__(), onUpdateFn_1_d__()], onUpdateFn_1) ); return ( <>
    ); } export default MultipleOnUpdateWithDeps; " `; exports[`Solid > jsx > Typescript Test > multipleOnUpdateWithDeps 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MultipleOnUpdateWithDeps(props: any) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const [c, setC] = createSignal(\\"c\\"); const [d, setD] = createSignal(\\"d\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { console.log(\\"Runs when a or b changes\\", a(), b()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); const onUpdateFn_1_c__ = createMemo(() => c()); const onUpdateFn_1_d__ = createMemo(() => d()); function onUpdateFn_1() { console.log(\\"Runs when c or d changes\\", c(), d()); if (a() === \\"a\\") { setA(\\"b\\"); } } createEffect( on(() => [onUpdateFn_1_c__(), onUpdateFn_1_d__()], onUpdateFn_1) ); return ( <>
    ); } export default MultipleOnUpdateWithDeps; " `; exports[`Solid > jsx > Typescript Test > multipleSpreads 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props: any) { const [attrs, setAttrs] = createSignal({ hello: \\"world\\", }); return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > multipleSpreads 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyBasicComponent(props: any) { const [attrs, setAttrs] = createSignal({ hello: \\"world\\", }); return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > nestedShow 1`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; conditionB: boolean; } function NestedShow(props: Props) { return ( <> else-condition-A} when={props.conditionA}> else-condition-B} when={!props.conditionB}>
    if condition A and condition B
    ); } export default NestedShow; " `; exports[`Solid > jsx > Typescript Test > nestedShow 2`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; conditionB: boolean; } function NestedShow(props: Props) { return ( <> else-condition-A} when={props.conditionA}> else-condition-B} when={!props.conditionB}>
    if condition A and condition B
    ); } export default NestedShow; " `; exports[`Solid > jsx > Typescript Test > nestedStyles 1`] = ` "function NestedStyles(props: any) { return ( <>
    Hello world
    ); } export default NestedStyles; " `; exports[`Solid > jsx > Typescript Test > nestedStyles 2`] = ` "function NestedStyles(props: any) { return ( <>
    Hello world
    ); } export default NestedStyles; " `; exports[`Solid > jsx > Typescript Test > normalizeLayerNames 1`] = ` "export interface MyNormalizedLayerNamesComponentProps { id: string; } function MyNormalizedLayerNamesComponent( props: MyNormalizedLayerNamesComponentProps ) { return ( <>
    Emoji
    Dashes
    CamelCase
    Special chars
    Special chars with dashes
    Single Number
    Multiple Numbers
    Chars with numbers at end
    Chars with numbers at start
    Numnbers separated by dash
    Emoji
    Number
    ); } export default MyNormalizedLayerNamesComponent; " `; exports[`Solid > jsx > Typescript Test > normalizeLayerNames 2`] = ` "export interface MyNormalizedLayerNamesComponentProps { id: string; } function MyNormalizedLayerNamesComponent( props: MyNormalizedLayerNamesComponentProps ) { return ( <>
    Emoji
    Dashes
    CamelCase
    Special chars
    Special chars with dashes
    Single Number
    Multiple Numbers
    Chars with numbers at end
    Chars with numbers at start
    Numnbers separated by dash
    Emoji
    Number
    ); } export default MyNormalizedLayerNamesComponent; " `; exports[`Solid > jsx > Typescript Test > onEvent 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function Embed(props: any) { function foo(event) { console.log(\\"test2\\"); } function elem_onInitEditingBldr(event) { console.log(\\"test\\"); foo(event); } let elem: HTMLDivElement; onMount(() => { elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }); return ( <>
    elem_onInitEditingBldr(event)} >
    Test
    ); } export default Embed; " `; exports[`Solid > jsx > Typescript Test > onEvent 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function Embed(props: any) { function foo(event) { console.log(\\"test2\\"); } function elem_onInitEditingBldr(event) { console.log(\\"test\\"); foo(event); } let elem: HTMLDivElement; onMount(() => { elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); }); return ( <>
    elem_onInitEditingBldr(event)} >
    Test
    ); } export default Embed; " `; exports[`Solid > jsx > Typescript Test > onInit & onMount 1`] = ` "import { onMount } from \\"solid-js\\"; function OnInit(props: any) { console.log(\\"onInit\\"); onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default OnInit; " `; exports[`Solid > jsx > Typescript Test > onInit & onMount 2`] = ` "import { onMount } from \\"solid-js\\"; function OnInit(props: any) { console.log(\\"onInit\\"); onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default OnInit; " `; exports[`Solid > jsx > Typescript Test > onInit 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; function OnInit(props: Props) { const [name, setName] = createSignal(\\"\\"); setName(defaultValues.name || props.name); console.log(\\"set defaults with props\\"); return ( <>
    Default name defined by parent {name()}
    ); } export default OnInit; " `; exports[`Solid > jsx > Typescript Test > onInit 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type Props = { name: string; }; export const defaultValues = { name: \\"PatrickJS\\", }; function OnInit(props: Props) { const [name, setName] = createSignal(\\"\\"); setName(defaultValues.name || props.name); console.log(\\"set defaults with props\\"); return ( <>
    Default name defined by parent {name()}
    ); } export default OnInit; " `; exports[`Solid > jsx > Typescript Test > onInitPlain 1`] = ` "function OnInitPlain(props: any) { console.log(\\"onInit\\"); return ( <>
    ); } export default OnInitPlain; " `; exports[`Solid > jsx > Typescript Test > onInitPlain 2`] = ` "function OnInitPlain(props: any) { console.log(\\"onInit\\"); return ( <>
    ); } export default OnInitPlain; " `; exports[`Solid > jsx > Typescript Test > onMount 1`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props: any) { onMount(() => { console.log(\\"Runs on mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Typescript Test > onMount 2`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props: any) { onMount(() => { console.log(\\"Runs on mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Typescript Test > onMountMultiple 1`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props: any) { onMount(() => { console.log(\\"Runs on mount\\"); }); onMount(() => { console.log(\\"Another one runs on Mount\\"); }); onMount(() => { console.log(\\"SSR runs on Mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Typescript Test > onMountMultiple 2`] = ` "import { onMount } from \\"solid-js\\"; function Comp(props: any) { onMount(() => { console.log(\\"Runs on mount\\"); }); onMount(() => { console.log(\\"Another one runs on Mount\\"); }); onMount(() => { console.log(\\"SSR runs on Mount\\"); }); return ( <>
    ); } export default Comp; " `; exports[`Solid > jsx > Typescript Test > onUpdate 1`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function OnUpdate(props: any) { return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Typescript Test > onUpdate 2`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; function OnUpdate(props: any) { return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; type Props = { size: string; }; function OnUpdateWithDeps(props: Props) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); const onUpdateFn_0_props_size = createMemo(() => props.size); function onUpdateFn_0() { console.log(\\"Runs when a, b or size changes\\", a(), b(), props.size); } createEffect( on( () => [onUpdateFn_0_a__(), onUpdateFn_0_b__(), onUpdateFn_0_props_size()], onUpdateFn_0 ) ); return ( <>
    ); } export default OnUpdateWithDeps; " `; exports[`Solid > jsx > Typescript Test > onUpdateWithDeps 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; type Props = { size: string; }; function OnUpdateWithDeps(props: Props) { const [a, setA] = createSignal(\\"a\\"); const [b, setB] = createSignal(\\"b\\"); const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); const onUpdateFn_0_props_size = createMemo(() => props.size); function onUpdateFn_0() { console.log(\\"Runs when a, b or size changes\\", a(), b(), props.size); } createEffect( on( () => [onUpdateFn_0_a__(), onUpdateFn_0_b__(), onUpdateFn_0_props_size()], onUpdateFn_0 ) ); return ( <>
    ); } export default OnUpdateWithDeps; " `; exports[`Solid > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} function MyBasicComponent(props: MyBasicComponentProps) { return ( <>
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > preserveExportOrLocalStatement 2`] = ` "type Types = { s: any[]; }; interface IPost { len: number; } export interface MyBasicComponentProps { id: string; } const b = 3; const foo = () => {}; export const a = 3; export const bar = () => {}; export function run(value: T) {} function MyBasicComponent(props: MyBasicComponentProps) { return ( <>
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > preserveTyping 1`] = ` "export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } function MyBasicComponent(props: MyBasicComponentProps) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > preserveTyping 2`] = ` "export type A = \\"test\\"; export interface C { n: \\"test\\"; } type B = \\"test2\\"; interface D { n: \\"test\\"; } export interface MyBasicComponentProps { name: string; age?: number; } function MyBasicComponent(props: MyBasicComponentProps) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > propsDestructure 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type Props = { children: any; type: string; }; function MyBasicComponent(props: Props) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > propsDestructure 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type Props = { children: any; type: string; }; function MyBasicComponent(props: Props) { const [name, setName] = createSignal(\\"Decadef20\\"); return ( <>
    {props.children} {props.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > propsInterface 1`] = ` "interface Person { name: string; age?: number; } function MyBasicComponent(props: Person | never) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > propsInterface 2`] = ` "interface Person { name: string; age?: number; } function MyBasicComponent(props: Person | never) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > propsType 1`] = ` "type Person = { name: string; age?: number; }; function MyBasicComponent(props: Person) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > propsType 2`] = ` "type Person = { name: string; age?: number; }; function MyBasicComponent(props: Person) { return ( <>
    Hello! I can run in React, Vue, Solid, or Liquid! {props.name}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function OnUpdate(props: any) { function foo(params) {} function bar() {} function zoo() { const params = { cb: bar, }; } return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Typescript Test > referencingFunInsideHook 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function OnUpdate(props: any) { function foo(params) {} function bar() {} function zoo() { const params = { cb: bar, }; } return ( <>
    ); } export default OnUpdate; " `; exports[`Solid > jsx > Typescript Test > renderBlock 1`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component\\"; import RenderComponent from \\"./render-component\\"; import RenderRepeatedBlock from \\"./render-repeated-block\\"; import type { RepeatData } from \\"./types.js\\"; function RenderBlock(props: RenderBlockProps) { const component = createMemo(() => { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); const tag = createMemo(() => { return getBlockTag(useBlock()); }); const useBlock = createMemo(() => { return repeatItemData() ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); }); const actions = createMemo(() => { return getBlockActions({ block: useBlock(), state: props.context.state, context: props.context.context, }); }); const attributes = createMemo(() => { const blockProperties = getBlockProperties(useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: blockProperties.style, }), } : {}), }; }); const shouldWrap = createMemo(() => { return !component()?.noWrap; }); const renderComponentProps = createMemo(() => { return { blockChildren: useChildren(), componentRef: component()?.component, componentOptions: { ...getBlockComponentOptions(useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap() ? {} : { attributes: { ...attributes(), ...actions() }, }), customBreakpoints: childrenContext()?.content?.meta?.breakpoints, }, context: childrenContext(), }; }); const useChildren = createMemo(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return useBlock().children ?? []; }); const childrenWithoutParentComponent = createMemo(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component()?.component && !repeatItemData(); return shouldRenderChildrenOutsideRef ? useChildren() : []; }); const repeatItemData = createMemo(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); const inheritedTextStyles = createMemo(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: attributes().style, }); return extractTextStyles(styles); }); const childrenContext = createMemo(() => { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles(), }; }); const renderComponentTag = createMemo(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); return ( <> } when={shouldWrap()} > {(data, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} ); } export default RenderBlock; " `; exports[`Solid > jsx > Typescript Test > renderBlock 2`] = ` "import { Show, For, createSignal, createMemo } from \\"solid-js\\"; import { Dynamic } from \\"solid-js/web\\"; export type RenderBlockProps = { block: BuilderBlock; context: BuilderContextInterface; }; import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import BlockStyles from \\"./block-styles\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component\\"; import RenderComponent from \\"./render-component\\"; import RenderRepeatedBlock from \\"./render-repeated-block\\"; import type { RepeatData } from \\"./types.js\\"; function RenderBlock(props: RenderBlockProps) { const component = createMemo(() => { const componentName = getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = props.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } }); const tag = createMemo(() => { return getBlockTag(useBlock()); }); const useBlock = createMemo(() => { return repeatItemData() ? props.block : getProcessedBlock({ block: props.block, state: props.context.state, context: props.context.context, shouldEvaluateBindings: true, }); }); const actions = createMemo(() => { return getBlockActions({ block: useBlock(), state: props.context.state, context: props.context.context, }); }); const attributes = createMemo(() => { const blockProperties = getBlockProperties(useBlock()); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: blockProperties.style, }), } : {}), }; }); const shouldWrap = createMemo(() => { return !component()?.noWrap; }); const renderComponentProps = createMemo(() => { return { blockChildren: useChildren(), componentRef: component()?.component, componentOptions: { ...getBlockComponentOptions(useBlock()), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(shouldWrap() ? {} : { attributes: { ...attributes(), ...actions() }, }), customBreakpoints: childrenContext()?.content?.meta?.breakpoints, }, context: childrenContext(), }; }); const useChildren = createMemo(() => { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return useBlock().children ?? []; }); const childrenWithoutParentComponent = createMemo(() => { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !component()?.component && !repeatItemData(); return shouldRenderChildrenOutsideRef ? useChildren() : []; }); const repeatItemData = createMemo(() => { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = props.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: props.context.state, context: props.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...props.context, state: { ...props.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; }); const inheritedTextStyles = createMemo(() => { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: useBlock(), context: props.context, blockStyles: attributes().style, }); return extractTextStyles(styles); }); const childrenContext = createMemo(() => { return { apiKey: props.context.apiKey, state: props.context.state, content: props.context.content, context: props.context.context, registeredComponents: props.context.registeredComponents, inheritedStyles: inheritedTextStyles(), }; }); const renderComponentTag = createMemo(() => { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } }); return ( <> } when={shouldWrap()} > {(data, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} {(child, _index) => { const index = _index(); return ( ); }} ); } export default RenderBlock; " `; exports[`Solid > jsx > Typescript Test > renderContentExample 1`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks\\"; function RenderContent(props: Props) { onMount(() => { sendComponentsToVisualEditor(props.customComponents); }); const onUpdateFn_0_props_content = createMemo(() => props.content); function onUpdateFn_0() { dispatchNewContentToVisualEditor(props.content); } createEffect(on(() => [onUpdateFn_0_props_content()], onUpdateFn_0)); return ( <>
    trackClick(props.content.id)} >
    ); } export default RenderContent; " `; exports[`Solid > jsx > Typescript Test > renderContentExample 2`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; type Props = { customComponents: string[]; content: { blocks: any[]; id: string; }; }; import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import RenderBlocks from \\"@dummy/RenderBlocks\\"; function RenderContent(props: Props) { onMount(() => { sendComponentsToVisualEditor(props.customComponents); }); const onUpdateFn_0_props_content = createMemo(() => props.content); function onUpdateFn_0() { dispatchNewContentToVisualEditor(props.content); } createEffect(on(() => [onUpdateFn_0_props_content()], onUpdateFn_0)); return ( <>
    trackClick(props.content.id)} >
    ); } export default RenderContent; " `; exports[`Solid > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } function Button(props: ButtonProps) { return ( <> <> {props.text} ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > rootFragmentMultiNode 2`] = ` "import { Show } from \\"solid-js\\"; export interface ButtonProps { attributes?: any; text?: string; link?: string; openLinkInNewTab?: boolean; } function Button(props: ButtonProps) { return ( <> <> {props.text} ); } export default Button; " `; exports[`Solid > jsx > Typescript Test > rootShow 1`] = ` "import { Show } from \\"solid-js\\"; export interface RenderStylesProps { foo: string; } function RenderStyles(props: RenderStylesProps) { return ( <> Foo} when={props.foo === \\"bar\\"}>
    Bar
    ); } export default RenderStyles; " `; exports[`Solid > jsx > Typescript Test > rootShow 2`] = ` "import { Show } from \\"solid-js\\"; export interface RenderStylesProps { foo: string; } function RenderStyles(props: RenderStylesProps) { return ( <> Foo} when={props.foo === \\"bar\\"}>
    Bar
    ); } export default RenderStyles; " `; exports[`Solid > jsx > Typescript Test > self-referencing component 1`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props: any) { return ( <>
    {props.name}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > self-referencing component 2`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props: any) { return ( <>
    {props.name}
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props: any) { return ( <>
    {props.name} {props.children}
    Wayne
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > self-referencing component with children 2`] = ` "import { Show } from \\"solid-js\\"; function MyComponent(props: any) { return ( <>
    {props.name} {props.children}
    Wayne
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > setState 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function SetState(props: any) { const [n, setN] = createSignal([\\"123\\"]); function someFn() { n()[0] = \\"123\\"; } return ( <>
    ); } export default SetState; " `; exports[`Solid > jsx > Typescript Test > setState 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function SetState(props: any) { const [n, setN] = createSignal([\\"123\\"]); function someFn() { n()[0] = \\"123\\"; } return ( <>
    ); } export default SetState; " `; exports[`Solid > jsx > Typescript Test > showExpressions 1`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; conditionB: boolean; } function ShowWithOtherValues(props: Props) { return ( <>
    ContentA} when={props.conditionA}> Content0 ContentA ContentA} when={props.conditionA}> ContentB ContentB} when={props.conditionA}> {undefined} ContentC ContentC} when={props.conditionA}> ContentD ContentD} when={props.conditionA}> hello} when={props.conditionA}> ContentE ContentE} when={props.conditionA}> hello 123} when={props.conditionA}> ContentF ContentF} when={props.conditionA}> 123 9mb} when={props.conditionB === \\"Complete\\"}> 20mb } when={props.conditionA === \\"Default\\"} > 4mb 4mb} when={props.conditionA === \\"Default\\"}> 9mb} when={props.conditionB === \\"Complete\\"}> 20mb complete else
    } when={props.conditionC === \\"Complete\\"} > dff } when={props.conditionA === \\"Default\\"} > 9mb} when={props.conditionB === \\"Complete\\"}>
    complete
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Typescript Test > showExpressions 2`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; conditionB: boolean; } function ShowWithOtherValues(props: Props) { return ( <>
    ContentA} when={props.conditionA}> Content0 ContentA ContentA} when={props.conditionA}> ContentB ContentB} when={props.conditionA}> {undefined} ContentC ContentC} when={props.conditionA}> ContentD ContentD} when={props.conditionA}> hello} when={props.conditionA}> ContentE ContentE} when={props.conditionA}> hello 123} when={props.conditionA}> ContentF ContentF} when={props.conditionA}> 123 9mb} when={props.conditionB === \\"Complete\\"}> 20mb } when={props.conditionA === \\"Default\\"} > 4mb 4mb} when={props.conditionA === \\"Default\\"}> 9mb} when={props.conditionB === \\"Complete\\"}> 20mb complete else
    } when={props.conditionC === \\"Complete\\"} > dff } when={props.conditionA === \\"Default\\"} > 9mb} when={props.conditionB === \\"Complete\\"}>
    complete
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Typescript Test > showWithFor 1`] = ` "import { Show, For } from \\"solid-js\\"; interface Props { conditionA: boolean; items: string[]; } function NestedShow(props: Props) { return ( <> else-condition-A} when={props.conditionA}> {(item, _index) => { const idx = _index(); return
    {item}
    ; }}
    ); } export default NestedShow; " `; exports[`Solid > jsx > Typescript Test > showWithFor 2`] = ` "import { Show, For } from \\"solid-js\\"; interface Props { conditionA: boolean; items: string[]; } function NestedShow(props: Props) { return ( <> else-condition-A} when={props.conditionA}> {(item, _index) => { const idx = _index(); return
    {item}
    ; }}
    ); } export default NestedShow; " `; exports[`Solid > jsx > Typescript Test > showWithOtherValues 1`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; } function ShowWithOtherValues(props: Props) { return ( <>
    ContentA ContentB ContentC ContentD hello} when={props.conditionA}> ContentE 123} when={props.conditionA}> ContentF
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Typescript Test > showWithOtherValues 2`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; } function ShowWithOtherValues(props: Props) { return ( <>
    ContentA ContentB ContentC ContentD hello} when={props.conditionA}> ContentE 123} when={props.conditionA}> ContentF
    ); } export default ShowWithOtherValues; " `; exports[`Solid > jsx > Typescript Test > showWithRootText 1`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; } function ShowRootText(props: Props) { return ( <> else-condition-A} when={props.conditionA}> ContentA ); } export default ShowRootText; " `; exports[`Solid > jsx > Typescript Test > showWithRootText 2`] = ` "import { Show } from \\"solid-js\\"; interface Props { conditionA: boolean; } function ShowRootText(props: Props) { return ( <> else-condition-A} when={props.conditionA}> ContentA ); } export default ShowRootText; " `; exports[`Solid > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; function MyBasicComponent(props: Props) { const onUpdateFn_0_props_id = createMemo(() => props.id); const onUpdateFn_0_props_foo_bar_baz = createMemo(() => props.foo.bar.baz); function onUpdateFn_0() { console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.bar.baz); } createEffect( on( () => [onUpdateFn_0_props_id(), onUpdateFn_0_props_foo_bar_baz()], onUpdateFn_0 ) ); return ( <>
    {props.id} {props.foo.bar.baz}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > signalsOnUpdate 2`] = ` "import { on, createEffect, createMemo } from \\"solid-js\\"; type Props = { id: string; foo: { bar: { baz: number; }; }; }; function MyBasicComponent(props: Props) { const onUpdateFn_0_props_id = createMemo(() => props.id); const onUpdateFn_0_props_foo_bar_baz = createMemo(() => props.foo.bar.baz); function onUpdateFn_0() { console.log(\\"props.id changed\\", props.id); console.log(\\"props.foo.value.bar.baz changed\\", props.foo.bar.baz); } createEffect( on( () => [onUpdateFn_0_props_id(), onUpdateFn_0_props_foo_bar_baz()], onUpdateFn_0 ) ); return ( <>
    {props.id} {props.foo.bar.baz}
    ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > spreadAttrs 1`] = ` "function MyBasicComponent(props: any) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > spreadAttrs 2`] = ` "function MyBasicComponent(props: any) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > spreadNestedProps 1`] = ` "function MyBasicComponent(props: any) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > spreadNestedProps 2`] = ` "function MyBasicComponent(props: any) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > spreadProps 1`] = ` "function MyBasicComponent(props: any) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > spreadProps 2`] = ` "function MyBasicComponent(props: any) { return ( <> ); } export default MyBasicComponent; " `; exports[`Solid > jsx > Typescript Test > store-async-function 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props: any) { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } return ( <>
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Typescript Test > store-async-function 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props: any) { async function arrowFunction() { return Promise.resolve(); } async function namedFunction() { return Promise.resolve(); } async function fetchUsers() { return Promise.resolve(); } return ( <>
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Typescript Test > string-literal-store 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props: any) { const [foo, setFoo] = createSignal(123); return ( <>
    {foo()}
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Typescript Test > string-literal-store 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function StringLiteralStore(props: any) { const [foo, setFoo] = createSignal(123); return ( <>
    {foo()}
    ); } export default StringLiteralStore; " `; exports[`Solid > jsx > Typescript Test > styleClassAndCss 1`] = ` "function MyComponent(props: any) { return ( <>
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > styleClassAndCss 2`] = ` "function MyComponent(props: any) { return ( <>
    ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "function StylePropClassAndCss(props: any) { return ( <>
    ); } export default StylePropClassAndCss; " `; exports[`Solid > jsx > Typescript Test > stylePropClassAndCss 2`] = ` "function StylePropClassAndCss(props: any) { return ( <>
    ); } export default StylePropClassAndCss; " `; exports[`Solid > jsx > Typescript Test > subComponent 1`] = ` "import Foo from \\"./foo-sub-component\\"; function SubComponent(props: any) { return ( <> ); } export default SubComponent; " `; exports[`Solid > jsx > Typescript Test > subComponent 2`] = ` "import Foo from \\"./foo-sub-component\\"; function SubComponent(props: any) { return ( <> ); } export default SubComponent; " `; exports[`Solid > jsx > Typescript Test > svgComponent 1`] = ` "function SvgComponent(props: any) { return ( <> ); } export default SvgComponent; " `; exports[`Solid > jsx > Typescript Test > svgComponent 2`] = ` "function SvgComponent(props: any) { return ( <> ); } export default SvgComponent; " `; exports[`Solid > jsx > Typescript Test > typeDependency 1`] = ` "export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export\\"; function TypeDependency(props: TypeDependencyProps) { return ( <>
    {props.foo}
    ); } export default TypeDependency; " `; exports[`Solid > jsx > Typescript Test > typeDependency 2`] = ` "export type TypeDependencyProps = { foo: Foo; foo2: Foo2; }; import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export\\"; function TypeDependency(props: TypeDependencyProps) { return ( <>
    {props.foo}
    ); } export default TypeDependency; " `; exports[`Solid > jsx > Typescript Test > typeExternalProps 1`] = ` "import { FooProps } from \\"./foo-props\\"; function TypeExternalProps(props: FooProps) { return ( <>
    Hello {props.name}!{\\" \\"}
    ); } export default TypeExternalProps; " `; exports[`Solid > jsx > Typescript Test > typeExternalProps 2`] = ` "import { FooProps } from \\"./foo-props\\"; function TypeExternalProps(props: FooProps) { return ( <>
    Hello {props.name}!{\\" \\"}
    ); } export default TypeExternalProps; " `; exports[`Solid > jsx > Typescript Test > typeExternalStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import { FooStore } from \\"./foo-store\\"; function TypeExternalStore(props: any) { const [_name, set_name] = createSignal(\\"test\\"); return ( <>
    Hello {_name()}!{\\" \\"}
    ); } export default TypeExternalStore; " `; exports[`Solid > jsx > Typescript Test > typeExternalStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import { FooStore } from \\"./foo-store\\"; function TypeExternalStore(props: any) { const [_name, set_name] = createSignal(\\"test\\"); return ( <>
    Hello {_name()}!{\\" \\"}
    ); } export default TypeExternalStore; " `; exports[`Solid > jsx > Typescript Test > typeGetterStore 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; function TypeGetterStore(props: any) { const [name, setName] = createSignal(\\"test\\"); function getName() { if (name() === \\"a\\") { return \\"b\\"; } return name(); } const test = createMemo(() => { return \\"test\\"; }); return ( <>
    Hello {name()}!{\\" \\"}
    ); } export default TypeGetterStore; " `; exports[`Solid > jsx > Typescript Test > typeGetterStore 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; type GetterStore = { getName: () => string; name: string; get test(): string; }; function TypeGetterStore(props: any) { const [name, setName] = createSignal(\\"test\\"); function getName() { if (name() === \\"a\\") { return \\"b\\"; } return name(); } const test = createMemo(() => { return \\"test\\"; }); return ( <>
    Hello {name()}!{\\" \\"}
    ); } export default TypeGetterStore; " `; exports[`Solid > jsx > Typescript Test > use-style 1`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > use-style 2`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > use-style-and-css 1`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > use-style-and-css 2`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > use-style-outside-component 1`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > use-style-outside-component 2`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > jsx > Typescript Test > useTarget 1`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function UseTargetComponent(props: any) { const [lastName, setLastName] = createSignal(\\"bar\\"); const [foo, setFoo] = createSignal(\\"bar\\"); const name = createMemo(() => { const prefix = \\"so\\"; return prefix + \\"foo\\"; }); onMount(() => { console.log(foo()); setFoo(\\"bar\\"); }); return ( <>
    {name()}
    ); } export default UseTargetComponent; " `; exports[`Solid > jsx > Typescript Test > useTarget 2`] = ` "import { onMount, createSignal, createMemo } from \\"solid-js\\"; function UseTargetComponent(props: any) { const [lastName, setLastName] = createSignal(\\"bar\\"); const [foo, setFoo] = createSignal(\\"bar\\"); const name = createMemo(() => { const prefix = \\"so\\"; return prefix + \\"foo\\"; }); onMount(() => { console.log(foo()); setFoo(\\"bar\\"); }); return ( <>
    {name()}
    ); } export default UseTargetComponent; " `; exports[`Solid > jsx > Typescript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; function MyBasicWebComponent(props: any) { register(); return ( <> Slide 1 Slide 2 Slide 3 ); } export default MyBasicWebComponent; " `; exports[`Solid > jsx > Typescript Test > webComponent 2`] = ` "import { register } from \\"swiper/element/bundle\\"; function MyBasicWebComponent(props: any) { register(); return ( <> Slide 1 Slide 2 Slide 3 ); } export default MyBasicWebComponent; " `; exports[`Solid > svelte > Javascript Test > basic 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} value={name()} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > basic 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} value={name()} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > bindGroup 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [tortilla, setTortilla] = createSignal(\\"Plain\\"); const [fillings, setFillings] = createSignal([]); return ( <>
    setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setTortilla(event.target.value)} />

    setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} />

    Tortilla: {tortilla()}

    Fillings: {fillings()}

    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > bindGroup 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [tortilla, setTortilla] = createSignal(\\"Plain\\"); const [fillings, setFillings] = createSignal([]); return ( <>
    setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setTortilla(event.target.value)} />

    setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} />

    Tortilla: {tortilla()}

    Fillings: {fillings()}

    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > bindProperty 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [value, setValue] = createSignal(\\"hello\\"); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > bindProperty 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [value, setValue] = createSignal(\\"hello\\"); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > classDirective 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [focus, setFocus] = createSignal(true); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > classDirective 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [focus, setFocus] = createSignal(true); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > context 1`] = ` "Identifier expected. (29:8) 27 | 28 | return (<> > 29 | <'activeTab'.Provider value={activeTab()} >
    {activeTab()}
    | ^ 30 | 31 | 32 | )" `; exports[`Solid > svelte > Javascript Test > context 2`] = ` "Identifier expected. (29:8) 27 | 28 | return (<> > 29 | <'activeTab'.Provider value={activeTab()} >
    {activeTab()}
    | ^ 30 | 31 | 32 | )" `; exports[`Solid > svelte > Javascript Test > each 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [numbers, setNumbers] = createSignal([\\"one\\", \\"two\\", \\"three\\"]); return ( <>
      {(num, _index) => { const index = _index(); return
    • {num}
    • ; }}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > each 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [numbers, setNumbers] = createSignal([\\"one\\", \\"two\\", \\"three\\"]); return ( <>
      {(num, _index) => { const index = _index(); return
    • {num}
    • ; }}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > eventHandlers 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { function log(msg = \\"hello\\") { console.log(msg); } return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > eventHandlers 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { function log(msg = \\"hello\\") { console.log(msg); } return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > html 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [html, setHtml] = createSignal(\\"bold\\"); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > html 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [html, setHtml] = createSignal(\\"bold\\"); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > ifElse 1`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [show, setShow] = createSignal(true); function toggle() { setShow(!show()); } return ( <> toggle(event)}> Show } when={show()} > ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > ifElse 2`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [show, setShow] = createSignal(true); function toggle() { setShow(!show()); } return ( <> toggle(event)}> Show } when={show()} > ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > imports 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import Button from \\"./Button\\"; function MyComponent(props) { const [disabled, setDisabled] = createSignal(false); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > imports 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import Button from \\"./Button\\"; function MyComponent(props) { const [disabled, setDisabled] = createSignal(false); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; function MyComponent(props) { onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > lifecycleHooks 2`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; function MyComponent(props) { onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > reactive 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [name, setName] = createSignal(\\"Steve\\"); const lowercaseName = createMemo(() => { return name().toLowerCase(); }); return ( <>
    Lowercase: {lowercaseName()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > reactive 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [name, setName] = createSignal(\\"Steve\\"); const lowercaseName = createMemo(() => { return name().toLowerCase(); }); return ( <>
    Lowercase: {lowercaseName()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyComponent(props) { const [a, setA] = createSignal(2); const [b, setB] = createSignal(5); const [result, setResult] = createSignal(null); function calculateResult(a_, b_) { setResult(a_ * b_); } const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { calculateResult(a(), b()); } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); return ( <>
    setA(event.target.value)} value={a()} /> setB(event.target.value)} value={b()} /> Result: {result()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > reactiveWithFn 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyComponent(props) { const [a, setA] = createSignal(2); const [b, setB] = createSignal(5); const [result, setResult] = createSignal(null); function calculateResult(a_, b_) { setResult(a_ * b_); } const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { calculateResult(a(), b()); } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); return ( <>
    setA(event.target.value)} value={a()} /> setB(event.target.value)} value={b()} /> Result: {result()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > slots 1`] = ` "function MyComponent(props) { return ( <>
    default
    default
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > slots 2`] = ` "function MyComponent(props) { return ( <>
    default
    default
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > style 1`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > style 2`] = ` "function MyComponent(props) { return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > textExpressions 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [a, setA] = createSignal(5); const [b, setB] = createSignal(12); return ( <>
    normal: {a() + b()}
    conditional {a() > 2 ? \\"hello\\" : \\"bye\\"}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Javascript Test > textExpressions 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props) { const [a, setA] = createSignal(5); const [b, setB] = createSignal(12); return ( <>
    normal: {a() + b()}
    conditional {a() > 2 ? \\"hello\\" : \\"bye\\"}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > basic 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} value={name()} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > basic 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [name, setName] = createSignal(\\"Steve\\"); return ( <>
    setName(event.target.value)} value={name()} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > bindGroup 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [tortilla, setTortilla] = createSignal(\\"Plain\\"); const [fillings, setFillings] = createSignal([]); return ( <>
    setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setTortilla(event.target.value)} />

    setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} />

    Tortilla: {tortilla()}

    Fillings: {fillings()}

    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > bindGroup 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [tortilla, setTortilla] = createSignal(\\"Plain\\"); const [fillings, setFillings] = createSignal([]); return ( <>
    setTortilla(event.target.value)} /> setTortilla(event.target.value)} /> setTortilla(event.target.value)} />

    setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} /> setFillings(event.target.value)} />

    Tortilla: {tortilla()}

    Fillings: {fillings()}

    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > bindProperty 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [value, setValue] = createSignal(\\"hello\\"); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > bindProperty 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [value, setValue] = createSignal(\\"hello\\"); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > classDirective 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [focus, setFocus] = createSignal(true); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > classDirective 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [focus, setFocus] = createSignal(true); return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > context 1`] = ` "Identifier expected. (29:8) 27 | 28 | return (<> > 29 | <'activeTab'.Provider value={activeTab()} >
    {activeTab()}
    | ^ 30 | 31 | 32 | )" `; exports[`Solid > svelte > Typescript Test > context 2`] = ` "Identifier expected. (29:8) 27 | 28 | return (<> > 29 | <'activeTab'.Provider value={activeTab()} >
    {activeTab()}
    | ^ 30 | 31 | 32 | )" `; exports[`Solid > svelte > Typescript Test > each 1`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [numbers, setNumbers] = createSignal([\\"one\\", \\"two\\", \\"three\\"]); return ( <>
      {(num, _index) => { const index = _index(); return
    • {num}
    • ; }}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > each 2`] = ` "import { For, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [numbers, setNumbers] = createSignal([\\"one\\", \\"two\\", \\"three\\"]); return ( <>
      {(num, _index) => { const index = _index(); return
    • {num}
    • ; }}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > eventHandlers 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { function log(msg = \\"hello\\") { console.log(msg); } return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > eventHandlers 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { function log(msg = \\"hello\\") { console.log(msg); } return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > html 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [html, setHtml] = createSignal(\\"bold\\"); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > html 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [html, setHtml] = createSignal(\\"bold\\"); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > ifElse 1`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [show, setShow] = createSignal(true); function toggle() { setShow(!show()); } return ( <> toggle(event)}> Show } when={show()} > ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > ifElse 2`] = ` "import { Show, createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [show, setShow] = createSignal(true); function toggle() { setShow(!show()); } return ( <> toggle(event)}> Show } when={show()} > ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > imports 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import Button from \\"./Button\\"; function MyComponent(props: any) { const [disabled, setDisabled] = createSignal(false); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > imports 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; import Button from \\"./Button\\"; function MyComponent(props: any) { const [disabled, setDisabled] = createSignal(false); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > lifecycleHooks 2`] = ` "import { onMount, on, createEffect, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { onMount(() => { console.log(\\"onMount\\"); }); return ( <>
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > reactive 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [name, setName] = createSignal(\\"Steve\\"); const lowercaseName = createMemo(() => { return name().toLowerCase(); }); return ( <>
    Lowercase: {lowercaseName()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > reactive 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [name, setName] = createSignal(\\"Steve\\"); const lowercaseName = createMemo(() => { return name().toLowerCase(); }); return ( <>
    Lowercase: {lowercaseName()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyComponent(props: any) { const [a, setA] = createSignal(2); const [b, setB] = createSignal(5); const [result, setResult] = createSignal(null); function calculateResult(a_, b_) { setResult(a_ * b_); } const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { calculateResult(a(), b()); } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); return ( <>
    setA(event.target.value)} value={a()} /> setB(event.target.value)} value={b()} /> Result: {result()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > reactiveWithFn 2`] = ` "import { on, createEffect, createMemo, createSignal } from \\"solid-js\\"; function MyComponent(props: any) { const [a, setA] = createSignal(2); const [b, setB] = createSignal(5); const [result, setResult] = createSignal(null); function calculateResult(a_, b_) { setResult(a_ * b_); } const onUpdateFn_0_a__ = createMemo(() => a()); const onUpdateFn_0_b__ = createMemo(() => b()); function onUpdateFn_0() { calculateResult(a(), b()); } createEffect( on(() => [onUpdateFn_0_a__(), onUpdateFn_0_b__()], onUpdateFn_0) ); return ( <>
    setA(event.target.value)} value={a()} /> setB(event.target.value)} value={b()} /> Result: {result()}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > slots 1`] = ` "function MyComponent(props: any) { return ( <>
    default
    default
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > slots 2`] = ` "function MyComponent(props: any) { return ( <>
    default
    default
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > style 1`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > style 2`] = ` "function MyComponent(props: any) { return ( <> ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > textExpressions 1`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [a, setA] = createSignal(5); const [b, setB] = createSignal(12); return ( <>
    normal: {a() + b()}
    conditional {a() > 2 ? \\"hello\\" : \\"bye\\"}
    ); } export default MyComponent; " `; exports[`Solid > svelte > Typescript Test > textExpressions 2`] = ` "import { createSignal, createMemo } from \\"solid-js\\"; function MyComponent(props: any) { const [a, setA] = createSignal(5); const [b, setB] = createSignal(12); return ( <>
    normal: {a() + b()}
    conditional {a() > 2 ? \\"hello\\" : \\"bye\\"}
    ); } export default MyComponent; " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/stencil.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Stencil > jsx > Javascript Test > Advanced 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-show-component\\", }) export class MyBasicForShowComponent { @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() {} render() { return (
    {this.names?.map((person, i) => (
    {i}:{person}
    ))} {this.names?.map((person) => ( {person} ))} {this.names?.map((item) => (
    ))} {Array.from({ length: 10, })?.map((_, ee) => (
    {ee}
    ))} {Array.from({ length: 10, })?.map((item) => (

    {index}

    ))} {this.names?.map((person, index) => ( {person} {index} ))} {Array.from({ length: 10, })?.map((person, count) => ( {person} {count} ))} {this.names?.map((person, i) => ( {person} {i} ))} {Array.from({ length: 10, })?.map((person, index) => ( {person} {index} ))}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > AdvancedRef 1`] = ` "import { Component, h, Fragment, Watch, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicRefComponent { private inputRef!: HTMLElement; private inputNoArgRef!: HTMLElement; @Prop() showInput: any; @State() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; watch0Fn() { console.log(\\"Received an update\\"); } @Watch(\\"inputRef\\") @Watch(\\"inputNoArgRef\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    {this.showInput ? ( { this.inputRef = el; }} value={this.name} onBlur={(event) => this.onBlur()} onChange={(event) => (this.name = event.target.value)} /> ) : null} Hello {this.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Basic 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { @State() name = \\"Steve\\"; @State() age = 1; @State() sports = [\\"\\"]; underscore_fn_name() { return \\"bar\\"; } DEFAULT_VALUES = { name: \\"Steve\\", }; componentDidLoad() {} render() { return (
    (this.name = myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Basic 2`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-show-component\\", }) export class MyBasicForShowComponent { @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() {} render() { return (
    {this.names?.map((person) => person === this.name ? ( { this.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ) : null )}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Basic Context 1`] = ` "import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @State() name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; componentDidLoad() { const bye = this.myService.method(\\"hi\\"); console.log(bye); } render() { return (
    {this.myService.method(\\"hello\\") + this.name} Hello! I can run in React, Vue, Solid, or Liquid! this.onChange()} />
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Basic OnMount Update 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-on-mount-update-component\\", }) export class MyBasicOnMountUpdateComponent { @Prop() bye: any; @Prop() hi: any; @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() { this.name = \\"PatrickJS onMount\\" + this.bye; } render() { return (
    Hello {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Basic Outputs 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, State, } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-outputs-component\\", }) export class MyBasicOutputsComponent { @Event() messageChange: any; @Event() event: any; @Prop() message: any; @State() name = \\"PatrickJS\\"; componentDidLoad() { this.messageChange.emit(this.name); this.event.emit(this.message); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Component, h, Fragment, Event, EventEmitter, Prop, State, } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-outputs-component\\", }) export class MyBasicOutputsComponent { @Event() messageChange: any; @Event() event: any; @Prop() message: any; @State() name = \\"PatrickJS\\"; componentDidLoad() { this.messageChange.emit(this.name); this.event.emit(this.message); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > BasicAttribute 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "import { MyBooleanAttributeComponent } from \\"./basic-boolean-attribute-component.raw\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-boolean-attribute\\", }) export class MyBooleanAttribute { @Prop() type: any; componentDidLoad() {} render() { return (
    {this.children ? ( {this.type} ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > BasicChildComponent 1`] = ` "import { MyBasicOnMountUpdateComponent } from \\"./basic-onMount-update.raw\\"; import { MyBasicOutputsComponent } from \\"./basic-outputs.raw\\"; import { MyBasicComponent } from \\"./basic.raw\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-child-component\\", }) export class MyBasicChildComponent { @State() name = \\"Steve\\"; @State() dev = \\"PatrickJS\\"; log = function log(message) { console.log(message); }; componentDidLoad() {} render() { return (
    (this.name = name)} onEvent={() => this.log(\\"Test\\")} >
    ); } } " `; exports[`Stencil > jsx > Javascript Test > BasicFor 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-component\\", }) export class MyBasicForComponent { @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() { console.log(\\"onMount code\\"); } render() { return (
    {this.names?.map((person) => ( { this.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ))}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > BasicRef 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicRefComponent { private inputRef!: HTMLElement; private inputNoArgRef!: HTMLElement; @Prop() showInput: any; @State() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; componentDidLoad() {} render() { return (
    {this.showInput ? ( { this.inputRef = el; }} value={this.name} onBlur={(event) => this.onBlur()} onChange={(event) => (this.name = event.target.value)} /> ) : null} Hello {this.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > BasicRefAssignment 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-ref-assignment-component\\", }) export class MyBasicRefAssignmentComponent { private holdValueRef!: HTMLElement; handlerClick = function handlerClick(event) { event.preventDefault(); console.log(\\"current value\\", this.holdValueRef); this.holdValueRef = this.holdValueRef + \\"JS\\"; }; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Javascript Test > BasicRefPrevious 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-previous-component\\", }) export class MyPreviousComponent { private prevCount!: HTMLElement; @State() count = 0; watch0Fn() { this.prevCount = this.count; } @Watch(\\"count\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (

    Now: {this.count}, before: {this.prevCount}

    ); } } " `; exports[`Stencil > jsx > Javascript Test > Button 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any; @Prop() attributes: any; @Prop() openLinkInNewTab: any; @Prop() text: any; componentDidLoad() {} render() { return (
    {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Columns 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"column\\", styles: \` .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, }) export class Column { @Prop() columns: any; @Prop() space: any; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } componentDidLoad() {} render() { return (
    {this.columns?.map((column, index) => (
    {column.content} {index}
    ))}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > ContentSlotHtml 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"content-slot-code\\", }) export class ContentSlotCode { @Prop() slotTesting: any; componentDidLoad() {} render() { return (

    ); } } " `; exports[`Stencil > jsx > Javascript Test > ContentSlotJSX 1`] = ` "import { Component, h, Fragment, Host, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"content-slot-jsx-code\\", }) export class ContentSlotJsxCode { @Prop() slotContent: any = undefined; @Prop() slotReference: any = undefined; @Prop() attributes: any; @Prop() content: any = \\"\\"; @State() name = \\"king\\"; @State() showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } componentDidLoad() {} render() { return ( {this.slotReference ? (
    this.show()} > {this.showContent && this.slotContent ? ( {this.content} ) : null}

    ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > CustomCode 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"custom-code\\", }) export class CustomCode { private elem!: HTMLElement; @Prop() replaceNodes: any; @Prop() code: any; @State() scriptsInserted = []; @State() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } componentDidLoad() { this.findAndRunScripts(); } render() { return (
    { this.elem = el; }} innerHTML={this.code} >
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Embed 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"custom-code\\", }) export class CustomCode { private elem!: HTMLElement; @Prop() replaceNodes: any; @Prop() code: any; @State() scriptsInserted = []; @State() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } componentDidLoad() { this.findAndRunScripts(); } render() { return (
    { this.elem = el; }} innerHTML={this.code} >
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Form 1`] = ` "import { Builder, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"form-component\\", styles: \` .pre { padding: 10px; color: red; text-align: center; } \`, }) export class FormComponent { private formRef!: HTMLElement; @Prop() previewState: any; @Prop() sendWithJs: any; @Prop() sendSubmissionsTo: any; @Prop() action: any; @Prop() customHeaders: any; @Prop() contentType: any; @Prop() sendSubmissionsToEmail: any; @Prop() name: any; @Prop() method: any; @Prop() errorMessagePath: any; @Prop() resetFormOnSubmit: any; @Prop() successUrl: any; @Prop() validate: any; @Prop() attributes: any; @Prop() builderBlock: any; @Prop() errorMessage: any; @Prop() sendingMessage: any; @Prop() successMessage: any; @State() formState = \\"unsubmitted\\"; @State() responseData = null; @State() formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit(event) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body; const formData = new FormData(el); // TODO: maybe support null const formPairs = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!el.name) .map((el) => { let value; const key = el.name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = el.value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef) { this.formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } componentDidLoad() {} render() { return (
    { this.formRef = el; }} action={!this.sendWithJs && this.action} method={this.method} name={this.name} onSubmit={(event) => this.onSubmit(event)} {...this.attributes} > {this.builderBlock && this.builderBlock.children ? this.builderBlock?.children?.map((block, index) => ( )) : null} {this.submissionState === \\"error\\" ? ( ) : null} {this.submissionState === \\"sending\\" ? ( ) : null} {this.submissionState === \\"error\\" && this.responseData ? (
                {JSON.stringify(this.responseData, null, 2)}
              
    ) : null} {this.submissionState === \\"success\\" ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Image 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"image\\", styles: \` .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, }) export class Image { private pictureRef!: HTMLElement; @Prop() lazy: any; @Prop() altText: any; @Prop() _class: any; @Prop() image: any; @Prop() srcset: any; @Prop() sizes: any; @State() scrollListener = null; @State() imageLoaded = false; @State() load = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; componentDidLoad() { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef) { const rect = this.pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } disconnectedCallback() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } render() { return (
    { this.pictureRef = el; }} > {!this.useLazyLoading() || this.load ? ( {this.altText} this.setLoaded()} srcset={this.srcset} sizes={this.sizes} /> ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Image State 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"img-state-component\\", }) export class ImgStateComponent { @State() canShow = true; @State() images = [\\"http://example.com/qwik.png\\"]; componentDidLoad() {} render() { return (
    {this.images?.map((item, itemIndex) => ( ))}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"img-component\\", }) export class ImgComponent { @Prop() backgroundSize: any; @Prop() backgroundPosition: any; @Prop() attributes: any; @Prop() imgSrc: any; @Prop() altText: any; componentDidLoad() {} render() { return ( {this.altText} ); } } " `; exports[`Stencil > jsx > Javascript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"form-input-component\\", }) export class FormInputComponent { @Prop() attributes: any; @Prop() defaultValue: any; @Prop() placeholder: any; @Prop() type: any; @Prop() name: any; @Prop() value: any; @Prop() required: any; @Event() change: any; componentDidLoad() {} render() { return ( this.change?.(event.target.value)} /> ); } } " `; exports[`Stencil > jsx > Javascript Test > InputParent 1`] = ` "import { FormInputComponent } from \\"./input.raw\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"stepper\\", }) export class Stepper { handleChange(value) { console.log(value); } componentDidLoad() {} render() { return ( this.handleChange(value)} > ); } } " `; exports[`Stencil > jsx > Javascript Test > NestedStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"nested-store\\", }) export class NestedStore { @State() _id = \\"abc\\"; @State() _messageId = this._id + \\"-message\\"; componentDidLoad() {} render() { return (
    Test

    Message

    ); } } " `; exports[`Stencil > jsx > Javascript Test > RawText 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"raw-text\\", }) export class RawText { @Prop() attributes: any; @Prop() text: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > Section 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"section-component\\", }) export class SectionComponent { @Prop() attributes: any; @Prop() maxWidth: any; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Section 2`] = ` "import { Component, h, Fragment, Host, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"section-state-component\\", }) export class SectionStateComponent { @Prop() attributes: any; @State() max = 42; @State() items = [42]; componentDidLoad() {} render() { return ( {this.max ? this.items?.map((item) => (
    )) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Select 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"select-component\\", }) export class SelectComponent { @Prop() attributes: any; @Prop() value: any; @Prop() defaultValue: any; @Prop() name: any; @Prop() options: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > SlotDefault 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Default content
    ); } } " `; exports[`Stencil > jsx > Javascript Test > SlotHtml 1`] = ` "import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Hello
    }> ); } } " `; exports[`Stencil > jsx > Javascript Test > SlotJsx 1`] = ` "import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Hello
    }> ); } } " `; exports[`Stencil > jsx > Javascript Test > SlotNamed 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Default left Default Child
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Stamped.io 1`] = ` "import { kebabCase, snakeCase } from \\"lodash\\"; import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"smile-reviews\\", styles: \` .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, }) export class SmileReviews { @Prop() apiKey: any; @Prop() productId: any; @State() reviews = []; @State() name = \\"test\\"; @State() showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } componentDidLoad() { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } render() { return (
    {this.showReviewPrompt || \\"asdf\\" ? ( ) : null} {this.reviews?.map((review, index) => (
    N: {index}
    {review.author}
    {review.reviewMessage}
    ))}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > StoreComment 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"string-literal-store\\", }) export class StringLiteralStore { @State() foo = true; bar() {} componentDidLoad() {} render() { return {this.foo}; } } " `; exports[`Stencil > jsx > Javascript Test > StoreShadowVars 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() errors = {}; foo(errors) { return errors; } componentDidLoad() {} render() { return {this.foo(this.errors)}; } } " `; exports[`Stencil > jsx > Javascript Test > StoreWithState 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() foo = false; bar() { return this.foo; } componentDidLoad() {} render() { return {this.bar()}; } } " `; exports[`Stencil > jsx > Javascript Test > Submit 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"submit-button\\", }) export class SubmitButton { @Prop() attributes: any; @Prop() text: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > Text 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"text\\", }) export class Text { @Prop() text: any; @Prop() content: any; @State() name = \\"Decadef20\\"; componentDidLoad() {} render() { return (
    my name

    ' } >
    ); } } " `; exports[`Stencil > jsx > Javascript Test > Textarea 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"textarea\\", }) export class Textarea { @Prop() attributes: any; @Prop() placeholder: any; @Prop() name: any; @Prop() value: any; @Prop() defaultValue: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, State, } from \\"@stencil/core\\"; @Component({ tag: \\"use-value-and-fn-from-store\\", }) export class UseValueAndFnFromStore { @Event() change: any; @State() _id = \\"abc\\"; @State() _active = false; _do(id) { this._active = !!id; if (this.change) { this.change.emit(this._active); } } componentDidLoad() {} componentDidUpdate() { if (this._do) { this._do(this._id); } } render() { return
    Test
    ; } } " `; exports[`Stencil > jsx > Javascript Test > Video 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"video\\", }) export class Video { @Prop() attributes: any; @Prop() fit: any; @Prop() position: any; @Prop() video: any; @Prop() posterImage: any; @Prop() autoPlay: any; @Prop() muted: any; @Prop() controls: any; @Prop() loop: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } componentDidLoad() {} render() { return (
    Hello {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > basicForFragment 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"basic-for-fragment\\", }) export class BasicForFragment { @State() id = \\"xyz\\"; componentDidLoad() {} render() { return (
    {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => (
    {option}
    ))} {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => (
    {option}
    ))}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > basicForNoTagReference 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-no-tag-ref-component\\", }) export class MyBasicForNoTagRefComponent { @Prop() actions: any; @State() name = \\"VincentW\\"; @State() TagName = \\"div\\"; @State() tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } componentDidLoad() {} render() { return ( Hello {this.name} {this.actions?.map((action) => ( {action.text} ))} ); } } " `; exports[`Stencil > jsx > Javascript Test > basicForwardRef 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-forward-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicForwardRefComponent { @Prop() inputRef: any; @State() name = \\"PatrickJS\\"; componentDidLoad() {} render() { return (
    { this.inputRef = el; }} value={this.name} onChange={(event) => (this.name = event.target.value)} />
    ); } } " `; exports[`Stencil > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-forward-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicForwardRefComponent { @Prop() inputRef: any; @State() name = \\"PatrickJS\\"; componentDidLoad() {} render() { return (
    { this.inputRef = el; }} value={this.name} onChange={(event) => (this.name = event.target.value)} />
    ); } } " `; exports[`Stencil > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-on-update-return-component\\", }) export class MyBasicOnUpdateReturnComponent { @State() name = \\"PatrickJS\\"; watch0Fn() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } @Watch(\\"name\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    Hello! {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"basic-ref-attribute-passing-component\\", }) export class BasicRefAttributePassingComponent { private buttonRef!: HTMLElement; private _root!: HTMLElement; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } componentDidLoad() { this.enableAttributePassing( this._root, \\"basic-ref-attribute-passing-component\\" ); console.log(\\"onMount\\"); } render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"basic-ref-attribute-passing-custom-ref-component\\", }) export class BasicRefAttributePassingCustomRefComponent { private buttonRef!: HTMLElement; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } componentDidLoad() { this.enableAttributePassing( this.buttonRef, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } render() { return (
    ); } } " `; exports[`Stencil > jsx > Javascript Test > class + ClassName + css 1`] = ` "import { MyComp } from \\"./my-component.lite\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > class + css 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > className + css 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > className 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"class-name-code\\", }) export class ClassNameCode { @State() bindings = \\"a binding\\"; componentDidLoad() {} render() { return (
    Without Binding
    With binding
    ); } } " `; exports[`Stencil > jsx > Javascript Test > classState 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { @State() classState = \\"testClassName\\"; @State() styleState = { color: \\"red\\", }; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop({ attribute: \\"classname\\", mutable: false, reflect: false }) className: any; @Prop() type: any; componentDidLoad() {} render() { return (
    {this.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"complex-meta-raw\\", }) export class ComplexMetaRaw { componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > componentWithContext 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"component-with-context\\", }) export class ComponentWithContext { @Prop() content: any; componentDidLoad() {} render() { return ( {this.foo.value} ); } } " `; exports[`Stencil > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"component-with-context\\", }) export class ComponentWithContext { @Prop() content: any; componentDidLoad() {} render() { return ( {this.foo.value}
    other
    ); } } " `; exports[`Stencil > jsx > Javascript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-content\\", }) export class RenderContent { @Prop() content: any; @Prop() customComponents: any; componentDidLoad() {} render() { return
    setting context
    ; } } " `; exports[`Stencil > jsx > Javascript Test > defaultProps 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any = \\"https://builder.io/\\"; @Prop() attributes: any; @Prop() openLinkInNewTab: any = false; @Prop() text: any = \\"default text\\"; @Event() click: any = () => { console.log(\\"hi\\"); }; @Prop() buttonText: any; componentDidLoad() {} render() { return (
    {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any = \\"https://builder.io/\\"; @Prop() attributes: any; @Prop() openLinkInNewTab: any = false; @Prop() text: any = \\"default text\\"; @Event() click: any = () => {}; componentDidLoad() {} render() { return (
    {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > defaultValsWithTypes 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"component-with-types\\", }) export class ComponentWithTypes { @Prop() name: any; DEFAULT_VALUES = { name: \\"Sami\\", }; componentDidLoad() {} render() { return (
    {\\" \\"} Hello {this.name || this.DEFAULT_VALUES.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > eventInputAndChange 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"event-input-and-change\\", styles: \` .input { color: red; } \`, }) export class EventInputAndChange { @State() name = \\"Steve\\"; componentDidLoad() {} render() { return (
    (this.name = event.target.value)} onChange={(event) => (this.name = event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > eventProps 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"event-props-component\\", }) export class EventPropsComponent { @Event() getVoid: any; @Event() enter: any; @Event() pass: any; handleClick() { if (this.getVoid) { this.getVoid.emit(); } if (this.enter) { console.log(this.enter.emit()); } if (this.pass) { this.pass.emit(\\"test\\"); } } componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > expressionState 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() componentRef: any; @State() refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; componentDidLoad() {} render() { return
    {this.refToUse}
    ; } } " `; exports[`Stencil > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"figma-button\\", }) export class FigmaButton { @Prop() icon: any; @Prop() interactiveState: any; @Prop() width: any; @Prop() size: any; @Prop() label: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > functionProps 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return (

    x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} >

    ); } } " `; exports[`Stencil > jsx > Javascript Test > getterState 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() foo: any; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i) { return i + this.foo2.length; } componentDidLoad() {} render() { return (

    {this.foo2}

    {this.bar}

    {this.baz(1)}

    ); } } " `; exports[`Stencil > jsx > Javascript Test > import types 1`] = ` "import { RenderBlock } from \\"./builder-render-block.raw\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-content\\", }) export class RenderContent { @Prop() renderContentProps: any; getRenderContentProps(block, index) { return { block: block, index: index, }; } componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > layerName 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-layer-name-component\\", styles: \` .layer-name { padding: 10px; } \`, }) export class MyLayerNameComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > multipleOnUpdate 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"multiple-on-update\\", }) export class MultipleOnUpdate { componentDidLoad() {} componentDidUpdate() { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"multiple-on-update-with-deps\\", }) export class MultipleOnUpdateWithDeps { @State() a = \\"a\\"; @State() b = \\"b\\"; @State() c = \\"c\\"; @State() d = \\"d\\"; watch0Fn() { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } } @Watch(\\"a\\") @Watch(\\"b\\") watch0() { this.watch0Fn(); } watch1Fn() { console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } @Watch(\\"c\\") @Watch(\\"d\\") watch1() { this.watch1Fn(); } componentDidLoad() { this.watch0Fn(); this.watch1Fn(); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > multipleSpreads 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @State() attrs = { hello: \\"world\\", }; componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > nestedStyles 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"nested-styles\\", styles: \` .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, }) export class NestedStyles { componentDidLoad() {} render() { return
    Hello world
    ; } } " `; exports[`Stencil > jsx > Javascript Test > normalizeLayerNames 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-normalized-layer-names-component\\", styles: \` .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, }) export class MyNormalizedLayerNamesComponent { componentDidLoad() {} render() { return (
    Emoji
    Dashes
    CamelCase
    Special chars
    Special chars with dashes
    Single Number
    Multiple Numbers
    Chars with numbers at end
    Chars with numbers at start
    Numnbers separated by dash
    Emoji
    Number
    ); } } " `; exports[`Stencil > jsx > Javascript Test > onEvent 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"embed\\", }) export class Embed { private elem!: HTMLElement; foo(event) { console.log(\\"test2\\"); } componentDidLoad() { this.elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); } render() { return (
    { this.elem = el; }} >
    Test
    ); } } " `; exports[`Stencil > jsx > Javascript Test > onInit & onMount 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-init\\", }) export class OnInit { componentDidLoad() { console.log(\\"onMount\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > onInit 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"on-init\\", }) export class OnInit { @Prop() name: any; @State() name = \\"\\"; componentDidLoad() {} render() { return (
    Default name defined by parent {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > onInitPlain 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-init-plain\\", }) export class OnInitPlain { componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > onMount 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"comp\\", }) export class Comp { componentDidLoad() { console.log(\\"Runs on mount\\"); } disconnectedCallback() { console.log(\\"Runs on unMount\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > onMountMultiple 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"comp\\", }) export class Comp { componentDidLoad() { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > onUpdate 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-update\\", }) export class OnUpdate { componentDidLoad() {} componentDidUpdate() { console.log(\\"Runs on every update/rerender\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > onUpdateWithDeps 1`] = ` "import { Component, h, Fragment, Watch, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"on-update-with-deps\\", }) export class OnUpdateWithDeps { @Prop() size: any; @State() a = \\"a\\"; @State() b = \\"b\\"; watch0Fn() { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } @Watch(\\"a\\") @Watch(\\"b\\") @Watch(\\"size\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > preserveTyping 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid! {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > propsDestructure 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() type: any; @State() name = \\"Decadef20\\"; componentDidLoad() {} render() { return (
    {this.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Javascript Test > propsInterface 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid! {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > propsType 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid! {this.name}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > referencingFunInsideHook 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-update\\", }) export class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; componentDidLoad() {} componentDidUpdate() { this.foo({ someOption: this.bar, }); } render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import { BlockStyles } from \\"./block-styles.lite\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import RenderComponent from \\"./render-component\\"; import { RenderRepeatedBlock } from \\"./render-repeated-block.lite\\"; import { Component, h, Fragment, Host, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-block\\", }) export class RenderBlock { @Prop() block: any; @Prop() context: any; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } componentDidLoad() {} render() { return ( {this.shouldWrap ? ( {isEmptyHtmlElement(this.tag) ? ( ) : null} {!isEmptyHtmlElement(this.tag) && this.repeatItemData ? this.repeatItemData?.map((data, index) => ( )) : null} {!isEmptyHtmlElement(this.tag) && !this.repeatItemData ? ( {this.childrenWithoutParentComponent?.map((child) => ( ))} {this.childrenWithoutParentComponent?.map((child) => ( ))} ) : null} ) : ( )} ); } } " `; exports[`Stencil > jsx > Javascript Test > renderContentExample 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import { RenderBlocks } from \\"@dummy/RenderBlocks.lite.tsx\\"; import { Component, h, Fragment, Watch, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-content\\", styles: \` .div { display: flex; flex-direction: columns; } \`, }) export class RenderContent { @Prop() customComponents: any; @Prop() content: any; watch0Fn() { dispatchNewContentToVisualEditor(this.content); } @Watch(\\"content\\") watch0() { this.watch0Fn(); } componentDidLoad() { sendComponentsToVisualEditor(this.customComponents); this.watch0Fn(); } render() { return (
    trackClick(this.content.id)}>
    ); } } " `; exports[`Stencil > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any; @Prop() attributes: any; @Prop() openLinkInNewTab: any; @Prop() text: any; componentDidLoad() {} render() { return ( {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null} ); } } " `; exports[`Stencil > jsx > Javascript Test > self-referencing component 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    {this.name} {this.name === \\"Batman\\" ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > self-referencing component with children 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    {this.name} {this.name === \\"Batman\\" ? (
    Wayne
    ) : null}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > setState 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"set-state\\", }) export class SetState { @State() n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Javascript Test > signalsOnUpdate 1`] = ` "import { Component, h, Fragment, Watch, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { @Prop() id: any; @Prop() foo: any; watch0Fn() { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.value.bar.baz); } @Watch(\\"id\\") @Watch(\\"foo.value.bar.baz\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    {this.id} {this.foo.value.bar.baz}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > spreadAttrs 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > spreadNestedProps 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() nested: any; componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > spreadProps 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > store-async-function 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"string-literal-store\\", }) export class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Javascript Test > string-literal-store 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"string-literal-store\\", }) export class StringLiteralStore { @State() foo = 123; componentDidLoad() {} render() { return
    {this.foo}
    ; } } " `; exports[`Stencil > jsx > Javascript Test > styleClassAndCss 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class MyComponent { componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Javascript Test > stylePropClassAndCss 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"style-prop-class-and-css\\", styles: \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class StylePropClassAndCss { @Prop() attributes: any; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Javascript Test > subComponent 1`] = ` "import { Foo } from \\"./foo-sub-component.lite\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"sub-component\\", }) export class SubComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > svgComponent 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"svg-component\\", }) export class SvgComponent { componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > typeDependency 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"type-dependency\\", }) export class TypeDependency { @Prop() foo: any; componentDidLoad() {} render() { return
    {this.foo}
    ; } } " `; exports[`Stencil > jsx > Javascript Test > typeExternalProps 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"type-external-props\\", }) export class TypeExternalProps { @Prop() name: any; componentDidLoad() {} render() { return (
    Hello {this.name}!{\\" \\"}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > typeExternalStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"type-external-store\\", }) export class TypeExternalStore { @State() _name = \\"test\\"; componentDidLoad() {} render() { return (
    Hello {this._name}!{\\" \\"}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > typeGetterStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"type-getter-store\\", }) export class TypeGetterStore { @State() name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } componentDidLoad() {} render() { return (
    Hello {this.name}!{\\" \\"}
    ); } } " `; exports[`Stencil > jsx > Javascript Test > use-style 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > use-style-and-css 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Javascript Test > use-style-outside-component 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Javascript Test > useTarget 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"use-target-component\\", }) export class UseTargetComponent { @State() lastName = \\"bar\\"; @State() foo = \\"bar\\"; get name() { const prefix = \\"st\\"; return prefix + \\"foo\\"; } componentDidLoad() { console.log(this.foo); this.foo = \\"bar\\"; } render() { return
    {this.name}
    ; } } " `; exports[`Stencil > jsx > Javascript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-web-component\\", }) export class MyBasicWebComponent { componentDidLoad() {} render() { return ( Slide 1 Slide 2 Slide 3 ); } } " `; exports[`Stencil > jsx > Remove Internal mitosis package 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @State() name = \\"PatrickJS\\"; componentDidLoad() {} render() { return (
    Hello {this.name}! I can run in React, Qwik, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Advanced 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-show-component\\", }) export class MyBasicForShowComponent { @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() {} render() { return (
    {this.names?.map((person, i) => (
    {i}:{person}
    ))} {this.names?.map((person) => ( {person} ))} {this.names?.map((item) => (
    ))} {Array.from({ length: 10, })?.map((_, ee) => (
    {ee}
    ))} {Array.from({ length: 10, })?.map((item) => (

    {index}

    ))} {this.names?.map((person, index) => ( {person} {index} ))} {Array.from({ length: 10, })?.map((person, count) => ( {person} {count} ))} {this.names?.map((person, i) => ( {person} {i} ))} {Array.from({ length: 10, })?.map((person, index) => ( {person} {index} ))}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > AdvancedRef 1`] = ` "import { Component, h, Fragment, Watch, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicRefComponent { private inputRef!: HTMLInputElement; private inputNoArgRef!: HTMLLabelElement; @Prop() showInput: any; @State() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; watch0Fn() { console.log(\\"Received an update\\"); } @Watch(\\"inputRef\\") @Watch(\\"inputNoArgRef\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    {this.showInput ? ( { this.inputRef = el; }} value={this.name} onBlur={(event) => this.onBlur()} onChange={(event) => (this.name = event.target.value)} /> ) : null} Hello {this.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Basic 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { @State() name = \\"Steve\\"; @State() age = 1; @State() sports = [\\"\\"]; underscore_fn_name() { return \\"bar\\"; } DEFAULT_VALUES = { name: \\"Steve\\", }; componentDidLoad() {} render() { return (
    (this.name = myEvent.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid! >
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Basic 2`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-show-component\\", }) export class MyBasicForShowComponent { @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() {} render() { return (
    {this.names?.map((person) => person === this.name ? ( { this.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ) : null )}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Basic Context 1`] = ` "import { Injector, MyService, createInjector } from \\"@dummy/injection-js\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @State() name = \\"PatrickJS\\"; onChange = function onChange() { const change = this.myService.method(\\"change\\"); console.log(change); }; componentDidLoad() { const bye = this.myService.method(\\"hi\\"); console.log(bye); } render() { return (
    {this.myService.method(\\"hello\\") + this.name} Hello! I can run in React, Vue, Solid, or Liquid! this.onChange()} />
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Basic OnMount Update 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-on-mount-update-component\\", }) export class MyBasicOnMountUpdateComponent { @Prop() bye: any; @Prop() hi: any; @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() { this.name = \\"PatrickJS onMount\\" + this.bye; } render() { return (
    Hello {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Basic Outputs 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, State, } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-outputs-component\\", }) export class MyBasicOutputsComponent { @Event() messageChange: any; @Event() event: any; @Prop() message: any; @State() name = \\"PatrickJS\\"; componentDidLoad() { this.messageChange.emit(this.name); this.event.emit(this.message); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ import { Component, h, Fragment, Event, EventEmitter, Prop, State, } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-outputs-component\\", }) export class MyBasicOutputsComponent { @Event() messageChange: any; @Event() event: any; @Prop() message: any; @State() name = \\"PatrickJS\\"; componentDidLoad() { this.messageChange.emit(this.name); this.event.emit(this.message); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > BasicAttribute 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` "import { MyBooleanAttributeComponent } from \\"./basic-boolean-attribute-component.raw\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-boolean-attribute\\", }) export class MyBooleanAttribute { @Prop() type: any; componentDidLoad() {} render() { return (
    {this.children ? ( {this.type} ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > BasicChildComponent 1`] = ` "import { MyBasicOnMountUpdateComponent } from \\"./basic-onMount-update.raw\\"; import { MyBasicOutputsComponent } from \\"./basic-outputs.raw\\"; import { MyBasicComponent } from \\"./basic.raw\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-child-component\\", }) export class MyBasicChildComponent { @State() name = \\"Steve\\"; @State() dev = \\"PatrickJS\\"; log = function log(message: string) { console.log(message); }; componentDidLoad() {} render() { return (
    (this.name = name)} onEvent={() => this.log(\\"Test\\")} >
    ); } } " `; exports[`Stencil > jsx > Typescript Test > BasicFor 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-component\\", }) export class MyBasicForComponent { @State() name = \\"PatrickJS\\"; @State() names = [\\"Steve\\", \\"PatrickJS\\"]; componentDidLoad() { console.log(\\"onMount code\\"); } render() { return (
    {this.names?.map((person) => ( { this.name = event.target.value + \\" and \\" + person; }} /> Hello {person}! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! ))}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > BasicRef 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicRefComponent { private inputRef!: HTMLInputElement | null; private inputNoArgRef!: HTMLLabelElement | null; @Prop() showInput: any; @State() name = \\"PatrickJS\\"; onBlur = function onBlur() { // Maintain focus this.inputRef?.focus(); }; lowerCaseName = function lowerCaseName() { return this.name.toLowerCase(); }; componentDidLoad() {} render() { return (
    {this.showInput ? ( { this.inputRef = el; }} value={this.name} onBlur={(event) => this.onBlur()} onChange={(event) => (this.name = event.target.value)} /> ) : null} Hello {this.lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > BasicRefAssignment 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-ref-assignment-component\\", }) export class MyBasicRefAssignmentComponent { private holdValueRef!: HTMLElement; handlerClick = function handlerClick(event: Event) { event.preventDefault(); console.log(\\"current value\\", this.holdValueRef); this.holdValueRef = this.holdValueRef + \\"JS\\"; }; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Typescript Test > BasicRefPrevious 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-previous-component\\", }) export class MyPreviousComponent { private prevCount!: HTMLElement; @State() count = 0; watch0Fn() { this.prevCount = this.count; } @Watch(\\"count\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (

    Now: {this.count}, before: {this.prevCount}

    ); } } " `; exports[`Stencil > jsx > Typescript Test > Button 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any; @Prop() attributes: any; @Prop() openLinkInNewTab: any; @Prop() text: any; componentDidLoad() {} render() { return (
    {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Columns 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"column\\", styles: \` .div { display: flex; flex-direction: column; align-items: stretch; line-height: normal; } @media (max-width: 999px) { .div { flex-direction: row; } } @media (max-width: 639px) { .div { flex-direction: row-reverse; } } .div-2 { flex-grow: 1; } \`, }) export class Column { @Prop() columns: any; @Prop() space: any; getColumns() { return this.columns || []; } getGutterSize() { return typeof this.space === \\"number\\" ? this.space || 0 : 20; } getWidth(index: number) { const columns = this.getColumns(); return (columns[index] && columns[index].width) || 100 / columns.length; } getColumnCssWidth(index: number) { const columns = this.getColumns(); const gutterSize = this.getGutterSize(); const subtractWidth = (gutterSize * (columns.length - 1)) / columns.length; return \`calc(\${this.getWidth(index)}% - \${subtractWidth}px)\`; } componentDidLoad() {} render() { return (
    {this.columns?.map((column, index) => (
    {column.content} {index}
    ))}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > ContentSlotHtml 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"content-slot-code\\", }) export class ContentSlotCode { @Prop() slotTesting: any; componentDidLoad() {} render() { return (

    ); } } " `; exports[`Stencil > jsx > Typescript Test > ContentSlotJSX 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; import { Component, h, Fragment, Host, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"content-slot-jsx-code\\", }) export class ContentSlotJsxCode { @Prop() slotContent: any = undefined; @Prop() slotReference: any = undefined; @Prop() attributes: any; @Prop() content: any = \\"\\"; @State() name = \\"king\\"; @State() showContent = false; get cls() { return this.slotContent && this.children ? \`\${this.name}-content\` : \\"\\"; } show() { this.slotContent ? 1 : \\"\\"; } componentDidLoad() {} render() { return ( {this.slotReference ? (
    this.show()} > {this.showContent && this.slotContent ? ( {this.content} ) : null}

    ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > CustomCode 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"custom-code\\", }) export class CustomCode { private elem!: HTMLDivElement; @Prop() replaceNodes: any; @Prop() code: any; @State() scriptsInserted = []; @State() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } componentDidLoad() { this.findAndRunScripts(); } render() { return (
    { this.elem = el; }} innerHTML={this.code} >
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Embed 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"custom-code\\", }) export class CustomCode { private elem!: HTMLDivElement; @Prop() replaceNodes: any; @Prop() code: any; @State() scriptsInserted = []; @State() scriptsRun = []; findAndRunScripts() { // TODO: Move this function to standalone one in '@builder.io/utils' if (this.elem && typeof window !== \\"undefined\\") { /** @type {HTMLScriptElement[]} */ const scripts = this.elem.getElementsByTagName(\\"script\\"); for (let i = 0; i < scripts.length; i++) { const script = scripts[i]; if (script.src) { if (this.scriptsInserted.includes(script.src)) { continue; } this.scriptsInserted.push(script.src); const newScript = document.createElement(\\"script\\"); newScript.async = true; newScript.src = script.src; document.head.appendChild(newScript); } else if ( !script.type || [ \\"text/javascript\\", \\"application/javascript\\", \\"application/ecmascript\\", ].includes(script.type) ) { if (this.scriptsRun.includes(script.innerText)) { continue; } try { this.scriptsRun.push(script.innerText); new Function(script.innerText)(); } catch (error) { console.warn(\\"\`CustomCode\`: Error running script:\\", error); } } } } } componentDidLoad() { this.findAndRunScripts(); } render() { return (
    { this.elem = el; }} innerHTML={this.code} >
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Form 1`] = ` "import { Builder, BuilderElement, builder } from \\"@builder.io/sdk\\"; import { BuilderBlock as BuilderBlockComponent, BuilderBlocks, get, set, } from \\"@fake\\"; import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"form-component\\", styles: \` .pre { padding: 10px; color: red; text-align: center; } \`, }) export class FormComponent { private formRef!: HTMLFormElement; @Prop() previewState: any; @Prop() sendWithJs: any; @Prop() sendSubmissionsTo: any; @Prop() action: any; @Prop() customHeaders: any; @Prop() contentType: any; @Prop() sendSubmissionsToEmail: any; @Prop() name: any; @Prop() method: any; @Prop() errorMessagePath: any; @Prop() resetFormOnSubmit: any; @Prop() successUrl: any; @Prop() validate: any; @Prop() attributes: any; @Prop() builderBlock: any; @Prop() errorMessage: any; @Prop() sendingMessage: any; @Prop() successMessage: any; @State() formState = \\"unsubmitted\\"; @State() responseData = null; @State() formErrorMessage = \\"\\"; get submissionState() { return (Builder.isEditing && this.previewState) || this.formState; } onSubmit( event: Event & { currentTarget: HTMLFormElement; } ) { const sendWithJs = this.sendWithJs || this.sendSubmissionsTo === \\"email\\"; if (this.sendSubmissionsTo === \\"zapier\\") { event.preventDefault(); } else if (sendWithJs) { if (!(this.action || this.sendSubmissionsTo === \\"email\\")) { event.preventDefault(); return; } event.preventDefault(); const el = event.currentTarget; const headers = this.customHeaders || {}; let body: any; const formData = new FormData(el); // TODO: maybe support null const formPairs: { key: string; value: File | boolean | number | string | FileList; }[] = Array.from( event.currentTarget.querySelectorAll(\\"input,select,textarea\\") ) .filter((el) => !!(el as HTMLInputElement).name) .map((el) => { let value: any; const key = (el as HTMLImageElement).name; if (el instanceof HTMLInputElement) { if (el.type === \\"radio\\") { if (el.checked) { value = el.name; return { key, value, }; } } else if (el.type === \\"checkbox\\") { value = el.checked; } else if (el.type === \\"number\\" || el.type === \\"range\\") { const num = el.valueAsNumber; if (!isNaN(num)) { value = num; } } else if (el.type === \\"file\\") { // TODO: one vs multiple files value = el.files; } else { value = el.value; } } else { value = (el as HTMLInputElement).value; } return { key, value, }; }); let contentType = this.contentType; if (this.sendSubmissionsTo === \\"email\\") { contentType = \\"multipart/form-data\\"; } Array.from(formPairs).forEach(({ value }) => { if ( value instanceof File || (Array.isArray(value) && value[0] instanceof File) || value instanceof FileList ) { contentType = \\"multipart/form-data\\"; } }); // TODO: send as urlEncoded or multipart by default // because of ease of use and reliability in browser API // for encoding the form? if (contentType !== \\"application/json\\") { body = formData; } else { // Json const json = {}; Array.from(formPairs).forEach(({ value, key }) => { set(json, key, value); }); body = JSON.stringify(json); } if (contentType && contentType !== \\"multipart/form-data\\") { if ( /* Zapier doesn't allow content-type header to be sent from browsers */ !(sendWithJs && this.action?.includes(\\"zapier.com\\")) ) { headers[\\"content-type\\"] = contentType; } } const presubmitEvent = new CustomEvent(\\"presubmit\\", { detail: { body, }, }); if (this.formRef) { this.formRef.dispatchEvent(presubmitEvent); if (presubmitEvent.defaultPrevented) { return; } } this.formState = \\"sending\\"; const formUrl = \`\${ builder.env === \\"dev\\" ? \\"http://localhost:5000\\" : \\"https://builder.io\\" }/api/v1/form-submit?apiKey=\${builder.apiKey}&to=\${btoa( this.sendSubmissionsToEmail || \\"\\" )}&name=\${encodeURIComponent(this.name || \\"\\")}\`; fetch( this.sendSubmissionsTo === \\"email\\" ? formUrl : this.action!, /* TODO: throw error if no action URL */ { body, headers, method: this.method || \\"post\\", } ).then( async (res) => { let body; const contentType = res.headers.get(\\"content-type\\"); if (contentType && contentType.indexOf(\\"application/json\\") !== -1) { body = await res.json(); } else { body = await res.text(); } if (!res.ok && this.errorMessagePath) { /* TODO: allow supplying an error formatter function */ let message = get(body, this.errorMessagePath); if (message) { if (typeof message !== \\"string\\") { /* TODO: ideally convert json to yaml so it woul dbe like error: - email has been taken */ message = JSON.stringify(message); } this.formErrorMessage = message; } } this.responseData = body; this.formState = res.ok ? \\"success\\" : \\"error\\"; if (res.ok) { const submitSuccessEvent = new CustomEvent(\\"submit:success\\", { detail: { res, body, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitSuccessEvent); if (submitSuccessEvent.defaultPrevented) { return; } /* TODO: option to turn this on/off? */ if (this.resetFormOnSubmit !== false) { this.formRef.reset(); } } /* TODO: client side route event first that can be preventDefaulted */ if (this.successUrl) { if (this.formRef) { const event = new CustomEvent(\\"route\\", { detail: { url: this.successUrl, }, }); this.formRef.dispatchEvent(event); if (!event.defaultPrevented) { location.href = this.successUrl; } } else { location.href = this.successUrl; } } } }, (err) => { const submitErrorEvent = new CustomEvent(\\"submit:error\\", { detail: { error: err, }, }); if (this.formRef) { this.formRef.dispatchEvent(submitErrorEvent); if (submitErrorEvent.defaultPrevented) { return; } } this.responseData = err; this.formState = \\"error\\"; } ); } } componentDidLoad() {} render() { return (
    { this.formRef = el; }} action={!this.sendWithJs && this.action} method={this.method} name={this.name} onSubmit={(event) => this.onSubmit(event)} {...this.attributes} > {this.builderBlock && this.builderBlock.children ? this.builderBlock?.children?.map((block, index) => ( )) : null} {this.submissionState === \\"error\\" ? ( ) : null} {this.submissionState === \\"sending\\" ? ( ) : null} {this.submissionState === \\"error\\" && this.responseData ? (
                {JSON.stringify(this.responseData, null, 2)}
              
    ) : null} {this.submissionState === \\"success\\" ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Image 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"image\\", styles: \` .img { opacity: 1; transition: opacity 0.2s ease-in-out; object-fit: cover; object-position: center; } \`, }) export class Image { private pictureRef!: HTMLElement; @Prop() lazy: any; @Prop() altText: any; @Prop() _class: any; @Prop() image: any; @Prop() srcset: any; @Prop() sizes: any; @State() scrollListener = null; @State() imageLoaded = false; @State() load = false; setLoaded() { this.imageLoaded = true; } useLazyLoading() { // TODO: Add more checks here, like testing for real web browsers return !!this.lazy && this.isBrowser(); } isBrowser = function isBrowser() { return ( typeof window !== \\"undefined\\" && window.navigator.product != \\"ReactNative\\" ); }; componentDidLoad() { if (this.useLazyLoading()) { // throttled scroll capture listener const listener = () => { if (this.pictureRef) { const rect = this.pictureRef.getBoundingClientRect(); const buffer = window.innerHeight / 2; if (rect.top < window.innerHeight + buffer) { this.load = true; this.scrollListener = null; window.removeEventListener(\\"scroll\\", listener); } } }; this.scrollListener = listener; window.addEventListener(\\"scroll\\", listener, { capture: true, passive: true, }); listener(); } } disconnectedCallback() { if (this.scrollListener) { window.removeEventListener(\\"scroll\\", this.scrollListener); } } render() { return (
    { this.pictureRef = el; }} > {!this.useLazyLoading() || this.load ? ( {this.altText} this.setLoaded()} srcset={this.srcset} sizes={this.sizes} /> ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Image State 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"img-state-component\\", }) export class ImgStateComponent { @State() canShow = true; @State() images = [\\"http://example.com/qwik.png\\"]; componentDidLoad() {} render() { return (
    {this.images?.map((item, itemIndex) => ( ))}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Img 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"img-component\\", }) export class ImgComponent { @Prop() backgroundSize: any; @Prop() backgroundPosition: any; @Prop() attributes: any; @Prop() imgSrc: any; @Prop() altText: any; componentDidLoad() {} render() { return ( {this.altText} ); } } " `; exports[`Stencil > jsx > Typescript Test > Input 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"form-input-component\\", }) export class FormInputComponent { @Prop() attributes: any; @Prop() defaultValue: any; @Prop() placeholder: any; @Prop() type: any; @Prop() name: any; @Prop() value: any; @Prop() required: any; @Event() change: any; componentDidLoad() {} render() { return ( this.change?.(event.target.value)} /> ); } } " `; exports[`Stencil > jsx > Typescript Test > InputParent 1`] = ` "import { FormInputComponent } from \\"./input.raw\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"stepper\\", }) export class Stepper { handleChange(value: string) { console.log(value); } componentDidLoad() {} render() { return ( this.handleChange(value)} > ); } } " `; exports[`Stencil > jsx > Typescript Test > NestedStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"nested-store\\", }) export class NestedStore { @State() _id = \\"abc\\"; @State() _messageId = this._id + \\"-message\\"; componentDidLoad() {} render() { return (
    Test

    Message

    ); } } " `; exports[`Stencil > jsx > Typescript Test > RawText 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"raw-text\\", }) export class RawText { @Prop() attributes: any; @Prop() text: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > Section 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"section-component\\", }) export class SectionComponent { @Prop() attributes: any; @Prop() maxWidth: any; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Section 2`] = ` "import { Component, h, Fragment, Host, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"section-state-component\\", }) export class SectionStateComponent { @Prop() attributes: any; @State() max = 42; @State() items = [42]; componentDidLoad() {} render() { return ( {this.max ? this.items?.map((item) => (
    )) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Select 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"select-component\\", }) export class SelectComponent { @Prop() attributes: any; @Prop() value: any; @Prop() defaultValue: any; @Prop() name: any; @Prop() options: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > SlotDefault 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Default content
    ); } } " `; exports[`Stencil > jsx > Typescript Test > SlotHtml 1`] = ` "import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Hello
    }> ); } } " `; exports[`Stencil > jsx > Typescript Test > SlotJsx 1`] = ` "import { ContentSlotCode } from \\"./content-slot-jsx.raw\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Hello
    }> ); } } " `; exports[`Stencil > jsx > Typescript Test > SlotNamed 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"slot-code\\", }) export class SlotCode { componentDidLoad() {} render() { return (
    Default left Default Child
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Stamped.io 1`] = ` "import { kebabCase, snakeCase } from \\"lodash\\"; import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"smile-reviews\\", styles: \` .input { display: block; } .textarea { display: block; } .button { display: block; } .review { margin: 10px; padding: 10px; background: white; display: flex; border-radius: 5px; box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1); -webkit-font-smoothing: antialiased; } .img { height: 30px; width: 30px; margin-right: 10px; } \`, }) export class SmileReviews { @Prop() apiKey: any; @Prop() productId: any; @State() reviews = []; @State() name = \\"test\\"; @State() showReviewPrompt = false; kebabCaseValue() { return kebabCase(\\"testThat\\"); } snakeCaseValue() { return snakeCase(\\"testThis\\"); } componentDidLoad() { fetch( \`https://stamped.io/api/widget/reviews?storeUrl=builder-io.myshopify.com&apiKey=\${ this.apiKey || \\"pubkey-8bbDq7W6w4sB3OWeM1HUy2s47702hM\\" }&productId=\${this.productId || \\"2410511106127\\"}\` ) .then((res) => res.json()) .then((data) => { this.reviews = data.data; }); } render() { return (
    {this.showReviewPrompt || \\"asdf\\" ? ( ) : null} {this.reviews?.map((review, index) => (
    N: {index}
    {review.author}
    {review.reviewMessage}
    ))}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > StoreComment 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"string-literal-store\\", }) export class StringLiteralStore { @State() foo = true; bar() {} componentDidLoad() {} render() { return {this.foo}; } } " `; exports[`Stencil > jsx > Typescript Test > StoreShadowVars 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() errors = {}; foo(errors) { return errors; } componentDidLoad() {} render() { return {this.foo(this.errors)}; } } " `; exports[`Stencil > jsx > Typescript Test > StoreWithState 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() foo = false; bar() { return this.foo; } componentDidLoad() {} render() { return {this.bar()}; } } " `; exports[`Stencil > jsx > Typescript Test > Submit 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"submit-button\\", }) export class SubmitButton { @Prop() attributes: any; @Prop() text: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > Text 1`] = ` "import { Builder } from \\"@builder.io/sdk\\"; import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"text\\", }) export class Text { @Prop() text: any; @Prop() content: any; @State() name = \\"Decadef20\\"; componentDidLoad() {} render() { return (
    my name

    ' } >
    ); } } " `; exports[`Stencil > jsx > Typescript Test > Textarea 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"textarea\\", }) export class Textarea { @Prop() attributes: any; @Prop() placeholder: any; @Prop() name: any; @Prop() value: any; @Prop() defaultValue: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, State, } from \\"@stencil/core\\"; @Component({ tag: \\"use-value-and-fn-from-store\\", }) export class UseValueAndFnFromStore { @Event() change: any; @State() _id = \\"abc\\"; @State() _active = false; _do(id?: string) { this._active = !!id; if (this.change) { this.change.emit(this._active); } } componentDidLoad() {} componentDidUpdate() { if (this._do) { this._do(this._id); } } render() { return
    Test
    ; } } " `; exports[`Stencil > jsx > Typescript Test > Video 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"video\\", }) export class Video { @Prop() attributes: any; @Prop() fit: any; @Prop() position: any; @Prop() video: any; @Prop() posterImage: any; @Prop() autoPlay: any; @Prop() muted: any; @Prop() controls: any; @Prop() loop: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() name = \\"steve\\"; setName(value) { this.name = value; } updateNameWithArrowFn(value) { this.name = value; } componentDidLoad() {} render() { return (
    Hello {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > basicForFragment 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"basic-for-fragment\\", }) export class BasicForFragment { @State() id = \\"xyz\\"; componentDidLoad() {} render() { return (
    {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => (
    {option}
    ))} {[\\"a\\", \\"b\\", \\"c\\"]?.map((option) => (
    {option}
    ))}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > basicForNoTagReference 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-for-no-tag-ref-component\\", }) export class MyBasicForNoTagRefComponent { @Prop() actions: any; @State() name = \\"VincentW\\"; @State() TagName = \\"div\\"; @State() tag = \\"span\\"; get TagNameGetter() { return \\"span\\"; } componentDidLoad() {} render() { return ( Hello {this.name} {this.actions?.map((action) => ( {action.text} ))} ); } } " `; exports[`Stencil > jsx > Typescript Test > basicForwardRef 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-forward-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicForwardRefComponent { @Prop() inputRef: any; @State() name = \\"PatrickJS\\"; componentDidLoad() {} render() { return (
    { this.inputRef = el; }} value={this.name} onChange={(event) => (this.name = event.target.value)} />
    ); } } " `; exports[`Stencil > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-forward-ref-component\\", styles: \` .input { color: red; } \`, }) export class MyBasicForwardRefComponent { @Prop() inputRef: any; @State() name = \\"PatrickJS\\"; componentDidLoad() {} render() { return (
    { this.inputRef = el; }} value={this.name} onChange={(event) => (this.name = event.target.value)} />
    ); } } " `; exports[`Stencil > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-on-update-return-component\\", }) export class MyBasicOnUpdateReturnComponent { @State() name = \\"PatrickJS\\"; watch0Fn() { const controller = new AbortController(); const signal = controller.signal; fetch(\\"https://patrickjs.com/api/resource.json\\", { signal, }) .then((response) => response.json()) .then((data) => { this.name = data.name; }); return () => { if (!signal.aborted) { controller.abort(); } }; } @Watch(\\"name\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    Hello! {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"basic-ref-attribute-passing-component\\", }) export class BasicRefAttributePassingComponent { private buttonRef!: HTMLButtonElement | null; private _root!: HTMLElement; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } componentDidLoad() { this.enableAttributePassing( this._root, \\"basic-ref-attribute-passing-component\\" ); console.log(\\"onMount\\"); } render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"basic-ref-attribute-passing-custom-ref-component\\", }) export class BasicRefAttributePassingCustomRefComponent { private buttonRef!: HTMLButtonElement | null; /** * Passes \`aria-*\`, \`data-*\` & \`class\` attributes to correct child. Used in angular and stencil. * @param element the ref for the component * @param customElementSelector the custom element like \`my-component\` */ private enableAttributePassing( element: HTMLElement | null, customElementSelector: string ) { const parent = element?.closest(customElementSelector); if (element && parent) { const attributes = parent.attributes; for (let i = 0; i < attributes.length; i++) { const attr = attributes.item(i); if ( attr && (attr.name.startsWith(\\"data-\\") || attr.name.startsWith(\\"aria-\\")) ) { element.setAttribute(attr.name, attr.value); parent.removeAttribute(attr.name); } if (attr && attr.name === \\"class\\") { const isWebComponent = attr.value.includes(\\"hydrated\\"); const value = attr.value.replace(\\"hydrated\\", \\"\\").trim(); const currentClass = element.getAttribute(\\"class\\"); element.setAttribute( attr.name, \`\${currentClass ? \`\${currentClass} \` : \\"\\"}\${value}\` ); if (isWebComponent) { // Stencil is using this class for lazy loading component parent.setAttribute(\\"class\\", \\"hydrated\\"); } else { parent.removeAttribute(attr.name); } } } } } componentDidLoad() { this.enableAttributePassing( this.buttonRef, \\"basic-ref-attribute-passing-custom-ref-component\\" ); } render() { return (
    ); } } " `; exports[`Stencil > jsx > Typescript Test > class + ClassName + css 1`] = ` "import { MyComp } from \\"./my-component.lite\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > class + css 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > className + css 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > className 1`] = ` "import type { JSX } from \\"../../../../jsx-runtime\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"class-name-code\\", }) export class ClassNameCode { @State() bindings = \\"a binding\\"; componentDidLoad() {} render() { return (
    Without Binding
    With binding
    ); } } " `; exports[`Stencil > jsx > Typescript Test > classState 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { @State() classState = \\"testClassName\\"; @State() styleState = { color: \\"red\\", }; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop({ attribute: \\"classname\\", mutable: false, reflect: false }) className: any; @Prop() type: any; componentDidLoad() {} render() { return (
    {this.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"complex-meta-raw\\", }) export class ComplexMetaRaw { componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > componentWithContext 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"component-with-context\\", }) export class ComponentWithContext { @Prop() content: any; componentDidLoad() {} render() { return ( {this.foo.value} ); } } " `; exports[`Stencil > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` "import Context1 from \\"@dummy/1\\"; import Context2 from \\"@dummy/2\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"component-with-context\\", }) export class ComponentWithContext { @Prop() content: any; componentDidLoad() {} render() { return ( {this.foo.value}
    other
    ); } } " `; exports[`Stencil > jsx > Typescript Test > contentState 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-content\\", }) export class RenderContent { @Prop() content: any; @Prop() customComponents: any; componentDidLoad() {} render() { return
    setting context
    ; } } " `; exports[`Stencil > jsx > Typescript Test > defaultProps 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any = \\"https://builder.io/\\"; @Prop() attributes: any; @Prop() openLinkInNewTab: any = false; @Prop() text: any = \\"default text\\"; @Event() click: any = () => { console.log(\\"hi\\"); }; @Prop() buttonText: any; componentDidLoad() {} render() { return (
    {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` "import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any = \\"https://builder.io/\\"; @Prop() attributes: any; @Prop() openLinkInNewTab: any = false; @Prop() text: any = \\"default text\\"; @Event() click: any = () => {}; componentDidLoad() {} render() { return (
    {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > defaultValsWithTypes 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"component-with-types\\", }) export class ComponentWithTypes { @Prop() name: any; DEFAULT_VALUES = { name: \\"Sami\\", }; componentDidLoad() {} render() { return (
    {\\" \\"} Hello {this.name || this.DEFAULT_VALUES.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > eventInputAndChange 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"event-input-and-change\\", styles: \` .input { color: red; } \`, }) export class EventInputAndChange { @State() name = \\"Steve\\"; componentDidLoad() {} render() { return (
    (this.name = event.target.value)} onChange={(event) => (this.name = event.target.value)} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > eventProps 1`] = ` "import { EventProps, EventState } from \\"./event-props.type\\"; import { Component, h, Fragment, Event, EventEmitter, Prop, } from \\"@stencil/core\\"; @Component({ tag: \\"event-props-component\\", }) export class EventPropsComponent { @Event() getVoid: EventEmitter< Parameters[\\"onGetVoid\\"]>[number] > | void; @Event() enter: EventEmitter< Parameters[\\"onEnter\\"]>[number] > | void; @Event() pass: EventEmitter< Parameters[\\"onPass\\"]>[number] > | void; handleClick() { if (this.getVoid) { this.getVoid.emit(); } if (this.enter) { console.log(this.enter.emit()); } if (this.pass) { this.pass.emit(\\"test\\"); } } componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > expressionState 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() componentRef: any; @State() refToUse = !(this.componentRef instanceof Function) ? this.componentRef : null; componentDidLoad() {} render() { return
    {this.refToUse}
    ; } } " `; exports[`Stencil > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"figma-button\\", }) export class FigmaButton { @Prop() icon: any; @Prop() interactiveState: any; @Prop() width: any; @Prop() size: any; @Prop() label: any; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > functionProps 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return (

    x} f1={(x) => x} f2={(x) => {}} f3={function () { return x; }} f4={function (x) { return x; }} f5={function (x) { return; }} f6={function () { return; }} f7={(a, b, c) => a + b + c} >

    ); } } " `; exports[`Stencil > jsx > Typescript Test > getterState 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() foo: any; get foo2() { return this.foo + \\"foo\\"; } get bar() { return \\"bar\\"; } baz(i: number) { return i + this.foo2.length; } componentDidLoad() {} render() { return (

    {this.foo2}

    {this.bar}

    {this.baz(1)}

    ); } } " `; exports[`Stencil > jsx > Typescript Test > import types 1`] = ` "import { BuilderContent, GetContentOptions } from \\"@builder.io/sdk\\"; import { RenderBlock } from \\"./builder-render-block.raw\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-content\\", }) export class RenderContent { @Prop() renderContentProps: any; getRenderContentProps(block, index) { return { block: block, index: index, }; } componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > layerName 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-layer-name-component\\", styles: \` .layer-name { padding: 10px; } \`, }) export class MyLayerNameComponent { componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > multipleOnUpdate 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"multiple-on-update\\", }) export class MultipleOnUpdate { componentDidLoad() {} componentDidUpdate() { console.log(\\"Runs on every update/rerender\\"); console.log(\\"Runs on every update/rerender as well\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"multiple-on-update-with-deps\\", }) export class MultipleOnUpdateWithDeps { @State() a = \\"a\\"; @State() b = \\"b\\"; @State() c = \\"c\\"; @State() d = \\"d\\"; watch0Fn() { console.log(\\"Runs when a or b changes\\", this.a, this.b); if (this.a === \\"a\\") { this.a = \\"b\\"; } } @Watch(\\"a\\") @Watch(\\"b\\") watch0() { this.watch0Fn(); } watch1Fn() { console.log(\\"Runs when c or d changes\\", this.c, this.d); if (this.a === \\"a\\") { this.a = \\"b\\"; } } @Watch(\\"c\\") @Watch(\\"d\\") watch1() { this.watch1Fn(); } componentDidLoad() { this.watch0Fn(); this.watch1Fn(); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > multipleSpreads 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @State() attrs = { hello: \\"world\\", }; componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > nestedStyles 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"nested-styles\\", styles: \` .div { display: flex; --bar: red; color: var(--bar); } @media (max-width: env(--mobile)) { .div { display: block; } } .div:hover { display: flex; } .div:active { display: inline; } .div .nested-selector { display: grid; } .div .nested-selector:hover { display: block; } .div.nested-selector:active { display: inline-block; } \`, }) export class NestedStyles { componentDidLoad() {} render() { return
    Hello world
    ; } } " `; exports[`Stencil > jsx > Typescript Test > normalizeLayerNames 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-normalized-layer-names-component\\", styles: \` .css-0 { margin: 10px; } .css-123 { padding: 10px; } .name-123 { border: 1px solid; } .name { color: red; } .name-789 { background: blue; } .div { background: blue; } \`, }) export class MyNormalizedLayerNamesComponent { componentDidLoad() {} render() { return (
    Emoji
    Dashes
    CamelCase
    Special chars
    Special chars with dashes
    Single Number
    Multiple Numbers
    Chars with numbers at end
    Chars with numbers at start
    Numnbers separated by dash
    Emoji
    Number
    ); } } " `; exports[`Stencil > jsx > Typescript Test > onEvent 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"embed\\", }) export class Embed { private elem!: HTMLDivElement; foo(event) { console.log(\\"test2\\"); } componentDidLoad() { this.elem.dispatchEvent(new CustomEvent(\\"initEditingBldr\\")); } render() { return (
    { this.elem = el; }} >
    Test
    ); } } " `; exports[`Stencil > jsx > Typescript Test > onInit & onMount 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-init\\", }) export class OnInit { componentDidLoad() { console.log(\\"onMount\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > onInit 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"on-init\\", }) export class OnInit { @Prop() name: any; @State() name = \\"\\"; componentDidLoad() {} render() { return (
    Default name defined by parent {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > onInitPlain 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-init-plain\\", }) export class OnInitPlain { componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > onMount 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"comp\\", }) export class Comp { componentDidLoad() { console.log(\\"Runs on mount\\"); } disconnectedCallback() { console.log(\\"Runs on unMount\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > onMountMultiple 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"comp\\", }) export class Comp { componentDidLoad() { const onMountHook_0 = () => { console.log(\\"Runs on mount\\"); }; onMountHook_0(); const onMountHook_1 = () => { console.log(\\"Another one runs on Mount\\"); }; onMountHook_1(); const onMountHook_2 = () => { console.log(\\"SSR runs on Mount\\"); }; onMountHook_2(); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > onUpdate 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-update\\", }) export class OnUpdate { componentDidLoad() {} componentDidUpdate() { console.log(\\"Runs on every update/rerender\\"); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > onUpdateWithDeps 1`] = ` "import { Component, h, Fragment, Watch, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"on-update-with-deps\\", }) export class OnUpdateWithDeps { @Prop() size: any; @State() a = \\"a\\"; @State() b = \\"b\\"; watch0Fn() { console.log(\\"Runs when a, b or size changes\\", this.a, this.b, this.size); } @Watch(\\"a\\") @Watch(\\"b\\") @Watch(\\"size\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > preserveTyping 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid! {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > propsDestructure 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() type: any; @State() name = \\"Decadef20\\"; componentDidLoad() {} render() { return (
    {this.type} Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > jsx > Typescript Test > propsInterface 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() name: Person | never[\\"name\\"]; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid! {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > propsType 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    Hello! I can run in React, Vue, Solid, or Liquid! {this.name}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > referencingFunInsideHook 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"on-update\\", }) export class OnUpdate { foo = function foo(params) {}; bar = function bar() {}; zoo = function zoo() { const params = { cb: this.bar, }; }; componentDidLoad() {} componentDidUpdate() { this.foo({ someOption: this.bar, }); } render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > renderBlock 1`] = ` "import { TARGET } from \\"../../constants/target.js\\"; import type { BuilderContextInterface, RegisteredComponent, } from \\"../../context/types.js\\"; import { evaluate } from \\"../../functions/evaluate.js\\"; import { extractTextStyles } from \\"../../functions/extract-text-styles.js\\"; import { getBlockActions } from \\"../../functions/get-block-actions.js\\"; import { getBlockComponentOptions } from \\"../../functions/get-block-component-options.js\\"; import { getBlockProperties } from \\"../../functions/get-block-properties.js\\"; import { getBlockTag } from \\"../../functions/get-block-tag.js\\"; import { getProcessedBlock } from \\"../../functions/get-processed-block.js\\"; import { getReactNativeBlockStyles } from \\"../../functions/get-react-native-block-styles.js\\"; import type { BuilderBlock } from \\"../../types/builder-block.js\\"; import type { Nullable } from \\"../../types/typescript.js\\"; import { BlockStyles } from \\"./block-styles.lite\\"; import { isEmptyHtmlElement } from \\"./render-block.helpers.js\\"; import RenderComponentWithContext from \\"./render-component-with-context.js\\"; import type { RenderComponentProps } from \\"./render-component\\"; import RenderComponent from \\"./render-component\\"; import { RenderRepeatedBlock } from \\"./render-repeated-block.lite\\"; import type { RepeatData } from \\"./types.js\\"; import { Component, h, Fragment, Host, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-block\\", }) export class RenderBlock { @Prop() block: any; @Prop() context: any; get component() { const componentName = getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: false, }).component?.name; if (!componentName) { return null; } const ref = this.context.registeredComponents[componentName]; if (!ref) { // TODO: Public doc page with more info about this message console.warn(\` Could not find a registered component named \\"\${componentName}\\". If you registered it, is the file that registered it imported by the file that needs to render it?\`); return undefined; } else { return ref; } } get tag() { return getBlockTag(this.useBlock); } get useBlock() { return this.repeatItemData ? this.block : getProcessedBlock({ block: this.block, state: this.context.state, context: this.context.context, shouldEvaluateBindings: true, }); } get actions() { return getBlockActions({ block: this.useBlock, state: this.context.state, context: this.context.context, }); } get attributes() { const blockProperties = getBlockProperties(this.useBlock); return { ...blockProperties, ...(TARGET === \\"reactNative\\" ? { style: getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: blockProperties.style, }), } : {}), }; } get shouldWrap() { return !this.component?.noWrap; } get renderComponentProps() { return { blockChildren: this.useChildren, componentRef: this.component?.component, componentOptions: { ...getBlockComponentOptions(this.useBlock), /** * These attributes are passed to the wrapper element when there is one. If \`noWrap\` is set to true, then * they are provided to the component itself directly. */ ...(this.shouldWrap ? {} : { attributes: { ...this.attributes, ...this.actions }, }), customBreakpoints: this.childrenContext?.content?.meta?.breakpoints, }, context: this.childrenContext, }; } get useChildren() { // TO-DO: When should \`canHaveChildren\` dictate rendering? // This is currently commented out because some Builder components (e.g. Box) do not have \`canHaveChildren: true\`, // but still receive and need to render children. // return state.componentInfo?.canHaveChildren ? state.useBlock.children : []; return this.useBlock.children ?? []; } get childrenWithoutParentComponent() { /** * When there is no \`componentRef\`, there might still be children that need to be rendered. In this case, * we render them outside of \`componentRef\`. * NOTE: We make sure not to render this if \`repeatItemData\` is non-null, because that means we are rendering an array of * blocks, and the children will be repeated within those blocks. */ const shouldRenderChildrenOutsideRef = !this.component?.component && !this.repeatItemData; return shouldRenderChildrenOutsideRef ? this.useChildren : []; } get repeatItemData() { /** * we don't use \`state.useBlock\` here because the processing done within its logic includes evaluating the block's bindings, * which will not work if there is a repeat. */ const { repeat, ...blockWithoutRepeat } = this.block; if (!repeat?.collection) { return undefined; } const itemsArray = evaluate({ code: repeat.collection, state: this.context.state, context: this.context.context, }); if (!Array.isArray(itemsArray)) { return undefined; } const collectionName = repeat.collection.split(\\".\\").pop(); const itemNameToUse = repeat.itemName || (collectionName ? collectionName + \\"Item\\" : \\"item\\"); const repeatArray = itemsArray.map((item, index) => ({ context: { ...this.context, state: { ...this.context.state, $index: index, $item: item, [itemNameToUse]: item, [\`$\${itemNameToUse}Index\`]: index, }, }, block: blockWithoutRepeat, })); return repeatArray; } get inheritedTextStyles() { if (TARGET !== \\"reactNative\\") { return {}; } const styles = getReactNativeBlockStyles({ block: this.useBlock, context: this.context, blockStyles: this.attributes.style, }); return extractTextStyles(styles); } get childrenContext() { return { apiKey: this.context.apiKey, state: this.context.state, content: this.context.content, context: this.context.context, registeredComponents: this.context.registeredComponents, inheritedStyles: this.inheritedTextStyles, }; } get renderComponentTag() { if (TARGET === \\"reactNative\\") { return RenderComponentWithContext; } else if (TARGET === \\"vue3\\") { // vue3 expects a string for the component tag return \\"RenderComponent\\"; } else { return RenderComponent; } } componentDidLoad() {} render() { return ( {this.shouldWrap ? ( {isEmptyHtmlElement(this.tag) ? ( ) : null} {!isEmptyHtmlElement(this.tag) && this.repeatItemData ? this.repeatItemData?.map((data, index) => ( )) : null} {!isEmptyHtmlElement(this.tag) && !this.repeatItemData ? ( {this.childrenWithoutParentComponent?.map((child) => ( ))} {this.childrenWithoutParentComponent?.map((child) => ( ))} ) : null} ) : ( )} ); } } " `; exports[`Stencil > jsx > Typescript Test > renderContentExample 1`] = ` "import BuilderContext from \\"@dummy/context.js\\"; import { dispatchNewContentToVisualEditor, sendComponentsToVisualEditor, trackClick, } from \\"@dummy/injection-js\\"; import { RenderBlocks } from \\"@dummy/RenderBlocks.lite.tsx\\"; import { Component, h, Fragment, Watch, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"render-content\\", styles: \` .div { display: flex; flex-direction: columns; } \`, }) export class RenderContent { @Prop() customComponents: any; @Prop() content: any; watch0Fn() { dispatchNewContentToVisualEditor(this.content); } @Watch(\\"content\\") watch0() { this.watch0Fn(); } componentDidLoad() { sendComponentsToVisualEditor(this.customComponents); this.watch0Fn(); } render() { return (
    trackClick(this.content.id)}>
    ); } } " `; exports[`Stencil > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"button\\", }) export class Button { @Prop() link: any; @Prop() attributes: any; @Prop() openLinkInNewTab: any; @Prop() text: any; componentDidLoad() {} render() { return ( {this.link ? ( {this.text} ) : null} {!this.link ? ( ) : null} ); } } " `; exports[`Stencil > jsx > Typescript Test > self-referencing component 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    {this.name} {this.name === \\"Batman\\" ? ( ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > self-referencing component with children 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() name: any; componentDidLoad() {} render() { return (
    {this.name} {this.name === \\"Batman\\" ? (
    Wayne
    ) : null}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > setState 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"set-state\\", }) export class SetState { @State() n = [\\"123\\"]; someFn() { this.n[0] = \\"123\\"; } componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Typescript Test > signalsOnUpdate 1`] = ` "import { Component, h, Fragment, Watch, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", styles: \` .div { padding: 10px; } \`, }) export class MyBasicComponent { @Prop() id: any; @Prop() foo: any; watch0Fn() { console.log(\\"props.id changed\\", this.id); console.log(\\"props.foo.value.bar.baz changed\\", this.foo.bar.baz); } @Watch(\\"id\\") @Watch(\\"foo.bar.baz\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    {this.id} {this.foo.bar.baz}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > spreadAttrs 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > spreadNestedProps 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { @Prop() nested: any; componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > spreadProps 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-component\\", }) export class MyBasicComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > store-async-function 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"string-literal-store\\", }) export class StringLiteralStore { arrowFunction = async function arrowFunction() { return Promise.resolve(); }; namedFunction = async function namedFunction() { return Promise.resolve(); }; fetchUsers = async function fetchUsers() { return Promise.resolve(); }; componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > jsx > Typescript Test > string-literal-store 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"string-literal-store\\", }) export class StringLiteralStore { @State() foo = 123; componentDidLoad() {} render() { return
    {this.foo}
    ; } } " `; exports[`Stencil > jsx > Typescript Test > styleClassAndCss 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class MyComponent { componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Typescript Test > stylePropClassAndCss 1`] = ` "import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"style-prop-class-and-css\\", styles: \` .div { display: flex; flex-direction: column; align-items: stretch; } \`, }) export class StylePropClassAndCss { @Prop() attributes: any; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > jsx > Typescript Test > subComponent 1`] = ` "import { Foo } from \\"./foo-sub-component.lite\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"sub-component\\", }) export class SubComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > svgComponent 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"svg-component\\", }) export class SvgComponent { componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > typeDependency 1`] = ` "import type { Foo } from \\"./foo-type\\"; import type { Foo as Foo2 } from \\"./type-export\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"type-dependency\\", }) export class TypeDependency { @Prop() foo: any; componentDidLoad() {} render() { return
    {this.foo}
    ; } } " `; exports[`Stencil > jsx > Typescript Test > typeExternalProps 1`] = ` "import { FooProps } from \\"./foo-props\\"; import { Component, h, Fragment, Prop } from \\"@stencil/core\\"; @Component({ tag: \\"type-external-props\\", }) export class TypeExternalProps { @Prop() name: FooProps[\\"name\\"]; componentDidLoad() {} render() { return (
    Hello {this.name}!{\\" \\"}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > typeExternalStore 1`] = ` "import { FooStore } from \\"./foo-store\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"type-external-store\\", }) export class TypeExternalStore { @State() _name = \\"test\\"; componentDidLoad() {} render() { return (
    Hello {this._name}!{\\" \\"}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > typeGetterStore 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"type-getter-store\\", }) export class TypeGetterStore { @State() name = \\"test\\"; getName() { if (this.name === \\"a\\") { return \\"b\\"; } return this.name; } get test() { return \\"test\\"; } componentDidLoad() {} render() { return (
    Hello {this.name}!{\\" \\"}
    ); } } " `; exports[`Stencil > jsx > Typescript Test > use-style 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > use-style-and-css 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` button { font-size: 12px; outline: 1px solid black; } .button { background: blue; color: white; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > jsx > Typescript Test > use-style-outside-component 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` button { background: blue; color: white; font-size: 12px; outline: 1px solid black; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > jsx > Typescript Test > useTarget 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"use-target-component\\", }) export class UseTargetComponent { @State() lastName = \\"bar\\"; @State() foo = \\"bar\\"; get name() { const prefix = \\"st\\"; return prefix + \\"foo\\"; } componentDidLoad() { console.log(this.foo); this.foo = \\"bar\\"; } render() { return
    {this.name}
    ; } } " `; exports[`Stencil > jsx > Typescript Test > webComponent 1`] = ` "import { register } from \\"swiper/element/bundle\\"; import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-basic-web-component\\", }) export class MyBasicWebComponent { componentDidLoad() {} render() { return ( Slide 1 Slide 2 Slide 3 ); } } " `; exports[`Stencil > svelte > Javascript Test > basic 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() name = \\"Steve\\"; componentDidLoad() {} render() { return (
    (this.name = event.target.value)} value={this.name} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > svelte > Javascript Test > bindGroup 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() tortilla = \\"Plain\\"; @State() fillings = []; componentDidLoad() {} render() { return (
    (this.tortilla = event.target.value)} /> (this.tortilla = event.target.value)} /> (this.tortilla = event.target.value)} />

    (this.fillings = event.target.value)} /> (this.fillings = event.target.value)} /> (this.fillings = event.target.value)} /> (this.fillings = event.target.value)} />

    Tortilla: {this.tortilla}

    Fillings: {this.fillings}

    ); } } " `; exports[`Stencil > svelte > Javascript Test > bindProperty 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() value = \\"hello\\"; componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > svelte > Javascript Test > classDirective 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() disabled: any; @State() focus = true; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > svelte > Javascript Test > context 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() activeTab = 0; componentDidLoad() {} render() { return
    {this.activeTab}
    ; } } " `; exports[`Stencil > svelte > Javascript Test > each 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() numbers = [\\"one\\", \\"two\\", \\"three\\"]; componentDidLoad() {} render() { return (
      {this.numbers?.map((num) => (
    • {num}
    • ))}
    ); } } " `; exports[`Stencil > svelte > Javascript Test > eventHandlers 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > svelte > Javascript Test > html 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() html = \\"bold\\"; componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > svelte > Javascript Test > ifElse 1`] = ` "import { Component, h, Fragment, Host, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() show = true; toggle = function toggle() { this.show = !this.show; }; componentDidLoad() {} render() { return ( {this.show ? ( ) : ( )} ); } } " `; exports[`Stencil > svelte > Javascript Test > imports 1`] = ` "import { Button } from \\"./Button.lite\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() disabled = false; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > svelte > Javascript Test > lifecycleHooks 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { componentDidLoad() { console.log(\\"onMount\\"); } disconnectedCallback() { console.log(\\"onDestroy\\"); } componentDidUpdate() { console.log(\\"onAfterUpdate\\"); } render() { return
    ; } } " `; exports[`Stencil > svelte > Javascript Test > reactive 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } componentDidLoad() {} render() { return (
    Lowercase: {this.lowercaseName}
    ); } } " `; exports[`Stencil > svelte > Javascript Test > reactiveWithFn 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() a = 2; @State() b = 5; @State() result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; watch0Fn() { this.calculateResult(this.a, this.b); } @Watch(\\"a\\") @Watch(\\"b\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    (this.a = event.target.value)} value={this.a} /> (this.b = event.target.value)} value={this.b} /> Result: {this.result}
    ); } } " `; exports[`Stencil > svelte > Javascript Test > slots 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { componentDidLoad() {} render() { return (
    default
    default
    ); } } " `; exports[`Stencil > svelte > Javascript Test > style 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > svelte > Javascript Test > textExpressions 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() a = 5; @State() b = 12; componentDidLoad() {} render() { return (
    normal: {this.a + this.b}
    conditional {this.a > 2 ? \\"hello\\" : \\"bye\\"}
    ); } } " `; exports[`Stencil > svelte > Typescript Test > basic 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() name = \\"Steve\\"; componentDidLoad() {} render() { return (
    (this.name = event.target.value)} value={this.name} /> Hello! I can run in React, Vue, Solid, or Liquid!
    ); } } " `; exports[`Stencil > svelte > Typescript Test > bindGroup 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() tortilla = \\"Plain\\"; @State() fillings = []; componentDidLoad() {} render() { return (
    (this.tortilla = event.target.value)} /> (this.tortilla = event.target.value)} /> (this.tortilla = event.target.value)} />

    (this.fillings = event.target.value)} /> (this.fillings = event.target.value)} /> (this.fillings = event.target.value)} /> (this.fillings = event.target.value)} />

    Tortilla: {this.tortilla}

    Fillings: {this.fillings}

    ); } } " `; exports[`Stencil > svelte > Typescript Test > bindProperty 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() value = \\"hello\\"; componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > svelte > Typescript Test > classDirective 1`] = ` "import { Component, h, Fragment, Prop, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @Prop() disabled: any; @State() focus = true; componentDidLoad() {} render() { return ( ); } } " `; exports[`Stencil > svelte > Typescript Test > context 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() activeTab = 0; componentDidLoad() {} render() { return
    {this.activeTab}
    ; } } " `; exports[`Stencil > svelte > Typescript Test > each 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() numbers = [\\"one\\", \\"two\\", \\"three\\"]; componentDidLoad() {} render() { return (
      {this.numbers?.map((num) => (
    • {num}
    • ))}
    ); } } " `; exports[`Stencil > svelte > Typescript Test > eventHandlers 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { log = function log(msg = \\"hello\\") { console.log(msg); }; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > svelte > Typescript Test > html 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() html = \\"bold\\"; componentDidLoad() {} render() { return
    ; } } " `; exports[`Stencil > svelte > Typescript Test > ifElse 1`] = ` "import { Component, h, Fragment, Host, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() show = true; toggle = function toggle() { this.show = !this.show; }; componentDidLoad() {} render() { return ( {this.show ? ( ) : ( )} ); } } " `; exports[`Stencil > svelte > Typescript Test > imports 1`] = ` "import { Button } from \\"./Button.lite\\"; import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() disabled = false; componentDidLoad() {} render() { return (
    ); } } " `; exports[`Stencil > svelte > Typescript Test > lifecycleHooks 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { componentDidLoad() { console.log(\\"onMount\\"); } disconnectedCallback() { console.log(\\"onDestroy\\"); } componentDidUpdate() { console.log(\\"onAfterUpdate\\"); } render() { return
    ; } } " `; exports[`Stencil > svelte > Typescript Test > reactive 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() name = \\"Steve\\"; get lowercaseName() { return this.name.toLowerCase(); } componentDidLoad() {} render() { return (
    Lowercase: {this.lowercaseName}
    ); } } " `; exports[`Stencil > svelte > Typescript Test > reactiveWithFn 1`] = ` "import { Component, h, Fragment, Watch, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() a = 2; @State() b = 5; @State() result = null; calculateResult = function calculateResult(a_, b_) { this.result = a_ * b_; }; watch0Fn() { this.calculateResult(this.a, this.b); } @Watch(\\"a\\") @Watch(\\"b\\") watch0() { this.watch0Fn(); } componentDidLoad() { this.watch0Fn(); } render() { return (
    (this.a = event.target.value)} value={this.a} /> (this.b = event.target.value)} value={this.b} /> Result: {this.result}
    ); } } " `; exports[`Stencil > svelte > Typescript Test > slots 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { componentDidLoad() {} render() { return (
    default
    default
    ); } } " `; exports[`Stencil > svelte > Typescript Test > style 1`] = ` "import { Component, h, Fragment } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", styles: \` input { color: red; font-size: 12px; } .form-input:focus { outline: 1px solid blue; } \`, }) export class MyComponent { componentDidLoad() {} render() { return ; } } " `; exports[`Stencil > svelte > Typescript Test > textExpressions 1`] = ` "import { Component, h, Fragment, State } from \\"@stencil/core\\"; @Component({ tag: \\"my-component\\", }) export class MyComponent { @State() a = 5; @State() b = 12; componentDidLoad() {} render() { return (
    normal: {this.a + this.b}
    conditional {this.a > 2 ? \\"hello\\" : \\"bye\\"}
    ); } } " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/styles.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Styles > class and CSS are merged 1`] = ` { "@type": "@builder.io/mitosis/component", "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "css": { "bindingType": "expression", "code": "{ padding: '10px' }", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [], "meta": {}, "name": "div", "properties": { "_text": " Hello! I can run in React, Vue, Solid, or Liquid! ", }, "scope": {}, }, ], "meta": {}, "name": "div", "properties": { "class": "test", }, "scope": {}, }, ], "context": { "get": {}, "set": {}, }, "exports": {}, "hooks": { "onEvent": [], "onMount": [], }, "imports": [], "inputs": [], "meta": {}, "name": "MyBasicComponent", "refs": {}, "state": {}, "subComponents": [], } `; exports[`Styles > class and className are merged 1`] = ` { "@type": "@builder.io/mitosis/component", "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [], "meta": {}, "name": "div", "properties": { "_text": " Hello! I can run in React, Vue, Solid, or Liquid! ", }, "scope": {}, }, ], "meta": {}, "name": "MyComp", "properties": { "class": "test", "className": "test2", }, "scope": {}, }, { "@type": "@builder.io/mitosis/node", "bindings": { "css": { "bindingType": "expression", "code": "{ padding: '10px' }", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [], "meta": {}, "name": "div", "properties": { "_text": " Hello! I can run in React, Vue, Solid, or Liquid! ", }, "scope": {}, }, ], "meta": {}, "name": "div", "properties": { "class": "test2 test", }, "scope": {}, }, ], "meta": {}, "name": "div", "properties": {}, "scope": {}, }, ], "context": { "get": {}, "set": {}, }, "exports": {}, "hooks": { "onEvent": [], "onMount": [], }, "imports": [ { "importKind": "value", "imports": { "MyComp": "default", }, "path": "./my-component.lite", }, ], "inputs": [], "meta": {}, "name": "MyBasicComponent", "refs": {}, "state": {}, "subComponents": [], } `; exports[`Styles > className and CSS are merged 1`] = ` { "@type": "@builder.io/mitosis/component", "children": [ { "@type": "@builder.io/mitosis/node", "bindings": { "css": { "bindingType": "expression", "code": "{ padding: '10px' }", "type": "single", }, }, "children": [ { "@type": "@builder.io/mitosis/node", "bindings": {}, "children": [], "meta": {}, "name": "div", "properties": { "_text": " Hello! I can run in React, Vue, Solid, or Liquid! ", }, "scope": {}, }, ], "meta": {}, "name": "div", "properties": { "class": "test", }, "scope": {}, }, ], "context": { "get": {}, "set": {}, }, "exports": {}, "hooks": { "onEvent": [], "onMount": [], }, "imports": [], "inputs": [], "meta": {}, "name": "MyBasicComponent", "refs": {}, "state": {}, "subComponents": [], } `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/svelte.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Svelte > jsx > Javascript Test > Advanced 1`] = ` "
    {#each names as person, i}
    {i}: {person}
    {/each} {#each names as person} {person} {/each} {#each names as item}
    {/each} {#each Array.from({ length: 10 }) as _, ee}
    {ee}
    {/each} {#each Array.from({ length: 10 }) as item}

    {index}

    {/each} {#each names as person, index} {person}{index} {/each} {#each Array.from({ length: 10 }) as person, count} {person}{count} {/each} {#each names as person, i} {person}{i} {/each} {#each Array.from({ length: 10 }) as person, index} {person}{index} {/each}
    " `; exports[`Svelte > jsx > Javascript Test > AdvancedRef 1`] = ` "
    {#if showInput} { onBlur(); }} bind:value={name} /> {/if} Hello {lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    " `; exports[`Svelte > jsx > Javascript Test > Basic 1`] = ` "
    { name = myEvent.target.value; }} /> Hello! I can run in React, Vue, Solid, or Liquid! >
    " `; exports[`Svelte > jsx > Javascript Test > Basic 2`] = ` "
    {#each names as person} {#if person === name} { name = event.target.value + \\" and \\" + person; }} /> Hello {person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! {/if} {/each}
    " `; exports[`Svelte > jsx > Javascript Test > Basic Context 1`] = ` "
    {myService.method(\\"hello\\") + name} Hello! I can run in React, Vue, Solid, or Liquid! { onChange(); }} />
    " `; exports[`Svelte > jsx > Javascript Test > Basic OnMount Update 1`] = ` "
    Hello {name}
    " `; exports[`Svelte > jsx > Javascript Test > Basic Outputs 1`] = ` "
    " `; exports[`Svelte > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */
    " `; exports[`Svelte > jsx > Javascript Test > BasicAttribute 1`] = `""`; exports[`Svelte > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` "
    {#if $$slots.default} {type} {/if}
    " `; exports[`Svelte > jsx > Javascript Test > BasicChildComponent 1`] = ` "
    (name = name)} onEvent={(event) => log(\\"Test\\")} />
    " `; exports[`Svelte > jsx > Javascript Test > BasicFor 1`] = ` "
    {#each names as person} { name = event.target.value + \\" and \\" + person; }} /> Hello {person} ! I can run in Qwik, Web Component, React, Vue, Solid, or Liquid! {/each}
    " `; exports[`Svelte > jsx > Javascript Test > BasicRef 1`] = ` "
    {#if showInput} { onBlur(); }} bind:value={name} /> {/if} Hello {lowerCaseName()}! I can run in React, Qwik, Vue, Solid, or Web Component!
    " `; exports[`Svelte > jsx > Javascript Test > BasicRefAssignment 1`] = ` "
    " `; exports[`Svelte > jsx > Javascript Test > BasicRefPrevious 1`] = ` "

    Now: {count}, before: {prevCount}

    " `; exports[`Svelte > jsx > Javascript Test > Button 1`] = ` "
    {#if link} {text} {/if} {#if !link} {/if}
    " `; exports[`Svelte > jsx > Javascript Test > Columns 1`] = ` "
    {#each columns as column, index}
    {column.content}{index}
    {/each}
    " `; exports[`Svelte > jsx > Javascript Test > ContentSlotHtml 1`] = ` "

    " `; exports[`Svelte > jsx > Javascript Test > ContentSlotJSX 1`] = ` " {#if $$slots.reference}
    { show(); }} class={cls()} > {#if showContent && $$slots.content} {content} {/if}

    {/if}" `; exports[`Svelte > jsx > Javascript Test > CustomCode 1`] = ` "
    {@html code}
    " `; exports[`Svelte > jsx > Javascript Test > Embed 1`] = ` "
    {@html code}
    " `; exports[`Svelte > jsx > Javascript Test > Form 1`] = ` "
    { onSubmit(event); }} {...attributes} > {#if builderBlock && builderBlock.children} {#each builderBlock?.children as block, index (block.id)} {/each} {/if} {#if submissionState() === \\"error\\"} {/if} {#if submissionState() === \\"sending\\"} {/if} {#if submissionState() === \\"error\\" && responseData}
    {JSON.stringify(
            responseData,
            null,
            2
          )}
    {/if} {#if submissionState() === \\"success\\"} {/if} " `; exports[`Svelte > jsx > Javascript Test > Image 1`] = ` "
    {#if !useLazyLoading() || load} {altText} { setLoaded(); }} {srcset} {sizes} /> {/if}
    " `; exports[`Svelte > jsx > Javascript Test > Image State 1`] = ` "
    {#each images as item, itemIndex} {#key itemIndex} {/key} {/each}
    " `; exports[`Svelte > jsx > Javascript Test > Img 1`] = ` " {#key (Builder.isEditing && imgSrc) || \\"default-key\\"} {altText} {/key}" `; exports[`Svelte > jsx > Javascript Test > Input 1`] = ` " {#key Builder.isEditing && defaultValue ? defaultValue : \\"default-key\\"} { onChange?.(event.target.value); }} /> {/key}" `; exports[`Svelte > jsx > Javascript Test > InputParent 1`] = ` " handleChange(value)} />" `; exports[`Svelte > jsx > Javascript Test > NestedStore 1`] = ` "
    Test

    Message

    " `; exports[`Svelte > jsx > Javascript Test > RawText 1`] = ` " {@html text || \\"\\"}" `; exports[`Svelte > jsx > Javascript Test > Section 1`] = ` "
    " `; exports[`Svelte > jsx > Javascript Test > Section 2`] = ` " {#if max} {#each items as item}
    {/each} {/if}" `; exports[`Svelte > jsx > Javascript Test > Select 1`] = ` " {#key Builder.isEditing && defaultValue ? defaultValue : \\"default-key\\"} {/key}" `; exports[`Svelte > jsx > Javascript Test > SlotDefault 1`] = `"
    Default content
    "`; exports[`Svelte > jsx > Javascript Test > SlotHtml 1`] = ` "
    Hello
    " `; exports[`Svelte > jsx > Javascript Test > SlotJsx 1`] = ` "
    Hello
    } >
    " `; exports[`Svelte > jsx > Javascript Test > SlotNamed 1`] = ` "
    Default leftDefault Child
    " `; exports[`Svelte > jsx > Javascript Test > Stamped.io 1`] = ` "
    {#if showReviewPrompt || \\"asdf\\"}
    " `; exports[`Vue > jsx > Javascript Test > StoreComment 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > StoreShadowVars 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > StoreWithState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Submit 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Text 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Textarea 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Video 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForFragment 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForNoTagReference 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForwardRef 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ " `; exports[`Vue > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Vue > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ " `; exports[`Vue > jsx > Javascript Test > class + ClassName + css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > class + css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > className + css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > className 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > classState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ " `; exports[`Vue > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ " `; exports[`Vue > jsx > Javascript Test > componentWithContext 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > contentState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > defaultProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > defaultValsWithTypes 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > eventInputAndChange 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > eventProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > expressionState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Vue > jsx > Javascript Test > functionProps 1`] = ` "" `; exports[`Vue > jsx > Javascript Test > getterState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > import types 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > layerName 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > multipleOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > multipleSpreads 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > nestedShow 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > nestedStyles 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > normalizeLayerNames 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onEvent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onInit & onMount 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onInit 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onInitPlain 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onMount 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onMountMultiple 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onUpdate 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > preserveTyping 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > propsDestructure 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > propsInterface 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > propsType 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > referencingFunInsideHook 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > renderBlock 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > renderContentExample 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > rootShow 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > self-referencing component 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > self-referencing component with children 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > setState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showExpressions 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showWithFor 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showWithOtherValues 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showWithRootText 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > signalsOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > spreadAttrs 1`] = ` "" `; exports[`Vue > jsx > Javascript Test > spreadNestedProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > spreadProps 1`] = ` "" `; exports[`Vue > jsx > Javascript Test > store-async-function 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > string-literal-store 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > string-literal-store-kebab 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > styleClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > stylePropClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > subComponent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > svgComponent 1`] = ` "" `; exports[`Vue > jsx > Javascript Test > typeDependency 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeExternalProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeExternalStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeGetterStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > use-style 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > use-style-and-css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > use-style-outside-component 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > useTarget 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > webComponent 1`] = ` " " `; exports[`Vue > jsx > Remove Internal mitosis package 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Advanced 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > AdvancedRef 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic 2`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic Context 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic OnMount Update 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic Outputs 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ " `; exports[`Vue > jsx > Typescript Test > BasicAttribute 1`] = ` "" `; exports[`Vue > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicChildComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicFor 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicRef 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicRefAssignment 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicRefPrevious 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Button 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Columns 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > ContentSlotHtml 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > ContentSlotJSX 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > CustomCode 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Embed 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Form 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Image 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Image State 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Img 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Input 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > InputParent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > NestedStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > RawText 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Section 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Section 2`] = ` " " `; exports[`Vue > jsx > Typescript Test > Select 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotDefault 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotHtml 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotJsx 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotNamed 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Stamped.io 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > StoreComment 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > StoreShadowVars 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > StoreWithState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Submit 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Text 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Textarea 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Video 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForFragment 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForNoTagReference 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForwardRef 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ " `; exports[`Vue > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Vue > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ " `; exports[`Vue > jsx > Typescript Test > class + ClassName + css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > class + css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > className + css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > className 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > classState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ " `; exports[`Vue > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ " `; exports[`Vue > jsx > Typescript Test > componentWithContext 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > contentState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > defaultProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > defaultValsWithTypes 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > eventInputAndChange 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > eventProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > expressionState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Vue > jsx > Typescript Test > functionProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > getterState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > import types 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > layerName 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > multipleOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > multipleSpreads 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > nestedShow 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > nestedStyles 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > normalizeLayerNames 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onEvent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onInit & onMount 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onInit 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onInitPlain 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onMount 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onMountMultiple 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onUpdate 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > preserveTyping 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > propsDestructure 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > propsInterface 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > propsType 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > referencingFunInsideHook 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > renderBlock 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > renderContentExample 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > rootShow 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > self-referencing component 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > self-referencing component with children 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > setState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showExpressions 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showWithFor 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showWithOtherValues 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showWithRootText 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > signalsOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > spreadAttrs 1`] = ` "" `; exports[`Vue > jsx > Typescript Test > spreadNestedProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > spreadProps 1`] = ` "" `; exports[`Vue > jsx > Typescript Test > store-async-function 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > string-literal-store 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > string-literal-store-kebab 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > styleClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > stylePropClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > subComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > svgComponent 1`] = ` "" `; exports[`Vue > jsx > Typescript Test > typeDependency 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeExternalProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeExternalStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeGetterStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > use-style 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > use-style-and-css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > use-style-outside-component 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > useTarget 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > webComponent 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > basic 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > bindGroup 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > bindProperty 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > classDirective 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > context 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > each 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > eventHandlers 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > html 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > ifElse 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > imports 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > lifecycleHooks 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > reactive 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > reactiveWithFn 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > slots 1`] = ` "" `; exports[`Vue > svelte > Javascript Test > style 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > textExpressions 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > basic 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > bindGroup 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > bindProperty 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > classDirective 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > context 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > each 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > eventHandlers 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > html 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > ifElse 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > imports 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > lifecycleHooks 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > reactive 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > reactiveWithFn 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > slots 1`] = ` "" `; exports[`Vue > svelte > Typescript Test > style 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > textExpressions 1`] = ` " " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/vue.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`Vue > jsx > Javascript Test > Advanced 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > AdvancedRef 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Basic 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Basic 2`] = ` " " `; exports[`Vue > jsx > Javascript Test > Basic Context 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Basic OnMount Update 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Basic Outputs 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ " `; exports[`Vue > jsx > Javascript Test > BasicAttribute 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > BasicBooleanAttribute 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > BasicChildComponent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > BasicFor 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > BasicRef 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > BasicRefAssignment 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > BasicRefPrevious 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Button 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Columns 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > ContentSlotHtml 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > ContentSlotJSX 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > CustomCode 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Embed 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Form 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Image 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Image State 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Img 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Input 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > InputParent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > NestedStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > RawText 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Section 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Section 2`] = ` " " `; exports[`Vue > jsx > Javascript Test > Select 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > SlotDefault 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > SlotHtml 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > SlotJsx 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > SlotNamed 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Stamped.io 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > StoreComment 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > StoreShadowVars 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > StoreWithState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Submit 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Text 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Textarea 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > UseValueAndFnFromStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > Video 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > arrowFunctionInUseStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForFragment 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForNoTagReference 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForwardRef 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ " `; exports[`Vue > jsx > Javascript Test > basicOnUpdateReturn 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Vue > jsx > Javascript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ " `; exports[`Vue > jsx > Javascript Test > class + ClassName + css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > class + css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > className + css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > className 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > classState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ " `; exports[`Vue > jsx > Javascript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ " `; exports[`Vue > jsx > Javascript Test > componentWithContext 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > componentWithContextMultiRoot 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > contentState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > defaultProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > defaultPropsOutsideComponent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > defaultValsWithTypes 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > eventInputAndChange 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > eventProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > expressionState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Vue > jsx > Javascript Test > functionProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > getterState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > import types 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > layerName 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > multipleOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > multipleOnUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > multipleSpreads 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > nestedShow 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > nestedStyles 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > normalizeLayerNames 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onEvent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onInit & onMount 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onInit 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onInitPlain 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onMount 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onMountMultiple 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onUpdate 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > onUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > preserveExportOrLocalStatement 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > preserveTyping 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > propsDestructure 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > propsInterface 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > propsType 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > referencingFunInsideHook 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > renderBlock 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > renderContentExample 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > rootFragmentMultiNode 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > rootShow 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > self-referencing component 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > self-referencing component with children 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > setState 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showExpressions 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showWithFor 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showWithOtherValues 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > showWithRootText 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > signalsOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > spreadAttrs 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > spreadNestedProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > spreadProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > store-async-function 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > string-literal-store 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > string-literal-store-kebab 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > styleClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > stylePropClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > subComponent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > svgComponent 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeDependency 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeExternalProps 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeExternalStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > typeGetterStore 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > use-style 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > use-style-and-css 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > use-style-outside-component 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > useTarget 1`] = ` " " `; exports[`Vue > jsx > Javascript Test > webComponent 1`] = ` " " `; exports[`Vue > jsx > Remove Internal mitosis package 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Advanced 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > AdvancedRef 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic 2`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic Context 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic OnMount Update 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic Outputs 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Basic Outputs Meta 1`] = ` "/** useMetadata: {\\"outputs\\":[\\"onMessage\\",\\"onEvent\\"],\\"baz\\":\\"metadata inside component\\"} */ " `; exports[`Vue > jsx > Typescript Test > BasicAttribute 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicBooleanAttribute 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicChildComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicFor 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicRef 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicRefAssignment 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > BasicRefPrevious 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Button 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Columns 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > ContentSlotHtml 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > ContentSlotJSX 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > CustomCode 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Embed 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Form 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Image 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Image State 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Img 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Input 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > InputParent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > NestedStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > RawText 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Section 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Section 2`] = ` " " `; exports[`Vue > jsx > Typescript Test > Select 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotDefault 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotHtml 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotJsx 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > SlotNamed 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Stamped.io 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > StoreComment 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > StoreShadowVars 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > StoreWithState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Submit 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Text 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Textarea 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > UseValueAndFnFromStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > Video 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > arrowFunctionInUseStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForFragment 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForNoTagReference 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForwardRef 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicForwardRefMetadata 1`] = ` "/** useMetadata: {\\"forwardRef\\":\\"inputRef\\"} */ " `; exports[`Vue > jsx > Typescript Test > basicOnUpdateReturn 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > basicRefAttributePassing 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true}} */ " `; exports[`Vue > jsx > Typescript Test > basicRefAttributePassingCustomRef 1`] = ` "/** useMetadata: {\\"attributePassing\\":{\\"enabled\\":true,\\"customRef\\":\\"buttonRef\\"}} */ " `; exports[`Vue > jsx > Typescript Test > class + ClassName + css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > class + css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > className + css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > className 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > classState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > classnameProps 1`] = ` "/** useMetadata: {\\"stencil\\":{\\"propOptions\\":{\\"className\\":{\\"attribute\\":\\"classname\\",\\"mutable\\":false,\\"reflect\\":false}}}} */ " `; exports[`Vue > jsx > Typescript Test > complexMeta 1`] = ` "/** useMetadata: {\\"x\\":\\"y\\",\\"asdf\\":{\\"stringValue\\":\\"d\\",\\"booleanValue\\":true,\\"numberValue\\":1,\\"innerObject\\":{\\"stringValue\\":\\"inner\\",\\"numberValue\\":2,\\"booleanValue\\":false},\\"spreadStringValue\\":\\"f\\"}} */ " `; exports[`Vue > jsx > Typescript Test > componentWithContext 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > componentWithContextMultiRoot 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > contentState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > defaultProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > defaultPropsOutsideComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > defaultValsWithTypes 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > eventInputAndChange 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > eventProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > expressionState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > figmaMeta 1`] = ` "/** useMetadata: {\\"figma\\":{\\"name\\":\\"def-button-beta-outlined\\",\\"url\\":\\"https://www.figma.com/xxx\\",\\"props\\":{\\"iconSmall\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Small\\"},\\"iconMedium\\":{\\"type\\":\\"instance\\",\\"key\\":\\"📍 Icon Medium\\"},\\"label\\":{\\"type\\":\\"string\\",\\"key\\":\\"✏️ Label\\"},\\"icon\\":{\\"type\\":\\"boolean\\",\\"key\\":\\"👁️ Icon\\",\\"value\\":{\\"false\\":false,\\"true\\":\\"placeholder\\"}},\\"interactiveState\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Interactive State\\",\\"value\\":{\\"(Def) Enabled\\":false,\\"Hovered\\":false,\\"Pressed\\":false,\\"Focused\\":false,\\"Disabled\\":\\"true\\"}},\\"size\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Size\\",\\"value\\":{\\"(Def) Medium\\":false,\\"Small\\":\\"small\\"}},\\"width\\":{\\"type\\":\\"enum\\",\\"key\\":\\"Width\\",\\"value\\":{\\"(Def) Auto Width\\":false,\\"Full Width\\":\\"full\\"}}}}} */ " `; exports[`Vue > jsx > Typescript Test > functionProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > getterState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > import types 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > layerName 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > multipleOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > multipleOnUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > multipleSpreads 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > nestedShow 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > nestedStyles 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > normalizeLayerNames 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onEvent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onInit & onMount 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onInit 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onInitPlain 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onMount 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onMountMultiple 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onUpdate 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > onUpdateWithDeps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > preserveExportOrLocalStatement 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > preserveTyping 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > propsDestructure 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > propsInterface 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > propsType 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > referencingFunInsideHook 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > renderBlock 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > renderContentExample 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > rootFragmentMultiNode 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > rootShow 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > self-referencing component 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > self-referencing component with children 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > setState 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showExpressions 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showWithFor 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showWithOtherValues 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > showWithRootText 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > signalsOnUpdate 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > spreadAttrs 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > spreadNestedProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > spreadProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > store-async-function 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > string-literal-store 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > string-literal-store-kebab 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > styleClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > stylePropClassAndCss 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > subComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > svgComponent 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeDependency 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeExternalProps 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeExternalStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > typeGetterStore 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > use-style 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > use-style-and-css 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > use-style-outside-component 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > useTarget 1`] = ` " " `; exports[`Vue > jsx > Typescript Test > webComponent 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > basic 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > bindGroup 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > bindProperty 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > classDirective 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > context 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > each 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > eventHandlers 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > html 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > ifElse 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > imports 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > lifecycleHooks 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > reactive 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > reactiveWithFn 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > slots 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > style 1`] = ` " " `; exports[`Vue > svelte > Javascript Test > textExpressions 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > basic 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > bindGroup 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > bindProperty 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > classDirective 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > context 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > each 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > eventHandlers 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > html 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > ifElse 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > imports 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > lifecycleHooks 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > reactive 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > reactiveWithFn 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > slots 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > style 1`] = ` " " `; exports[`Vue > svelte > Typescript Test > textExpressions 1`] = ` " " `; ================================================ FILE: packages/core/src/__tests__/__snapshots__/webcomponent.test.ts.snap ================================================ // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html exports[`webcomponent > Shadow DOM 1`] = ` "/** * Usage: * * * */ class SmileReviews extends HTMLElement { get _root() { return this.shadowRoot || this; } constructor() { super(); const self = this; this.state = { reviews: [], name: \\"test\\", showReviewPrompt: false }; if (!this.props) { this.props = {}; } this.componentProps = [\\"apiKey\\", \\"productId\\"]; // used to keep track of all nodes created by show/for this.nodesToDestroy = []; // batch updates this.pendingUpdate = false; // Event handler for 'click' event on button-smile-reviews-1 this.onButtonSmileReviews1Click = (event) => { this.state.showReviewPrompt = true; this.update(); }; // Event handler for 'click' event on button-smile-reviews-2 this.onButtonSmileReviews2Click = (event) => { this.state.showReviewPrompt = false; this.update(); }; if (true) { this.attachShadow({ mode: \\"open\\" }); } } destroyAnyNodes() { // destroy current view template refs before rendering again this.nodesToDestroy.forEach((el) => el.remove()); this.nodesToDestroy = []; } connectedCallback() { this.getAttributeNames().forEach((attr) => { const jsVar = attr.replace(/-/g, \\"\\"); const regexp = new RegExp(jsVar, \\"i\\"); this.componentProps.forEach((prop) => { if (regexp.test(prop)) { const attrValue = this.getAttribute(attr); if (this.props[prop] !== attrValue) { this.props[prop] = attrValue; } } }); }); this._root.innerHTML = \`
    \`; this.pendingUpdate = true; this.render(); this.onMount(); this.pendingUpdate = false; this.update(); } showContent(el) { // https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement/content // grabs the content of a node that is between