@ng-doc/builder 22.0.0-beta.2 → 22.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +19 -28
- package/application/index.js +2 -2
- package/application/index.js.map +1 -1
- package/application/schema.json +1 -2
- package/builders.json +23 -13
- package/classes/observable-map.d.ts +1 -0
- package/classes/observable-map.js +14 -3
- package/classes/observable-map.js.map +1 -1
- package/classes/observable-set.js +2 -1
- package/classes/observable-set.js.map +1 -1
- package/dev-server/index.js +5 -3
- package/dev-server/index.js.map +1 -1
- package/engine/builders/api-list/api-list-component.builder.js +4 -4
- package/engine/builders/api-list/api-list-component.builder.js.map +1 -1
- package/engine/builders/api-list/api-page-template.builder.js +2 -2
- package/engine/builders/api-list/api-page-template.builder.js.map +1 -1
- package/engine/builders/global/keywords.builder.d.ts +1 -4
- package/engine/builders/global/keywords.builder.js +5 -9
- package/engine/builders/global/keywords.builder.js.map +1 -1
- package/engine/builders/global/search-indexes.builder.js +1 -1
- package/engine/builders/global/search-indexes.builder.js.map +1 -1
- package/engine/builders/helpers/create-entry-metadata.js +2 -1
- package/engine/builders/helpers/create-entry-metadata.js.map +1 -1
- package/engine/builders/helpers/create-import-path.js.map +1 -1
- package/engine/builders/helpers/get-entry-relative-path.js.map +1 -1
- package/engine/builders/helpers/get-playground-metadata.js +7 -1
- package/engine/builders/helpers/get-playground-metadata.js.map +1 -1
- package/engine/builders/page/demo-assets.builder.js +10 -5
- package/engine/builders/page/demo-assets.builder.js.map +1 -1
- package/engine/builders/page/playground.builder.js +1 -0
- package/engine/builders/page/playground.builder.js.map +1 -1
- package/engine/builders/shared/content.builder.js +5 -3
- package/engine/builders/shared/content.builder.js.map +1 -1
- package/engine/builders/shared/page-component.builder.js +16 -6
- package/engine/builders/shared/page-component.builder.js.map +1 -1
- package/engine/builders/shared/page-wrapper.builder.js +10 -5
- package/engine/builders/shared/page-wrapper.builder.js.map +1 -1
- package/engine/core/operators/distinct-pending.js.map +1 -1
- package/engine/core/operators/factory.js +1 -4
- package/engine/core/operators/factory.js.map +1 -1
- package/engine/core/operators/merge-factory.js +19 -17
- package/engine/core/operators/merge-factory.js.map +1 -1
- package/engine/core/operators/when-builders-done.js.map +1 -1
- package/engine/core/triggers/on-dependencies-change.d.ts +1 -1
- package/engine/core/triggers/on-dependencies-change.js +2 -2
- package/engine/core/triggers/on-dependencies-change.js.map +1 -1
- package/generator/artifacts/index.d.ts +317 -0
- package/generator/bootstrap/bin.d.ts +18 -0
- package/generator/bootstrap/bin.js +7298 -0
- package/generator/bootstrap/candidate-output-committer.d.ts +12 -0
- package/generator/bootstrap/cli.d.ts +42 -0
- package/generator/bootstrap/cli.js +7147 -0
- package/generator/bootstrap/constants.d.ts +4 -0
- package/generator/bootstrap/index.d.ts +111 -0
- package/generator/bootstrap/index.js +5034 -0
- package/generator/bootstrap/prerender-command.d.ts +31 -0
- package/generator/bootstrap/process-tree.d.ts +49 -0
- package/generator/build-metafile.json +12009 -0
- package/generator/build-provenance.json +121 -0
- package/generator/compiler/assemble.d.ts +41 -0
- package/generator/compiler/classify.d.ts +161 -0
- package/generator/compiler/closure-store.d.ts +55 -0
- package/generator/compiler/common.d.ts +32 -0
- package/generator/compiler/describe.d.ts +21 -0
- package/generator/compiler/dry-run.d.ts +108 -0
- package/generator/compiler/fast-start.d.ts +104 -0
- package/generator/compiler/fold.d.ts +116 -0
- package/generator/compiler/index.d.ts +131 -0
- package/generator/compiler/index.js +19009 -0
- package/generator/compiler/link.d.ts +38 -0
- package/generator/compiler/memo.d.ts +44 -0
- package/generator/compiler/plan.d.ts +116 -0
- package/generator/compiler/progress.d.ts +54 -0
- package/generator/compiler/render.d.ts +27 -0
- package/generator/compiler/retention.d.ts +181 -0
- package/generator/compiler/semantic-closure.d.ts +46 -0
- package/generator/compiler/targeted.d.ts +280 -0
- package/generator/content/code-snippet.d.ts +20 -0
- package/generator/content/content-compiler.d.ts +122 -0
- package/generator/content/format-cache.d.ts +108 -0
- package/generator/content/highlight-cache.d.ts +115 -0
- package/generator/content/html-pipeline.d.ts +179 -0
- package/generator/content/html-pool.d.ts +245 -0
- package/generator/content/html-worker.js +2181 -0
- package/generator/content-module-ids.d.ts +8 -0
- package/generator/contracts.d.ts +1102 -0
- package/generator/contracts.js +15 -0
- package/generator/discovery/index.d.ts +79 -0
- package/generator/graph/index.d.ts +211 -0
- package/generator/graph/unit-index.d.ts +216 -0
- package/generator/kernel/canonical.d.ts +57 -0
- package/generator/kernel/flags.d.ts +51 -0
- package/generator/kernel/footprint.d.ts +88 -0
- package/generator/kernel/observations.d.ts +68 -0
- package/generator/kernel/paths.d.ts +22 -0
- package/generator/kernel/runtime-identity.d.ts +11 -0
- package/generator/outputs/index.d.ts +80 -0
- package/generator/package.json +3 -0
- package/generator/progress/ci.d.ts +22 -0
- package/generator/progress/detect.d.ts +60 -0
- package/generator/progress/events.d.ts +126 -0
- package/generator/progress/format.d.ts +83 -0
- package/generator/progress/gate.d.ts +49 -0
- package/generator/progress/host.d.ts +29 -0
- package/generator/progress/lines.d.ts +42 -0
- package/generator/progress/live.d.ts +115 -0
- package/generator/progress/model.d.ts +85 -0
- package/generator/progress/reporter.d.ts +87 -0
- package/generator/progress/settings.d.ts +60 -0
- package/generator/semantic/angular.d.ts +29 -0
- package/generator/semantic/api-enumeration.d.ts +19 -0
- package/generator/semantic/api-summary.d.ts +33 -0
- package/generator/semantic/dependencies.d.ts +20 -0
- package/generator/semantic/derived-classes.d.ts +58 -0
- package/generator/semantic/documentation-cache.d.ts +23 -0
- package/generator/semantic/formatting.d.ts +27 -0
- package/generator/semantic/fragments.d.ts +37 -0
- package/generator/semantic/owned-roots.d.ts +59 -0
- package/generator/semantic/program-builder.d.ts +55 -0
- package/generator/semantic/program-index.d.ts +124 -0
- package/generator/semantic/program-inputs.d.ts +26 -0
- package/generator/semantic/program-observations.d.ts +158 -0
- package/generator/semantic/program-retention.d.ts +147 -0
- package/generator/semantic/program-state.d.ts +196 -0
- package/generator/semantic/program-verify.d.ts +22 -0
- package/generator/semantic/recorder.d.ts +89 -0
- package/generator/semantic/rendering.d.ts +34 -0
- package/generator/semantic/semantic-closure.d.ts +129 -0
- package/generator/semantic/semantic-service.d.ts +186 -0
- package/generator/semantic/type-text.d.ts +5 -0
- package/generator/session/build-session.d.ts +206 -0
- package/generator/session/input-verification.d.ts +38 -0
- package/generator/session/parcel-event-source.d.ts +22 -0
- package/generator/session/progress.d.ts +72 -0
- package/generator/session/unchanged-saves.d.ts +63 -0
- package/generator/session/watch-inputs.d.ts +6 -0
- package/generator/session/watch-signals.d.ts +10 -0
- package/generator/templates/api/base.html.nunj +26 -0
- package/generator/templates/api/class-declaration.html.nunj +59 -0
- package/generator/templates/api/details/class-declaration.html.nunj +47 -0
- package/generator/templates/api/details/enum-declaration.html.nunj +0 -0
- package/generator/templates/api/details/function-declaration.html.nunj +14 -0
- package/generator/templates/api/details/helpers/decorators.html.nunj +14 -0
- package/generator/templates/api/details/helpers/extends.html.nunj +6 -0
- package/generator/templates/api/details/helpers/selectors.html.nunj +12 -0
- package/generator/templates/api/details/helpers/type-parameters.html.nunj +14 -0
- package/generator/templates/api/details/interface-declaration.html.nunj +27 -0
- package/generator/templates/api/details/type-alias-declaration.html.nunj +14 -0
- package/generator/templates/api/details/variable-declaration.html.nunj +0 -0
- package/generator/templates/api/details.html.nunj +9 -0
- package/generator/templates/api/enum-declaration.html.nunj +12 -0
- package/generator/templates/api/function-declaration.html.nunj +35 -0
- package/generator/templates/api/interface-declaration.html.nunj +37 -0
- package/generator/templates/api/type-alias-declaration.html.nunj +16 -0
- package/generator/templates/api/variable-declaration.html.nunj +8 -0
- package/generator/templates/api-header.html.nunj +11 -0
- package/generator/templates/api-list.ts.nunj +22 -0
- package/generator/templates/api-page-content.html.nunj +1 -0
- package/generator/templates/api-scope.ts.nunj +22 -0
- package/generator/templates/category.ts.nunj +22 -0
- package/generator/templates/code.html.nunj +3 -0
- package/generator/templates/context.ts.nunj +55 -0
- package/generator/templates/demo-app.ts.nunj +37 -0
- package/generator/templates/demo-assets.ts.nunj +25 -0
- package/generator/templates/demo-routes.ts.nunj +23 -0
- package/generator/templates/helpers/accessor.html.nunj +76 -0
- package/generator/templates/helpers/accessors.html.nunj +7 -0
- package/generator/templates/helpers/badge.html.nunj +4 -0
- package/generator/templates/helpers/call-signature.html.nunj +70 -0
- package/generator/templates/helpers/code.html.nunj +3 -0
- package/generator/templates/helpers/constructor.html.nunj +32 -0
- package/generator/templates/helpers/declaration-modifiers.html.nunj +45 -0
- package/generator/templates/helpers/decorators.html.nunj +11 -0
- package/generator/templates/helpers/members.html.nunj +29 -0
- package/generator/templates/helpers/method.html.nunj +89 -0
- package/generator/templates/helpers/methods.html.nunj +7 -0
- package/generator/templates/helpers/modifier.html.nunj +4 -0
- package/generator/templates/helpers/no-content.html.nunj +3 -0
- package/generator/templates/helpers/overload.html.nunj +57 -0
- package/generator/templates/helpers/parameters.html.nunj +44 -0
- package/generator/templates/helpers/properties.html.nunj +61 -0
- package/generator/templates/helpers/status.html.nunj +33 -0
- package/generator/templates/helpers/tag.html.nunj +4 -0
- package/generator/templates/helpers/type.html.nunj +11 -0
- package/generator/templates/index.ts.nunj +7 -0
- package/generator/templates/page-header.html.nunj +5 -0
- package/generator/templates/page-wrapper.ts.nunj +69 -0
- package/generator/templates/page.ts.nunj +104 -0
- package/generator/templates/parts/examples.html.nunj +11 -0
- package/generator/templates/parts/member-examples.html.nunj +12 -0
- package/generator/templates/parts/member-remarks.html.nunj +8 -0
- package/generator/templates/parts/page-tags.html.nunj +10 -0
- package/generator/templates/parts/remarks.html.nunj +10 -0
- package/generator/templates/parts/see-also.html.nunj +23 -0
- package/generator/templates/parts/usage-notes.html.nunj +8 -0
- package/generator/templates/playgrounds.ts.nunj +63 -0
- package/generator/templates/routes.ts.nunj +53 -0
- package/generator/templates/symbol/decorators.html.nunj +12 -0
- package/generator/templates/symbol/details.html.nunj +62 -0
- package/generator/templates/symbol/extended-by.html.nunj +17 -0
- package/generator/templates/symbol/header.html.nunj +22 -0
- package/generator/templates/symbol/members.html.nunj +303 -0
- package/generator/templates/symbol/page.html.nunj +76 -0
- package/generator/templates/symbol/see-also.html.nunj +16 -0
- package/generator/vite/angular/ANALOG-LICENSE +21 -0
- package/generator/vite/angular/analog-provenance.json +880 -0
- package/generator/vite/angular/index.d.ts +14 -0
- package/generator/vite/angular/index.js +7300 -0
- package/generator/vite/angular-compatibility.d.ts +6 -0
- package/generator/vite/angular-composition.d.ts +68 -0
- package/generator/vite/angular-version.d.ts +38 -0
- package/generator/vite/application-builder.js +336 -0
- package/generator/vite/application-builder.schema.json +46 -0
- package/generator/vite/application.d.ts +105 -0
- package/generator/vite/assets.d.ts +11 -0
- package/generator/vite/bounded-close.d.ts +33 -0
- package/generator/vite/component-updates.d.ts +21 -0
- package/generator/vite/configuration.d.ts +3 -0
- package/generator/vite/demo-application.d.ts +34 -0
- package/generator/vite/dev-server-builder.js +339 -0
- package/generator/vite/dev-server-builder.schema.json +27 -0
- package/generator/vite/dev-styles.d.ts +65 -0
- package/generator/vite/diagnostics.d.ts +4 -0
- package/generator/vite/external-probes.d.ts +40 -0
- package/generator/vite/host-updates.d.ts +212 -0
- package/generator/vite/index.d.ts +13 -0
- package/generator/vite/index.js +11949 -0
- package/generator/vite/lease.d.ts +6 -0
- package/generator/vite/lifecycle.d.ts +120 -0
- package/generator/vite/mime.d.ts +2 -0
- package/generator/vite/missing-paths.d.ts +44 -0
- package/generator/vite/options.d.ts +87 -0
- package/generator/vite/output-watch.d.ts +41 -0
- package/generator/vite/paths.d.ts +7 -0
- package/generator/vite/plugin.d.ts +3 -0
- package/generator/vite/prerender-entry.js +465 -0
- package/generator/vite/prerender-runtime.d.ts +79 -0
- package/generator/vite/prerender.d.ts +29 -0
- package/generator/vite/production.d.ts +66 -0
- package/generator/vite/progress.d.ts +33 -0
- package/generator/vite/restore-theme.js +13 -0
- package/generator/vite/route-inventory.d.ts +24 -0
- package/generator/vite/ssr-renderer-control.d.ts +1 -0
- package/generator/vite/ssr-renderer-entry.js +444 -0
- package/generator/vite/ssr-renderer-protocol.d.ts +101 -0
- package/generator/vite/ssr-renderer.d.ts +74 -0
- package/generator/vite/theme-index.d.ts +13 -0
- package/generator/vite/tsconfig-paths.d.ts +64 -0
- package/generator/vite/vite-event-source.d.ts +198 -0
- package/generator/vite/vite-version.d.ts +26 -0
- package/generator/vite/watch-inputs.d.ts +39 -0
- package/generator/worker/entry.d.ts +1 -0
- package/generator/worker/entry.js +614 -0
- package/generator/worker/index.d.ts +156 -0
- package/generator/worker/index.js +1030 -0
- package/generator/worker/protocol.d.ts +160 -0
- package/helpers/angular/get-component-decorator.js +6 -6
- package/helpers/angular/get-component-decorator.js.map +1 -1
- package/helpers/angular/get-directive-decorator.js +3 -3
- package/helpers/angular/get-directive-decorator.js.map +1 -1
- package/helpers/angular/get-pipe-decorator.js +3 -3
- package/helpers/angular/get-pipe-decorator.js.map +1 -1
- package/helpers/build-indexes.js +5 -2
- package/helpers/build-indexes.js.map +1 -1
- package/helpers/construct-page-keyword.js +2 -1
- package/helpers/construct-page-keyword.js.map +1 -1
- package/helpers/extract-selectors.d.ts +1 -1
- package/helpers/extract-selectors.js +5 -3
- package/helpers/extract-selectors.js.map +1 -1
- package/helpers/filter-useless-members.d.ts +1 -1
- package/helpers/format-cache.d.ts +34 -0
- package/helpers/format-cache.js +26 -0
- package/helpers/format-cache.js.map +1 -0
- package/helpers/format-code.d.ts +2 -1
- package/helpers/format-code.js +20 -4
- package/helpers/format-code.js.map +1 -1
- package/helpers/import-fresh-esm.js.map +1 -1
- package/helpers/index.d.ts +2 -0
- package/helpers/index.js +2 -0
- package/helpers/index.js.map +1 -1
- package/helpers/keyword-heading-title.d.ts +7 -0
- package/helpers/keyword-heading-title.js +21 -0
- package/helpers/keyword-heading-title.js.map +1 -0
- package/helpers/markdown-to-html.js +3 -3
- package/helpers/markdown-to-html.js.map +1 -1
- package/helpers/navigation-title-order.d.ts +8 -0
- package/helpers/navigation-title-order.js +15 -0
- package/helpers/navigation-title-order.js.map +1 -0
- package/helpers/playground/get-playground-inputs.js +8 -4
- package/helpers/playground/get-playground-inputs.js.map +1 -1
- package/helpers/playground/get-playground-template-inputs.js +2 -1
- package/helpers/playground/get-playground-template-inputs.js.map +1 -1
- package/helpers/presentation.d.ts +7 -7
- package/helpers/presentation.js +23 -23
- package/helpers/presentation.js.map +1 -1
- package/helpers/print.js +32 -5
- package/helpers/print.js.map +1 -1
- package/helpers/process-snippets.d.ts +1 -1
- package/helpers/process-snippets.js +3 -3
- package/helpers/process-snippets.js.map +1 -1
- package/helpers/snippets-from-asset.d.ts +1 -1
- package/helpers/snippets-from-asset.js +2 -2
- package/helpers/snippets-from-asset.js.map +1 -1
- package/helpers/sort-navigation-entities.js +2 -1
- package/helpers/sort-navigation-entities.js.map +1 -1
- package/helpers/stable-generated-id.d.ts +2 -0
- package/helpers/stable-generated-id.js +12 -0
- package/helpers/stable-generated-id.js.map +1 -0
- package/helpers/text-order.d.ts +8 -0
- package/helpers/text-order.js +26 -0
- package/helpers/text-order.js.map +1 -0
- package/helpers/to-template-string.d.ts +5 -1
- package/helpers/to-template-string.js +7 -2
- package/helpers/to-template-string.js.map +1 -1
- package/helpers/typescript/member/get-inherited-parent.d.ts +1 -1
- package/helpers/typescript/member/get-inherited-parent.js +2 -2
- package/helpers/typescript/member/get-inherited-parent.js.map +1 -1
- package/helpers/typescript/node/sort-by-nodes-name.d.ts +4 -2
- package/helpers/typescript/node/sort-by-nodes-name.js +6 -3
- package/helpers/typescript/node/sort-by-nodes-name.js.map +1 -1
- package/helpers/typescript/property/get-property-assignment.js.map +1 -1
- package/interfaces/code-block-options.d.ts +5 -0
- package/interfaces/configuration.d.ts +84 -1
- package/package.json +87 -29
- package/parsers/helpers/number.d.ts +1 -1
- package/parsers/helpers/number.js +2 -2
- package/parsers/helpers/number.js.map +1 -1
- package/parsers/helpers/param-value.d.ts +1 -1
- package/parsers/helpers/param-value.js +2 -2
- package/parsers/helpers/param-value.js.map +1 -1
- package/parsers/helpers/param.js +3 -3
- package/parsers/helpers/param.js.map +1 -1
- package/parsers/parse-code-block-params.d.ts +11 -2
- package/parsers/parse-code-block-params.js +50 -18
- package/parsers/parse-code-block-params.js.map +1 -1
- package/parsers/parse-snippet.js +10 -10
- package/parsers/parse-snippet.js.map +1 -1
- package/schematics/collection.json +34 -23
- package/schematics/migrate-to-vite/analyze.d.ts +76 -0
- package/schematics/migrate-to-vite/analyze.js +859 -0
- package/schematics/migrate-to-vite/analyze.js.map +1 -0
- package/schematics/migrate-to-vite/index.d.ts +9 -0
- package/schematics/migrate-to-vite/index.js +585 -0
- package/schematics/migrate-to-vite/index.js.map +1 -0
- package/schematics/migrate-to-vite/legacy-folder.d.ts +84 -0
- package/schematics/migrate-to-vite/legacy-folder.js +340 -0
- package/schematics/migrate-to-vite/legacy-folder.js.map +1 -0
- package/schematics/migrate-to-vite/report.d.ts +32 -0
- package/schematics/migrate-to-vite/report.js +97 -0
- package/schematics/migrate-to-vite/report.js.map +1 -0
- package/schematics/migrate-to-vite/schema.d.ts +13 -0
- package/schematics/migrate-to-vite/schema.js +3 -0
- package/schematics/migrate-to-vite/schema.js.map +1 -0
- package/schematics/migrate-to-vite/schema.json +31 -0
- package/schematics/migrate-to-vite/setup/dependencies.d.ts +64 -0
- package/schematics/migrate-to-vite/setup/dependencies.js +183 -0
- package/schematics/migrate-to-vite/setup/dependencies.js.map +1 -0
- package/schematics/migrate-to-vite/setup/index.d.ts +6 -0
- package/schematics/migrate-to-vite/setup/index.js +13 -0
- package/schematics/migrate-to-vite/setup/index.js.map +1 -0
- package/schematics/migrate-to-vite/setup/json-file.d.ts +51 -0
- package/schematics/migrate-to-vite/setup/json-file.js +115 -0
- package/schematics/migrate-to-vite/setup/json-file.js.map +1 -0
- package/schematics/migrate-to-vite/setup/source.d.ts +30 -0
- package/schematics/migrate-to-vite/setup/source.js +202 -0
- package/schematics/migrate-to-vite/setup/source.js.map +1 -0
- package/schematics/migrate-to-vite/setup/targets.d.ts +51 -0
- package/schematics/migrate-to-vite/setup/targets.js +48 -0
- package/schematics/migrate-to-vite/setup/targets.js.map +1 -0
- package/schematics/migrate-to-vite/setup/vite-config.d.ts +100 -0
- package/schematics/migrate-to-vite/setup/vite-config.js +175 -0
- package/schematics/migrate-to-vite/setup/vite-config.js.map +1 -0
- package/schematics/migrate-to-vite/setup/workspace.d.ts +105 -0
- package/schematics/migrate-to-vite/setup/workspace.js +245 -0
- package/schematics/migrate-to-vite/setup/workspace.js.map +1 -0
- package/schematics/migrate-to-vite/state.d.ts +65 -0
- package/schematics/migrate-to-vite/state.js +92 -0
- package/schematics/migrate-to-vite/state.js.map +1 -0
- package/schematics/migrate-to-vite/testing/fixtures.d.ts +30 -0
- package/schematics/migrate-to-vite/testing/fixtures.js +306 -0
- package/schematics/migrate-to-vite/testing/fixtures.js.map +1 -0
- package/schematics/migrate-to-vite/update-note.d.ts +6 -0
- package/schematics/migrate-to-vite/update-note.js +23 -0
- package/schematics/migrate-to-vite/update-note.js.map +1 -0
- package/schematics/migration.json +5 -0
- package/schematics/migrations/standalone-pages/index.js +7 -6
- package/schematics/migrations/standalone-pages/index.js.map +1 -1
- package/schematics/vite-setup/index.d.ts +24 -0
- package/schematics/vite-setup/index.js +212 -0
- package/schematics/vite-setup/index.js.map +1 -0
- package/schematics/vite-setup/schema.d.ts +7 -0
- package/schematics/vite-setup/schema.js +3 -0
- package/schematics/vite-setup/schema.js.map +1 -0
- package/schematics/vite-setup/schema.json +19 -0
- package/scripts/restore-theme.js +9 -2
- package/templates/api/class-declaration.html.nunj +5 -3
- package/templates/context.ts.nunj +3 -0
- package/templates/demo-app.ts.nunj +37 -0
- package/templates/demo-routes.ts.nunj +23 -0
- package/templates/helpers/badge.html.nunj +1 -1
- package/templates/helpers/status.html.nunj +4 -8
- package/templates/index.ts.nunj +5 -0
- package/templates/page-wrapper.ts.nunj +30 -2
- package/templates/page.ts.nunj +33 -1
- package/templates/parts/page-tags.html.nunj +1 -1
- package/templates/playgrounds.ts.nunj +8 -9
- package/templates/routes.ts.nunj +10 -1
- package/templates/symbol/decorators.html.nunj +12 -0
- package/templates/symbol/details.html.nunj +62 -0
- package/templates/symbol/extended-by.html.nunj +17 -0
- package/templates/symbol/header.html.nunj +22 -0
- package/templates/symbol/members.html.nunj +303 -0
- package/templates/symbol/page.html.nunj +76 -0
- package/templates/symbol/see-also.html.nunj +16 -0
- package/engine/.cache/apps/ng-doc/docs/api-documentation/auto-generation/ng-doc.page.mjs +0 -20
- package/engine/.cache/apps/ng-doc/docs/api-documentation/documenting-declarations/ng-doc.page.mjs +0 -20
- package/engine/.cache/apps/ng-doc/docs/api-documentation/rendering-api/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/icons/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/layout/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/page-processors/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/page-skeleton/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/search/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/customization/themes/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/develop/ng-doc.page.mjs +0 -36
- package/engine/.cache/apps/ng-doc/docs/getting-started/configuration/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/getting-started/installation/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/getting-started/migrations/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/getting-started/ssr/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/getting-started/what-is-ng-doc/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/ng-doc.api.mjs +0 -42
- package/engine/.cache/apps/ng-doc/docs/recipes/ignoring-file-lines/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/recipes/performance/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/writing-content/blockquotes/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/code-blocks/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/demo-and-demo-pane/ng-doc.page.mjs +0 -19
- package/engine/.cache/apps/ng-doc/docs/writing-content/images-videos-and-embeds/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/keywords/ng-doc.page.mjs +0 -17
- package/engine/.cache/apps/ng-doc/docs/writing-content/mermaid-diagrams/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/nunjucks/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/pages-and-categories/ng-doc.page.mjs +0 -18
- package/engine/.cache/apps/ng-doc/docs/writing-content/playground/ng-doc.page.mjs +0 -33
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ANGULAR_BUILD_TARGET = exports.ANGULAR_SERVE_BUILDERS = exports.ANGULAR_BUILD_BUILDERS = void 0;
|
|
4
|
+
exports.viteSetup = viteSetup;
|
|
5
|
+
const schematics_1 = require("@angular-devkit/schematics");
|
|
6
|
+
const tasks_1 = require("@angular-devkit/schematics/tasks");
|
|
7
|
+
const analyze_1 = require("../migrate-to-vite/analyze");
|
|
8
|
+
const dependencies_1 = require("../migrate-to-vite/setup/dependencies");
|
|
9
|
+
const source_1 = require("../migrate-to-vite/setup/source");
|
|
10
|
+
const targets_1 = require("../migrate-to-vite/setup/targets");
|
|
11
|
+
const vite_config_1 = require("../migrate-to-vite/setup/vite-config");
|
|
12
|
+
const workspace_1 = require("../migrate-to-vite/setup/workspace");
|
|
13
|
+
/**
|
|
14
|
+
* The builders whose options the Vite setup reads: Angular's application builder, and Nx's
|
|
15
|
+
* executor that runs it with the same options and a few of its own, which `analyzeProject`
|
|
16
|
+
* reports like any other option.
|
|
17
|
+
*/
|
|
18
|
+
exports.ANGULAR_BUILD_BUILDERS = [
|
|
19
|
+
'@angular/build:application',
|
|
20
|
+
'@angular-devkit/build-angular:application',
|
|
21
|
+
'@nx/angular:application',
|
|
22
|
+
];
|
|
23
|
+
/** The development servers that the Vite development server replaces: Angular's and Nx's. */
|
|
24
|
+
exports.ANGULAR_SERVE_BUILDERS = [
|
|
25
|
+
'@angular/build:dev-server',
|
|
26
|
+
'@angular-devkit/build-angular:dev-server',
|
|
27
|
+
'@nx/angular:dev-server',
|
|
28
|
+
];
|
|
29
|
+
/**
|
|
30
|
+
* The name the Angular build target is kept under. Angular builders such as `unit-test` and
|
|
31
|
+
* `extract-i18n` read the options of a build target, which the Vite target no longer has.
|
|
32
|
+
*/
|
|
33
|
+
exports.ANGULAR_BUILD_TARGET = 'build-angular';
|
|
34
|
+
const CACHE_IGNORE = '/.cache/ng-doc';
|
|
35
|
+
/**
|
|
36
|
+
* Findings as Markdown list items, each once: analyze reports some once per configuration.
|
|
37
|
+
* @param findings - The findings to list.
|
|
38
|
+
*/
|
|
39
|
+
function list(findings) {
|
|
40
|
+
return [...new Set(findings.map((finding) => `- \`${finding.subject}\`: ${finding.message}`))];
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Sets up the Vite engine for a project that builds with Angular's application builder (or Nx's
|
|
44
|
+
* executor that runs it): the `vite.config.mjs` of the project, the `vite-application` and
|
|
45
|
+
* `vite-dev-server` targets, the server entry, the dependencies and `.gitignore`. It reads the build target the same way
|
|
46
|
+
* `migrate-to-vite` reads a legacy one, and refuses what that schematic refuses. `ng add` runs it
|
|
47
|
+
* after the NgDoc styles, assets and providers are in place.
|
|
48
|
+
* @param options - The schematic options.
|
|
49
|
+
*/
|
|
50
|
+
function viteSetup(options) {
|
|
51
|
+
return (tree, context) => {
|
|
52
|
+
let projects;
|
|
53
|
+
try {
|
|
54
|
+
projects = (0, workspace_1.readWorkspaceProjects)(tree);
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
throw new schematics_1.SchematicsException(`[NGDOC_VITE_SETUP_WORKSPACE] The workspace file could not be read (${error instanceof Error ? error.message : error}). Fix it, or run \`ng add @ng-doc/add --engine legacy\`.`);
|
|
58
|
+
}
|
|
59
|
+
const project = projects.find((item) => item.name === options.project);
|
|
60
|
+
if (!project) {
|
|
61
|
+
throw new schematics_1.SchematicsException(`[NGDOC_VITE_SETUP_PROJECT] Project "${options.project}" does not exist.`);
|
|
62
|
+
}
|
|
63
|
+
const build = project.targets['build'];
|
|
64
|
+
const builder = (0, workspace_1.targetBuilder)(build);
|
|
65
|
+
if (builder === targets_1.VITE_APPLICATION_BUILDER) {
|
|
66
|
+
context.logger.info(`Project "${project.name}" already builds with the Vite engine (${targets_1.VITE_APPLICATION_BUILDER}); nothing to change.`);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const blocked = (findings) => {
|
|
70
|
+
throw new schematics_1.SchematicsException([
|
|
71
|
+
`[NGDOC_VITE_SETUP_BLOCKED] Project "${project.name}" was not set up with the Vite engine, and no file of the project was changed:`,
|
|
72
|
+
...list(findings),
|
|
73
|
+
'Resolve these and run `ng add @ng-doc/add` again, or run `ng add @ng-doc/add --engine legacy` to use the legacy builders.',
|
|
74
|
+
].join('\n'));
|
|
75
|
+
};
|
|
76
|
+
if (!build || !exports.ANGULAR_BUILD_BUILDERS.includes(builder ?? '')) {
|
|
77
|
+
blocked([
|
|
78
|
+
{
|
|
79
|
+
level: 'blocking',
|
|
80
|
+
subject: 'build',
|
|
81
|
+
message: build
|
|
82
|
+
? `uses \`${builder ?? 'no builder'}\`, not Angular's application builder (${exports.ANGULAR_BUILD_BUILDERS.map((name) => `\`${name}\``).join(', ')}), whose options the Vite engine reads.`
|
|
83
|
+
: 'does not exist.',
|
|
84
|
+
},
|
|
85
|
+
]);
|
|
86
|
+
}
|
|
87
|
+
const serveTarget = project.targets['serve'];
|
|
88
|
+
const serveName = exports.ANGULAR_SERVE_BUILDERS.includes((0, workspace_1.targetBuilder)(serveTarget) ?? '')
|
|
89
|
+
? 'serve'
|
|
90
|
+
: undefined;
|
|
91
|
+
const plan = (0, analyze_1.analyzeProject)(tree, project, 'build', serveName, { keptBuildName: exports.ANGULAR_BUILD_TARGET }, (0, workspace_1.builderKey)(build));
|
|
92
|
+
const configFile = plan.setup.configFile;
|
|
93
|
+
if (tree.exists(configFile)) {
|
|
94
|
+
plan.findings.push({
|
|
95
|
+
level: 'blocking',
|
|
96
|
+
subject: configFile,
|
|
97
|
+
message: 'already exists. Move it away first.',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
if (project.targets[exports.ANGULAR_BUILD_TARGET]) {
|
|
101
|
+
plan.findings.push({
|
|
102
|
+
level: 'blocking',
|
|
103
|
+
subject: exports.ANGULAR_BUILD_TARGET,
|
|
104
|
+
message: 'already exists, so the Angular build target cannot be kept under that name.',
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
if (serveTarget && !serveName) {
|
|
108
|
+
plan.findings.push({
|
|
109
|
+
level: 'manual',
|
|
110
|
+
subject: 'serve',
|
|
111
|
+
message: `uses \`${(0, workspace_1.targetBuilder)(serveTarget) ?? 'no builder'}\` and was left as it is. Use \`${targets_1.VITE_DEV_SERVER_BUILDER}\` with \`"configFile": "${configFile}"\` to serve the site.`,
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
const blocking = plan.findings.filter((finding) => finding.level === 'blocking');
|
|
115
|
+
if (blocking.length)
|
|
116
|
+
blocked(blocking);
|
|
117
|
+
// The Angular target keeps its options for the builders that read them; the Vite targets take
|
|
118
|
+
// the names `ng build` and `ng serve` run.
|
|
119
|
+
(0, workspace_1.writeTarget)(tree, project, exports.ANGULAR_BUILD_TARGET, plan.build.legacy, 'build');
|
|
120
|
+
(0, workspace_1.writeTarget)(tree, project, 'build', plan.build.next);
|
|
121
|
+
if (plan.serve)
|
|
122
|
+
(0, workspace_1.writeTarget)(tree, project, 'serve', plan.serve.next);
|
|
123
|
+
// The serve target is replaced by the Vite development server, which has no build target: an
|
|
124
|
+
// explicit `buildTarget` in its options must not turn it back into an Angular target.
|
|
125
|
+
const retargets = plan.retargets.filter((retarget) => retarget.target !== serveName);
|
|
126
|
+
for (const retarget of retargets) {
|
|
127
|
+
const target = project.targets[retarget.target];
|
|
128
|
+
if (target) {
|
|
129
|
+
(0, workspace_1.writeTarget)(tree, project, retarget.target, (0, workspace_1.withBuildTarget)(target, retarget.after));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
const changes = [
|
|
133
|
+
`- \`build\` runs \`${targets_1.VITE_APPLICATION_BUILDER}\`${plan.serve ? ` and \`serve\` runs \`${targets_1.VITE_DEV_SERVER_BUILDER}\`` : ''}, with \`${configFile}\`.`,
|
|
134
|
+
`- The Angular build options stay in \`${exports.ANGULAR_BUILD_TARGET}\`${retargets.length
|
|
135
|
+
? `, which ${retargets.map((retarget) => `\`${retarget.target}\``).join(', ')} now read${retargets.length === 1 ? 's' : ''}`
|
|
136
|
+
: ''}.`,
|
|
137
|
+
];
|
|
138
|
+
tree.create(configFile, (0, vite_config_1.renderNgDocViteConfig)(plan.setup, [
|
|
139
|
+
`The Vite configuration of the NgDoc site "${project.name}", generated by \`ng add @ng-doc/add\``,
|
|
140
|
+
'from its build target. The vite-application and vite-dev-server targets run it. Edit it freely.',
|
|
141
|
+
]));
|
|
142
|
+
changes.push(`- Created \`${configFile}\`.`);
|
|
143
|
+
// The server entry waits for NgDoc content before a page is prerendered.
|
|
144
|
+
const serverEntry = plan.setup.server;
|
|
145
|
+
if (serverEntry && tree.exists(serverEntry)) {
|
|
146
|
+
const text = tree.readText(serverEntry);
|
|
147
|
+
const wrapped = (0, source_1.wrapServerEntry)(serverEntry, text);
|
|
148
|
+
if (wrapped === undefined) {
|
|
149
|
+
plan.findings.push({
|
|
150
|
+
level: 'manual',
|
|
151
|
+
subject: serverEntry,
|
|
152
|
+
message: "Wrap the default export with `withNgDocContentReady` from '@ng-doc/app/helpers', so prerendering waits for the page content.",
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
else if (wrapped !== text) {
|
|
156
|
+
tree.overwrite(serverEntry, wrapped);
|
|
157
|
+
changes.push(`- Wrapped the default export of \`${serverEntry}\` with \`withNgDocContentReady\`.`);
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
if (!tree.exists('.gitignore')) {
|
|
161
|
+
plan.findings.push({
|
|
162
|
+
level: 'manual',
|
|
163
|
+
subject: '.gitignore',
|
|
164
|
+
message: `does not exist; keep \`${CACHE_IGNORE}\` out of version control.`,
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
else if ((0, dependencies_1.addGitIgnoreLine)(tree, CACHE_IGNORE)) {
|
|
168
|
+
changes.push(`- Added \`${CACHE_IGNORE}\` to \`.gitignore\`.`);
|
|
169
|
+
}
|
|
170
|
+
// A generated folder the engine did not write stops the first build (OUTPUT_UNOWNED_COLLISION).
|
|
171
|
+
const output = tree.getDir(plan.setup.outputRoot);
|
|
172
|
+
if (output.subfiles.length || output.subdirs.length) {
|
|
173
|
+
plan.findings.push({
|
|
174
|
+
level: 'manual',
|
|
175
|
+
subject: plan.setup.outputRoot,
|
|
176
|
+
message: 'already exists. Delete it before the first build: the Vite engine refuses files it did not write.',
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
const { added, mismatches } = (0, dependencies_1.addNgDocViteDependencies)(tree);
|
|
180
|
+
for (const [name, version] of Object.entries(added)) {
|
|
181
|
+
changes.push(`- Added \`${name}@${version}\` to \`devDependencies\`.`);
|
|
182
|
+
}
|
|
183
|
+
for (const mismatch of mismatches) {
|
|
184
|
+
// A Vite the engine refuses to start with is a warning, not a note among the changes.
|
|
185
|
+
if ((0, dependencies_1.isEnforced)(mismatch.name))
|
|
186
|
+
context.logger.warn((0, dependencies_1.dependencyMismatchText)(mismatch));
|
|
187
|
+
else
|
|
188
|
+
changes.push(`- ${(0, dependencies_1.dependencyMismatchText)(mismatch)}`);
|
|
189
|
+
}
|
|
190
|
+
if (Object.keys(added).length && !options.skipInstall) {
|
|
191
|
+
context.addTask(new tasks_1.NodePackageInstallTask());
|
|
192
|
+
}
|
|
193
|
+
const manual = plan.findings.filter((finding) => finding.level === 'manual');
|
|
194
|
+
// Options without any effect under Vite; `assets`, for example, is only partly dropped.
|
|
195
|
+
const used = new Set(plan.findings
|
|
196
|
+
.filter((finding) => finding.level !== 'dropped')
|
|
197
|
+
.map((finding) => finding.subject));
|
|
198
|
+
const dropped = plan.findings
|
|
199
|
+
.filter((finding) => finding.level === 'dropped' &&
|
|
200
|
+
finding.subject.startsWith('build.') &&
|
|
201
|
+
!used.has(finding.subject))
|
|
202
|
+
.map((finding) => `\`${finding.subject}\``);
|
|
203
|
+
context.logger.info([`Project "${project.name}" builds with the NgDoc Vite engine:`, ...changes].join('\n'));
|
|
204
|
+
if (dropped.length) {
|
|
205
|
+
context.logger.info(`Build options the Vite engine does not use: ${[...new Set(dropped)].join(', ')}.`);
|
|
206
|
+
}
|
|
207
|
+
if (manual.length) {
|
|
208
|
+
context.logger.warn(['Needs a manual change:', ...list(manual)].join('\n'));
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/builder/schematics/vite-setup/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../../../libs/builder/schematics/vite-setup/schema.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/schema",
|
|
3
|
+
"$id": "NgDocViteSetup",
|
|
4
|
+
"title": "Set up the NgDoc Vite engine for a new project",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"project": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"description": "The project to set up. Its build target must use Angular's application builder or Nx's @nx/angular:application executor."
|
|
10
|
+
},
|
|
11
|
+
"skipInstall": {
|
|
12
|
+
"type": "boolean",
|
|
13
|
+
"default": false,
|
|
14
|
+
"description": "Do not install the added dependencies."
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"required": ["project"],
|
|
18
|
+
"additionalProperties": false
|
|
19
|
+
}
|
package/scripts/restore-theme.js
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
|
+
// Restores the reader's theme before the application starts. An empty stored id is the light
|
|
2
|
+
// theme: it removes a `data-theme` that index.html sets by default.
|
|
1
3
|
const themeId = localStorage.getItem('ng-doc-theme-id');
|
|
2
4
|
|
|
3
|
-
if (themeId) {
|
|
5
|
+
if (themeId !== null) {
|
|
4
6
|
const documentElement = document.documentElement;
|
|
5
|
-
|
|
7
|
+
|
|
8
|
+
if (themeId) {
|
|
9
|
+
documentElement.setAttribute('data-theme', themeId);
|
|
10
|
+
} else {
|
|
11
|
+
documentElement.removeAttribute('data-theme');
|
|
12
|
+
}
|
|
6
13
|
}
|
|
@@ -7,10 +7,12 @@
|
|
|
7
7
|
{% import "helpers/modifier.html.nunj" as modifierMacro %}
|
|
8
8
|
|
|
9
9
|
{% block overview %}
|
|
10
|
+
{#- The new engine sets `hideProtectedMembers` for `api.protectedMembers: false`; the legacy engine never does. #}
|
|
11
|
+
{%- set memberScopes = ["public"] if hideProtectedMembers else ["public", "protected"] -%}
|
|
10
12
|
{%- set constructors = declaration.getConstructors() | filterByScope("public") | excludeByJsDocTags('internal') -%}
|
|
11
|
-
{%- set allProperties = declaration | getClassProperties | excludeByJsDocTags('internal') | filterByScope(
|
|
12
|
-
{%- set allMethods = declaration | getClassMethods | excludeByJsDocTags('internal') | filterByScope(
|
|
13
|
-
{%- set allAccessors = declaration | getClassAccessors | excludeByJsDocTags('internal') | filterByScope(
|
|
13
|
+
{%- set allProperties = declaration | getClassProperties | excludeByJsDocTags('internal') | filterByScope(memberScopes) | filterUselessMembers | sortByNodesName -%}
|
|
14
|
+
{%- set allMethods = declaration | getClassMethods | excludeByJsDocTags('internal') | filterByScope(memberScopes) | filterUselessMembers | sortByNodesName -%}
|
|
15
|
+
{%- set allAccessors = declaration | getClassAccessors | excludeByJsDocTags('internal') | filterByScope(memberScopes) | filterUselessMembers | sortByNodesName -%}
|
|
14
16
|
|
|
15
17
|
{%- set staticProperties = allProperties | filterByStatic(true) -%}
|
|
16
18
|
{%- set staticAccessors = allAccessors | filterByStatic(true) -%}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import {Routes} from '@angular/router';
|
|
3
|
+
{%- for category in categories %}
|
|
4
|
+
import {{ category[0] }} from '{{ category[1] }}';
|
|
5
|
+
{%- endfor %}
|
|
6
|
+
|
|
7
|
+
// The URL path of the demo pages, which the Vite host serves the demo application's page under.
|
|
8
|
+
export const NG_DOC_DEMO_PATH = '{{ demoPath }}';
|
|
9
|
+
|
|
10
|
+
// Every demo page, which a build without prerendering writes as a copy of the demo application's
|
|
11
|
+
// page, so that static hosts serve it without a fallback.
|
|
12
|
+
export const NG_DOC_DEMO_PAGES: string[] = {{ demoPages | dump }};
|
|
13
|
+
|
|
14
|
+
// The routes of the demo application: one lazy route per guide with demo pages, under the
|
|
15
|
+
// providers of its categories, as on the documentation pages.
|
|
16
|
+
export const NG_DOC_DEMO_ROUTES: Routes = [
|
|
17
|
+
{%- for page in pages %}
|
|
18
|
+
{
|
|
19
|
+
path: '{{ page.path | replace("\\", "\\\\") | replace("'", "\\'") | replace("\n", "\\n") }}',
|
|
20
|
+
{%- if page.categories.length %}
|
|
21
|
+
providers: [
|
|
22
|
+
{%- for id in page.categories %}
|
|
23
|
+
...({{ id }}.providers ?? []),
|
|
24
|
+
{%- endfor %}
|
|
25
|
+
],
|
|
26
|
+
{%- endif %}
|
|
27
|
+
loadChildren: () => import('{{ page.importPath }}'),
|
|
28
|
+
},
|
|
29
|
+
{%- endfor %}
|
|
30
|
+
];
|
|
31
|
+
|
|
32
|
+
// The module of `demoProviders`, which only the demo application imports.
|
|
33
|
+
{%- if providersImport %}
|
|
34
|
+
export const NG_DOC_DEMO_PROVIDERS = () => import('{{ providersImport }}');
|
|
35
|
+
{%- else %}
|
|
36
|
+
export const NG_DOC_DEMO_PROVIDERS = undefined;
|
|
37
|
+
{%- endif %}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import {Routes} from '@angular/router';
|
|
3
|
+
import {NgDocDemoHostComponent} from '@ng-doc/app/demo-app';
|
|
4
|
+
import entry from '{{ entryImport }}';
|
|
5
|
+
|
|
6
|
+
// The demo pages of one guide: one route per demo, under the page's providers, as the demos have
|
|
7
|
+
// them on the page.
|
|
8
|
+
const routes: Routes = [{
|
|
9
|
+
path: '',
|
|
10
|
+
providers: [...(entry.providers ?? [])],
|
|
11
|
+
children: [
|
|
12
|
+
{%- for demo in demos %}
|
|
13
|
+
{
|
|
14
|
+
path: '{{ demo.name }}',
|
|
15
|
+
component: NgDocDemoHostComponent,
|
|
16
|
+
title: `{{ demo.title | toTemplateString }}`,
|
|
17
|
+
data: {ngDocDemo: entry.demos?.['{{ demo.name }}']},
|
|
18
|
+
},
|
|
19
|
+
{%- endfor %}
|
|
20
|
+
],
|
|
21
|
+
}];
|
|
22
|
+
|
|
23
|
+
export default routes;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
{%- macro render(content, attributeOverride) -%}
|
|
2
2
|
<span class="ng-doc-badge" indexable="false"
|
|
3
|
-
data-content="{{ attributeOverride if attributeOverride else content }}">{{ content
|
|
3
|
+
data-content="{{ attributeOverride if attributeOverride else content }}">{{ content }}</span>
|
|
4
4
|
{%- endmacro -%}
|
|
@@ -1,32 +1,28 @@
|
|
|
1
1
|
{% macro render(member) %}
|
|
2
2
|
{% set deprecated = member | getJsDocTag('deprecated') %}
|
|
3
3
|
{% if deprecated %}
|
|
4
|
-
<ng-doc-blockquote type="warning" icon="activity">
|
|
5
|
-
<b>Deprecated</b>
|
|
4
|
+
<ng-doc-blockquote type="warning" icon="activity" label="Deprecated">
|
|
6
5
|
{{ deprecated }}
|
|
7
6
|
</ng-doc-blockquote>
|
|
8
7
|
{% endif %}
|
|
9
8
|
|
|
10
9
|
{% set experimental = member | getJsDocTag('experimental') %}
|
|
11
10
|
{% if experimental %}
|
|
12
|
-
<ng-doc-blockquote type="alert" icon="activity">
|
|
13
|
-
<b>Experimental</b>
|
|
11
|
+
<ng-doc-blockquote type="alert" icon="activity" label="Experimental">
|
|
14
12
|
{{ experimental }}
|
|
15
13
|
</ng-doc-blockquote>
|
|
16
14
|
{% endif %}
|
|
17
15
|
|
|
18
16
|
{% set alpha = member | getJsDocTag('alpha') %}
|
|
19
17
|
{% if alpha %}
|
|
20
|
-
<ng-doc-blockquote type="alert" icon="activity">
|
|
21
|
-
<b>Alpha</b>
|
|
18
|
+
<ng-doc-blockquote type="alert" icon="activity" label="Alpha">
|
|
22
19
|
{{ alpha }}
|
|
23
20
|
</ng-doc-blockquote>
|
|
24
21
|
{% endif %}
|
|
25
22
|
|
|
26
23
|
{% set beta = member | getJsDocTag('beta') %}
|
|
27
24
|
{% if beta %}
|
|
28
|
-
<ng-doc-blockquote type="warning" icon="activity">
|
|
29
|
-
<b>Beta</b>
|
|
25
|
+
<ng-doc-blockquote type="warning" icon="activity" label="Beta">
|
|
30
26
|
{{ beta }}
|
|
31
27
|
</ng-doc-blockquote>
|
|
32
28
|
{% endif %}
|
package/templates/index.ts.nunj
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export * from './context';
|
|
2
2
|
export * from './routes';
|
|
3
|
+
{% if demoApplication -%}
|
|
4
|
+
// Keeps the demo application's modules, the demo routes and the module of `demoProviders`, in the
|
|
5
|
+
// application's Angular compilation, which compiles them: only the demo application imports them.
|
|
6
|
+
import type {} from './demo-app';
|
|
7
|
+
{% endif -%}
|
|
@@ -3,27 +3,50 @@ import {ChangeDetectionStrategy, Component} from '@angular/core';
|
|
|
3
3
|
import {Routes} from '@angular/router';
|
|
4
4
|
import {NgDocPageWrapperComponent} from '@ng-doc/app';
|
|
5
5
|
import {NgDocPageType} from '@ng-doc/core';
|
|
6
|
+
{%- if headerContentSourceImport %}
|
|
7
|
+
import {ɵwithNgDocContent} from '@ng-doc/app';
|
|
8
|
+
import headerContentSource from '{{ headerContentSourceImport }}';
|
|
9
|
+
{%- endif %}
|
|
6
10
|
|
|
11
|
+
{%- if headerContentSourceImport %}
|
|
12
|
+
const headerContent: string = '';
|
|
13
|
+
{%- else %}
|
|
7
14
|
const headerContent: string = `{{ headerContent | toTemplateString }}`
|
|
15
|
+
{%- endif %}
|
|
8
16
|
|
|
9
17
|
@Component({
|
|
10
18
|
selector: 'ng-doc-page-wrapper-{{ id }}',
|
|
11
|
-
template: `<ng-doc-page-wrapper [routes]="routes" [headerContent]="headerContent" [hasBreadcrumb]="hasBreadcrumb" [pageType]="pageType"></ng-doc-page-wrapper>`,
|
|
19
|
+
template: `<ng-doc-page-wrapper [routes]="routes" [headerContent]="headerContent"{%- if headerContentSourceImport %} [headerContentSource]="headerContentSource"{%- endif %} [hasBreadcrumb]="hasBreadcrumb" [pageType]="pageType"></ng-doc-page-wrapper>`,
|
|
12
20
|
imports: [NgDocPageWrapperComponent],
|
|
13
21
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
14
22
|
})
|
|
15
23
|
export class PageWrapperComponent {
|
|
16
24
|
routes = routes[0].children!;
|
|
17
25
|
headerContent = headerContent;
|
|
26
|
+
{%- if headerContentSourceImport %}
|
|
27
|
+
headerContentSource = headerContentSource;
|
|
28
|
+
{%- endif %}
|
|
18
29
|
pageType: NgDocPageType = '{{ pageType }}';
|
|
19
30
|
hasBreadcrumb = {{ hasBreadcrumb }};
|
|
20
31
|
}
|
|
32
|
+
{%- if headerContentSourceImport %}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// The router shows the page only once its header has loaded, so the previous page stays on
|
|
36
|
+
// screen instead of an empty page.
|
|
37
|
+
const routes: Routes = [ɵwithNgDocContent({
|
|
38
|
+
{%- else %}
|
|
21
39
|
|
|
22
40
|
|
|
23
41
|
const routes: Routes = [{
|
|
42
|
+
{%- endif %}
|
|
24
43
|
path: '',
|
|
25
44
|
component: PageWrapperComponent,
|
|
26
|
-
title:
|
|
45
|
+
{#- No title: the route inherits the page's title from the route that loads it, and a second
|
|
46
|
+
copy of it would repeat it in a title strategy that joins the titles of the route. #}
|
|
47
|
+
data: {
|
|
48
|
+
ngDocPageType: '{{ pageType }}',
|
|
49
|
+
},
|
|
27
50
|
children: [
|
|
28
51
|
{%- for importPath, entry in entries %}
|
|
29
52
|
{
|
|
@@ -32,10 +55,15 @@ const routes: Routes = [{
|
|
|
32
55
|
title: `{{ entry.title | toTemplateString }}`,
|
|
33
56
|
data: {
|
|
34
57
|
icon: '{{ entry.entry.icon }}',
|
|
58
|
+
ngDocTitle: 'tab',
|
|
35
59
|
}
|
|
36
60
|
},
|
|
37
61
|
{%- endfor %}
|
|
38
62
|
]
|
|
63
|
+
{%- if headerContentSourceImport %}
|
|
64
|
+
}, headerContentSource)]
|
|
65
|
+
{%- else %}
|
|
39
66
|
}]
|
|
67
|
+
{%- endif %}
|
|
40
68
|
|
|
41
69
|
export default routes;
|
package/templates/page.ts.nunj
CHANGED
|
@@ -12,8 +12,16 @@ import {PLAYGROUND_COMPONENTS, PLAYGROUND_PROVIDERS} from '{{ metadata.outDir |
|
|
|
12
12
|
{%- if demoAssetsPath %}
|
|
13
13
|
import demoAssets from '{{ metadata.outDir | createImportPath(demoAssetsPath) }}';
|
|
14
14
|
{%- endif %}
|
|
15
|
+
{%- if contentSourceImport %}
|
|
16
|
+
import {ɵwithNgDocContent} from '@ng-doc/app';
|
|
17
|
+
import pageContentSource from '{{ contentSourceImport }}';
|
|
18
|
+
{%- endif %}
|
|
15
19
|
|
|
20
|
+
{%- if contentSourceImport %}
|
|
21
|
+
const pageContent: string = '';
|
|
22
|
+
{%- else %}
|
|
16
23
|
const pageContent: string = `{{ content | toTemplateString }}`
|
|
24
|
+
{%- endif %}
|
|
17
25
|
|
|
18
26
|
@Component({
|
|
19
27
|
selector: 'ng-doc-page-{{ id }}',
|
|
@@ -41,6 +49,9 @@ const pageContent: string = `{{ content | toTemplateString }}`
|
|
|
41
49
|
export class PageComponent extends NgDocRootPage {
|
|
42
50
|
readonly pageType: NgDocPageType = '{{ pageType }}';
|
|
43
51
|
readonly pageContent: string = pageContent;
|
|
52
|
+
{%- if contentSourceImport %}
|
|
53
|
+
readonly pageContentSource = pageContentSource;
|
|
54
|
+
{%- endif %}
|
|
44
55
|
{%- if editSourceFileUrl %}
|
|
45
56
|
readonly editSourceFileUrl: string = '{{ editSourceFileUrl }}';
|
|
46
57
|
{%- endif %}
|
|
@@ -53,11 +64,32 @@ export class PageComponent extends NgDocRootPage {
|
|
|
53
64
|
{%- if demoAssetsPath %}
|
|
54
65
|
readonly demoAssets: NgDocDemoAssets = demoAssets;
|
|
55
66
|
{%- endif %}
|
|
67
|
+
{#- The demo pages of the guide (Vite engine), and whether its demos are isolated by default. #}
|
|
68
|
+
{%- if demoRoute %}
|
|
69
|
+
readonly demoRoute: string = '{{ demoRoute | replace("\\", "\\\\") | replace("'", "\\'") | replace("\n", "\\n") }}';
|
|
70
|
+
{%- if isolatedDemos %}
|
|
71
|
+
readonly isolatedDemos: boolean = true;
|
|
72
|
+
{%- endif %}
|
|
73
|
+
{%- endif %}
|
|
56
74
|
|
|
57
75
|
constructor() {
|
|
58
76
|
super();
|
|
59
77
|
}
|
|
60
78
|
}
|
|
79
|
+
{#- The route has no title of its own: it inherits the title of its tab route, so a page's own
|
|
80
|
+
`route.title` is the only title here and wins over the generated one. #}
|
|
81
|
+
{%- if contentSourceImport %}
|
|
82
|
+
|
|
83
|
+
// The router shows the page only once its content has loaded, so the previous page stays on
|
|
84
|
+
// screen instead of an empty page.
|
|
85
|
+
const routes: Routes = [ɵwithNgDocContent({
|
|
86
|
+
{%- if entryPath %}
|
|
87
|
+
...(isRoute(entry.route) ? entry.route : {}),
|
|
88
|
+
{%- endif %}
|
|
89
|
+
path: '',
|
|
90
|
+
component: PageComponent,
|
|
91
|
+
}, pageContentSource)]
|
|
92
|
+
{%- else %}
|
|
61
93
|
|
|
62
94
|
const routes: Routes = [{
|
|
63
95
|
{%- if entryPath %}
|
|
@@ -65,8 +97,8 @@ const routes: Routes = [{
|
|
|
65
97
|
{%- endif %}
|
|
66
98
|
path: '',
|
|
67
99
|
component: PageComponent,
|
|
68
|
-
title: `{{ metadata.title | toTemplateString }}`,
|
|
69
100
|
}]
|
|
101
|
+
{%- endif %}
|
|
70
102
|
|
|
71
103
|
export default routes;
|
|
72
104
|
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
|
|
6
6
|
{{ tagMacro.render(scope.name, "ng-doc-scope") }}
|
|
7
7
|
<span class="ng-doc-inline-delimiter" indexable="false">/</span>
|
|
8
|
-
{{ tagMacro.render(declarationType) if declarationType }}
|
|
8
|
+
{{ tagMacro.render("Type alias" if declarationType == "TypeAlias" else declarationType, declarationType) if declarationType }}
|
|
9
9
|
</div>
|
|
10
10
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
|
-
import {ChangeDetectionStrategy, Component,
|
|
2
|
+
import {ChangeDetectionStrategy, Component, viewChild, ViewContainerRef} from '@angular/core';
|
|
3
3
|
import {NgDocBasePlayground, providePlaygroundDemo} from '@ng-doc/app';
|
|
4
4
|
// noinspection ES6UnusedImports
|
|
5
5
|
import pageEntity from '{{ entryImportPath }}';
|
|
@@ -18,6 +18,9 @@ import {CommonModule} from '@angular/common';
|
|
|
18
18
|
|
|
19
19
|
@Component({
|
|
20
20
|
selector: 'ng-doc-playground-{{ index }}',
|
|
21
|
+
{#- Two pages with the same playground would otherwise compile to identical components, which
|
|
22
|
+
Angular gives the same component ID (NG0912). The page route keeps them apart. #}
|
|
23
|
+
host: {'data-ng-doc-playground-page': '{{ pageRoute }}'},
|
|
21
24
|
template: `
|
|
22
25
|
{{ template }}
|
|
23
26
|
`,
|
|
@@ -35,17 +38,13 @@ import {CommonModule} from '@angular/common';
|
|
|
35
38
|
export class {{ comp.name }} extends NgDocBasePlayground {
|
|
36
39
|
static readonly selector: string = '{{ comp.selector }}';
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
readonly playground: Type<any>;
|
|
41
|
+
readonly target = pageEntity.playgrounds['{{ id }}'].target;
|
|
40
42
|
|
|
41
|
-
|
|
42
|
-
readonly viewContainerRef: ViewContainerRef;
|
|
43
|
+
readonly playground = viewChild(pageEntity.playgrounds['{{ id }}'].target);
|
|
43
44
|
|
|
44
|
-
readonly
|
|
45
|
+
readonly viewContainerRef = viewChild(pageEntity.playgrounds['{{ id }}'].target, {read: ViewContainerRef});
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
super(pageEntity.playgrounds['{{ id }}'].target);
|
|
48
|
-
}
|
|
47
|
+
readonly configData: any = pageEntity.playgrounds['{{ id }}'].data;
|
|
49
48
|
}
|
|
50
49
|
{%- set index = index + 1 -%}
|
|
51
50
|
{%- endfor %}
|
package/templates/routes.ts.nunj
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// @ts-nocheck
|
|
2
2
|
import {Routes} from '@angular/router';
|
|
3
|
+
{#- Route strings are single-quoted string literals: backslashes, quotes and line breaks are
|
|
4
|
+
escaped, so a route or segment with one cannot end the literal. -#}
|
|
3
5
|
{%- macro categoryImport(entry) -%}
|
|
4
6
|
{%- if entry.item.isCategory %}
|
|
5
7
|
import {{ entry.item.id }} from '{{ curDir | createImportPath(entry.item.path) }}';
|
|
@@ -16,8 +18,15 @@ import {{ entry.item.id }} from '{{ curDir | createImportPath(entry.item.path) }
|
|
|
16
18
|
export const NG_DOC_ROUTING: Routes = [
|
|
17
19
|
{%- macro route(entry) %}
|
|
18
20
|
{
|
|
19
|
-
path: '{{ entry.item.route }}',
|
|
21
|
+
path: '{{ entry.item.route | replace("\\", "\\\\") | replace("'", "\\'") | replace("\n", "\\n") }}',
|
|
20
22
|
title: `{{ entry.item.title | toTemplateString }}`,
|
|
23
|
+
{#- `ngDocTitle` names what the title belongs to, so a title strategy can compose the titles of
|
|
24
|
+
the route without repeating one (`provideNgDocTitle`). #}
|
|
25
|
+
data: {ngDocTitle: '{{ 'category' if entry.item.isCategory else 'page' }}'
|
|
26
|
+
{%- if entry.item.apiListSegment is defined -%}
|
|
27
|
+
, ngDocApiListSegment: '{{ entry.item.apiListSegment | replace("\\", "\\\\") | replace("'", "\\'") | replace("\n", "\\n") }}'
|
|
28
|
+
{%- endif -%}
|
|
29
|
+
},
|
|
21
30
|
{%- if entry.item.isCategory %}
|
|
22
31
|
providers: [
|
|
23
32
|
...({{ entry.item.id }}.providers ?? []),
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
Decorator chips with the per-decorator colour hook: `data-ng-doc-decorator` names the
|
|
3
|
+
decorator, so a site colours `@Component`, `@Injectable` or `@Input` chips from their
|
|
4
|
+
`--ng-doc-*-decorator-background` variables.
|
|
5
|
+
-#}
|
|
6
|
+
{% macro chip(name) -%}
|
|
7
|
+
<code data-ng-doc-decorator="{{ name | escape }}">{{ '@' + name | escape }}</code>
|
|
8
|
+
{%- endmacro %}
|
|
9
|
+
|
|
10
|
+
{% macro render(decorators) -%}
|
|
11
|
+
<span class="ng-doc-decorators-group">{% for decorator in decorators %}{{ chip(decorator.getName()) }}{% endfor %}</span>
|
|
12
|
+
{%- endmacro %}
|