@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,63 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
import {ChangeDetectionStrategy, Component, viewChild, ViewContainerRef} from '@angular/core';
|
|
3
|
+
import {NgDocBasePlayground, providePlaygroundDemo} from '@ng-doc/app';
|
|
4
|
+
// noinspection ES6UnusedImports
|
|
5
|
+
import pageEntity from '{{ entryImportPath }}';
|
|
6
|
+
import {CommonModule} from '@angular/common';
|
|
7
|
+
|
|
8
|
+
{%- set components = [] %}
|
|
9
|
+
{%- set index = 1 %}
|
|
10
|
+
{%- set playgrounds = playgroundMetadata %}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
{%- for id, metadata in playgrounds -%}
|
|
14
|
+
|
|
15
|
+
{%- for selector, template in metadata.templateForComponents %}
|
|
16
|
+
{%- set comp = {id: id, name: 'PlaygroundComponent' + index, selector: selector } %}
|
|
17
|
+
{%- set components = (components.push(comp), components) %}
|
|
18
|
+
|
|
19
|
+
@Component({
|
|
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 }}'},
|
|
24
|
+
template: `
|
|
25
|
+
{{ template }}
|
|
26
|
+
`,
|
|
27
|
+
imports: [
|
|
28
|
+
CommonModule,
|
|
29
|
+
{%- if hasImports %}
|
|
30
|
+
...pageEntity.imports,
|
|
31
|
+
{%- endif %}
|
|
32
|
+
{%- if metadata.standalone %}
|
|
33
|
+
pageEntity.playgrounds['{{ id }}'].target,
|
|
34
|
+
{%- endif %}
|
|
35
|
+
],
|
|
36
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
|
+
})
|
|
38
|
+
export class {{ comp.name }} extends NgDocBasePlayground {
|
|
39
|
+
static readonly selector: string = '{{ comp.selector }}';
|
|
40
|
+
|
|
41
|
+
readonly target = pageEntity.playgrounds['{{ id }}'].target;
|
|
42
|
+
|
|
43
|
+
readonly playground = viewChild(pageEntity.playgrounds['{{ id }}'].target);
|
|
44
|
+
|
|
45
|
+
readonly viewContainerRef = viewChild(pageEntity.playgrounds['{{ id }}'].target, {read: ViewContainerRef});
|
|
46
|
+
|
|
47
|
+
readonly configData: any = pageEntity.playgrounds['{{ id }}'].data;
|
|
48
|
+
}
|
|
49
|
+
{%- set index = index + 1 -%}
|
|
50
|
+
{%- endfor %}
|
|
51
|
+
{%- endfor %}
|
|
52
|
+
|
|
53
|
+
export const PLAYGROUND_COMPONENTS = [
|
|
54
|
+
{%- for comp in components %}
|
|
55
|
+
{{ comp.name }},
|
|
56
|
+
{%- endfor %}
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
export const PLAYGROUND_PROVIDERS = [
|
|
60
|
+
{%- for comp in components %}
|
|
61
|
+
providePlaygroundDemo('{{ comp.id }}', {{ comp.name }}),
|
|
62
|
+
{%- endfor %}
|
|
63
|
+
];
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
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. -#}
|
|
5
|
+
{%- macro categoryImport(entry) -%}
|
|
6
|
+
{%- if entry.item.isCategory %}
|
|
7
|
+
import {{ entry.item.id }} from '{{ curDir | createImportPath(entry.item.path) }}';
|
|
8
|
+
{%- endif -%}
|
|
9
|
+
{%- for child in entry.children -%}
|
|
10
|
+
{{ categoryImport(child) }}
|
|
11
|
+
{%- endfor -%}
|
|
12
|
+
{%- endmacro -%}
|
|
13
|
+
|
|
14
|
+
{%- for entry in entries -%}
|
|
15
|
+
{{ categoryImport(entry) }}
|
|
16
|
+
{%- endfor %}
|
|
17
|
+
|
|
18
|
+
export const NG_DOC_ROUTING: Routes = [
|
|
19
|
+
{%- macro route(entry) %}
|
|
20
|
+
{
|
|
21
|
+
path: '{{ entry.item.route | replace("\\", "\\\\") | replace("'", "\\'") | replace("\n", "\\n") }}',
|
|
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
|
+
},
|
|
30
|
+
{%- if entry.item.isCategory %}
|
|
31
|
+
providers: [
|
|
32
|
+
...({{ entry.item.id }}.providers ?? []),
|
|
33
|
+
],
|
|
34
|
+
{%- endif %}
|
|
35
|
+
{%- if entry.children.length %}
|
|
36
|
+
children: [{
|
|
37
|
+
path: '',
|
|
38
|
+
redirectTo: '{{ entry.children[0].item.route }}',
|
|
39
|
+
pathMatch: 'full'
|
|
40
|
+
},
|
|
41
|
+
{%- for child in entry.children -%}
|
|
42
|
+
{{ route(child) }}
|
|
43
|
+
{%- endfor -%}
|
|
44
|
+
],
|
|
45
|
+
{%- else %}
|
|
46
|
+
loadChildren: () => import('./{{ curDir | createImportPath(entry.item.outDir + "/page.ts") }}'),
|
|
47
|
+
{%- endif %}
|
|
48
|
+
},
|
|
49
|
+
{%- endmacro %}
|
|
50
|
+
{%- for entry in entries %}
|
|
51
|
+
{{ route(entry) }}
|
|
52
|
+
{%- endfor %}
|
|
53
|
+
];
|
|
@@ -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 %}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
The details of a declaration as a definition list: decorators, selectors, type parameters and
|
|
3
|
+
heritage, the same data as `api/details`. The `rail` variant also names the kind, its modifiers
|
|
4
|
+
and the scope; the page moves it into the right rail.
|
|
5
|
+
-#}
|
|
6
|
+
{% import "helpers/type.html.nunj" as typeMacro %}
|
|
7
|
+
{% import "helpers/tag.html.nunj" as tagMacro %}
|
|
8
|
+
{% import "helpers/declaration-modifiers.html.nunj" as modifiersMacro %}
|
|
9
|
+
{% import "symbol/decorators.html.nunj" as decoratorsMacro %}
|
|
10
|
+
|
|
11
|
+
{% macro render(declaration, scope, variant) %}
|
|
12
|
+
{%- set isClass = Node.isClassDeclaration(declaration) %}
|
|
13
|
+
{%- set decorators = declaration.getDecorators() if isClass else [] %}
|
|
14
|
+
{%- set selectors = declaration | extractSelectors %}
|
|
15
|
+
{%- set typeParameters = declaration.getTypeParameters() if declaration.getTypeParameters else [] %}
|
|
16
|
+
{%- if isClass %}
|
|
17
|
+
{%- set extends = [declaration.getExtends()] if declaration.getExtends() else [] %}
|
|
18
|
+
{%- set implements = declaration.getImplements() %}
|
|
19
|
+
{%- elseif Node.isInterfaceDeclaration(declaration) %}
|
|
20
|
+
{%- set extends = declaration.getExtends() %}
|
|
21
|
+
{%- set implements = [] %}
|
|
22
|
+
{%- else %}
|
|
23
|
+
{%- set extends = [] %}
|
|
24
|
+
{%- set implements = [] %}
|
|
25
|
+
{%- endif %}
|
|
26
|
+
{%- set declarationType = declaration | getDeclarationType %}
|
|
27
|
+
{%- set rail = variant == 'rail' %}
|
|
28
|
+
{%- if rail or decorators.length or selectors.length or typeParameters.length or extends.length or implements.length %}
|
|
29
|
+
{#- The content copy indexes what the per-section layout did (the selectors); the rail copy is
|
|
30
|
+
not indexed. #}
|
|
31
|
+
<dl class="ng-doc-api-details"{% if rail %} data-ng-doc-variant="rail" data-ng-doc-rail-details hidden indexable="false"{% endif %}>
|
|
32
|
+
{%- if rail and declarationType %}
|
|
33
|
+
<dt indexable="false">Kind</dt>
|
|
34
|
+
<dd>{{ tagMacro.render("Type alias" if declarationType == "TypeAlias" else declarationType, declarationType) }}{{ modifiersMacro.render(declaration) }}</dd>
|
|
35
|
+
{%- endif %}
|
|
36
|
+
{%- if decorators.length %}
|
|
37
|
+
<dt indexable="false">Decorators</dt>
|
|
38
|
+
<dd indexable="false">{{ decoratorsMacro.render(decorators) }}</dd>
|
|
39
|
+
{%- endif %}
|
|
40
|
+
{%- if selectors.length %}
|
|
41
|
+
<dt indexable="false">Selectors</dt>
|
|
42
|
+
<dd>{% for selector in selectors %}<code>{{ selector }}</code>{% endfor %}</dd>
|
|
43
|
+
{%- endif %}
|
|
44
|
+
{%- if typeParameters.length %}
|
|
45
|
+
<dt indexable="false">Generic types</dt>
|
|
46
|
+
<dd>{% for typeParameter in typeParameters %}{{ typeMacro.type(typeParameter) }}{% endfor %}</dd>
|
|
47
|
+
{%- endif %}
|
|
48
|
+
{%- if extends.length %}
|
|
49
|
+
<dt indexable="false">Extends</dt>
|
|
50
|
+
<dd>{% for item in extends %}{{ typeMacro.type(item) }}{% endfor %}</dd>
|
|
51
|
+
{%- endif %}
|
|
52
|
+
{%- if implements.length %}
|
|
53
|
+
<dt indexable="false">Implements</dt>
|
|
54
|
+
<dd>{% for item in implements %}{{ typeMacro.type(item) }}{% endfor %}</dd>
|
|
55
|
+
{%- endif %}
|
|
56
|
+
{%- if rail %}
|
|
57
|
+
<dt indexable="false">Scope</dt>
|
|
58
|
+
<dd>{{ scope.name }}</dd>
|
|
59
|
+
{%- endif %}
|
|
60
|
+
</dl>
|
|
61
|
+
{%- endif %}
|
|
62
|
+
{% endmacro %}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
The classes that extend a class, as identifier chips (they no longer sit in See Also). When the
|
|
3
|
+
page has no `@see` tags, the list keeps
|
|
4
|
+
the `see-also` anchor that the per-section layout gave the derived classes, so links and
|
|
5
|
+
keywords to it still resolve.
|
|
6
|
+
-#}
|
|
7
|
+
{% set derived = declaration.getDerivedClasses() if declaration.getDerivedClasses else [] %}
|
|
8
|
+
{% set seeDocs = docNode | getJsDocTags('see') %}
|
|
9
|
+
|
|
10
|
+
{% if derived.length %}
|
|
11
|
+
<dl class="ng-doc-api-extended" indexable="false"{% if not seeDocs.length %} dataSlug="See Also" dataSlugType="heading"{% endif %}>
|
|
12
|
+
<dt>Extended by <span class="ng-doc-members-count">{{ derived.length }}</span></dt>
|
|
13
|
+
<dd>
|
|
14
|
+
{%- for cls in derived %}<code>{{ cls.getName() }}</code>{% endfor -%}
|
|
15
|
+
</dd>
|
|
16
|
+
</dl>
|
|
17
|
+
{% endif %}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
The header of an API page in the symbol view: the scope, the kind chip and the modifiers, the
|
|
3
|
+
name and the status callouts. The details follow the description in the page.
|
|
4
|
+
-#}
|
|
5
|
+
{% import "helpers/status.html.nunj" as statusMacro %}
|
|
6
|
+
{% import "helpers/tag.html.nunj" as tagMacro %}
|
|
7
|
+
{% import "helpers/declaration-modifiers.html.nunj" as modifiersMacro %}
|
|
8
|
+
|
|
9
|
+
<div class="ng-doc-page-tags">
|
|
10
|
+
{% set declarationType = declaration | getDeclarationType %}
|
|
11
|
+
|
|
12
|
+
{{ tagMacro.render(scope.name, "ng-doc-scope") }}
|
|
13
|
+
<span class="ng-doc-inline-delimiter" indexable="false">/</span>
|
|
14
|
+
{{ tagMacro.render("Type alias" if declarationType == "TypeAlias" else declarationType, declarationType) if declarationType }}
|
|
15
|
+
{{ modifiersMacro.render(declaration) }}
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<h1 class="{{ statusMacro.class(docNode) }}">
|
|
19
|
+
{{ declaration.getName() }}
|
|
20
|
+
</h1>
|
|
21
|
+
|
|
22
|
+
{{ statusMacro.render(docNode) }}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
The members of a class or an interface as one table, which the `ng-doc-members` host filters by
|
|
3
|
+
group and name at runtime. Every group row holds the heading and every member row the anchor
|
|
4
|
+
that the per-section layout rendered (same ids, titles and anchor types), so page keywords and
|
|
5
|
+
links do not change. Only the chevron and the name of an expandable row form its button.
|
|
6
|
+
-#}
|
|
7
|
+
{% import "helpers/type.html.nunj" as typeMacro %}
|
|
8
|
+
{% import "helpers/badge.html.nunj" as badgeMacro %}
|
|
9
|
+
{% import "helpers/status.html.nunj" as statusMacro %}
|
|
10
|
+
{% import "helpers/code.html.nunj" as codeMacro %}
|
|
11
|
+
{% import "helpers/parameters.html.nunj" as parametersMacro %}
|
|
12
|
+
{% import "helpers/overload.html.nunj" as overloadMacro %}
|
|
13
|
+
{% import "symbol/decorators.html.nunj" as decoratorsMacro %}
|
|
14
|
+
|
|
15
|
+
{% macro chevron() -%}
|
|
16
|
+
<svg class="ng-doc-member-chevron" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m9 18 6-6-6-6"></path></svg>
|
|
17
|
+
{%- endmacro %}
|
|
18
|
+
|
|
19
|
+
{% macro description(node, docNode) -%}
|
|
20
|
+
<div class="ng-doc-api-status">{{ statusMacro.render(node) }}</div>
|
|
21
|
+
{%- set text = docNode | getJsDocDescription %}
|
|
22
|
+
{%- if text %}
|
|
23
|
+
{{ text }}
|
|
24
|
+
{%- else %}
|
|
25
|
+
<span class="ng-doc-members-none" indexable="false" aria-label="No documentation">—</span>
|
|
26
|
+
{%- endif %}
|
|
27
|
+
{%- set remarks = docNode | getJsDocTags('remarks') %}
|
|
28
|
+
{%- if remarks.length %}
|
|
29
|
+
<div class="ng-doc-member-label" indexable="false">Notes</div>
|
|
30
|
+
{%- for remark in remarks %}
|
|
31
|
+
{{ remark | markdownToHtml }}
|
|
32
|
+
{%- endfor %}
|
|
33
|
+
{%- endif %}
|
|
34
|
+
{%- endmacro %}
|
|
35
|
+
|
|
36
|
+
{% macro examples(docNode) -%}
|
|
37
|
+
{%- set items = docNode | getJsDocTags('example') %}
|
|
38
|
+
{%- if items.length %}
|
|
39
|
+
<div indexable="false">
|
|
40
|
+
<div class="ng-doc-member-label">Example usage</div>
|
|
41
|
+
{%- for example in items %}
|
|
42
|
+
{{ example }}
|
|
43
|
+
{%- endfor %}
|
|
44
|
+
</div>
|
|
45
|
+
{%- endif %}
|
|
46
|
+
{%- endmacro %}
|
|
47
|
+
|
|
48
|
+
{% macro tags(node, inheritedFrom, definedIn) -%}
|
|
49
|
+
{%- set isAbstract = node.isAbstract and node.isAbstract() %}
|
|
50
|
+
{%- set isStatic = node.isStatic and node.isStatic() %}
|
|
51
|
+
{%- set isAsync = node.isAsync and node.isAsync() %}
|
|
52
|
+
{%- set isReadonly = node.isReadonly and node.isReadonly() %}
|
|
53
|
+
{%- set isProtected = node.getScope and node.getScope() == 'protected' %}
|
|
54
|
+
{%- set overriddenMember = (node | getOverriddenMember) if node.getName %}
|
|
55
|
+
{%- set implementedMember = (node | getImplementedMember) if node.getName %}
|
|
56
|
+
{%- set signal = node | signalMember %}
|
|
57
|
+
{%- set decorators = node.getDecorators() if node.getDecorators else [] %}
|
|
58
|
+
<div class="ng-doc-member-tags" indexable="false">
|
|
59
|
+
{{- badgeMacro.render("protected") if isProtected }}
|
|
60
|
+
{{- badgeMacro.render("abstract") if isAbstract }}
|
|
61
|
+
{{- badgeMacro.render("static") if isStatic }}
|
|
62
|
+
{{- badgeMacro.render("async") if isAsync }}
|
|
63
|
+
{{- badgeMacro.render("readonly") if isReadonly }}
|
|
64
|
+
{%- if decorators.length or signal %}
|
|
65
|
+
<span class="ng-doc-decorators-group">
|
|
66
|
+
{%- for decorator in decorators %}{{ decoratorsMacro.chip(decorator.getName()) }}{% endfor -%}
|
|
67
|
+
{%- if signal %}<code data-ng-doc-decorator="{{ 'Output' if signal.kind == 'output' else 'Input' }}" data-ng-doc-signal="{{ signal.kind }}">{{ signal.kind }}()</code>{% endif -%}
|
|
68
|
+
</span>
|
|
69
|
+
{%- if signal and signal.required %}{{ badgeMacro.render("required") }}{% endif %}
|
|
70
|
+
{%- endif %}
|
|
71
|
+
{%- if definedIn %}
|
|
72
|
+
<span class="ng-doc-member-from">defined in <code>{{ definedIn.getName() }}</code></span>
|
|
73
|
+
{%- elseif inheritedFrom %}
|
|
74
|
+
<span class="ng-doc-member-from">inherited from <code>{{ inheritedFrom.getName() }}</code></span>
|
|
75
|
+
{%- elseif overriddenMember %}
|
|
76
|
+
<span class="ng-doc-member-from">overrides <code>{{ (overriddenMember | getMemberParent).getName() }}</code></span>
|
|
77
|
+
{%- elseif implementedMember %}
|
|
78
|
+
<span class="ng-doc-member-from">implements <code>{{ (implementedMember | getMemberParent).getName() }}</code></span>
|
|
79
|
+
{%- endif %}
|
|
80
|
+
</div>
|
|
81
|
+
{%- endmacro %}
|
|
82
|
+
|
|
83
|
+
{#- `definedIn` mode (type aliases) names the named type that declares a property, as the
|
|
84
|
+
per-section layout does; classes and interfaces name the parent it is inherited from. #}
|
|
85
|
+
{% macro propertyRow(property, group, origin, mode) -%}
|
|
86
|
+
{%- set inheritedFrom = none %}
|
|
87
|
+
{%- set definedIn = none %}
|
|
88
|
+
{%- if mode == 'definedIn' %}
|
|
89
|
+
{%- set parent = property | getDefinedInParent(origin) %}
|
|
90
|
+
{%- set definedIn = parent if (parent and (parent | isNamed)) else none %}
|
|
91
|
+
{%- else %}
|
|
92
|
+
{%- set inheritedFrom = property | getInheritedParent(origin) %}
|
|
93
|
+
{%- endif %}
|
|
94
|
+
{%- set docNode = property | getPropertyChain | firstNodeWithComment %}
|
|
95
|
+
<tr class="ng-doc-member {{ statusMacro.class(property) }}" data-group="{{ group }}" data-name="{{ property.getName() }}"{{ ' data-inherited' if inheritedFrom }} dataSlug="{{ property.getName() }}" dataSlugType="member">
|
|
96
|
+
<td class="ng-doc-member-declaration" indexable="false">
|
|
97
|
+
<div class="ng-doc-member-signature"><span class="ng-doc-member-name">{{ property.getName() }}</span>{{ '?' if property.hasQuestionToken and property.hasQuestionToken() }}: {{ typeMacro.type(property) }}</div>
|
|
98
|
+
{{ tags(property, inheritedFrom, definedIn) }}
|
|
99
|
+
</td>
|
|
100
|
+
<td class="ng-doc-member-description">
|
|
101
|
+
{{ description(property, docNode) }}
|
|
102
|
+
{{ examples(docNode) }}
|
|
103
|
+
</td>
|
|
104
|
+
</tr>
|
|
105
|
+
{%- endmacro %}
|
|
106
|
+
|
|
107
|
+
{% macro enumRow(member, group) -%}
|
|
108
|
+
<tr class="ng-doc-member {{ statusMacro.class(member) }}" data-group="{{ group }}" data-name="{{ member.getName() }}" dataSlug="{{ member.getName() }}" dataSlugType="member">
|
|
109
|
+
<td class="ng-doc-member-declaration" indexable="false">
|
|
110
|
+
<div class="ng-doc-member-signature"><span class="ng-doc-member-name">{{ member.getName() }}</span> = <code>{{ member.getValue() | dump | escape }}</code></div>
|
|
111
|
+
</td>
|
|
112
|
+
<td class="ng-doc-member-description">
|
|
113
|
+
{{ description(member, member) }}
|
|
114
|
+
</td>
|
|
115
|
+
</tr>
|
|
116
|
+
{%- endmacro %}
|
|
117
|
+
|
|
118
|
+
{% macro accessorRow(accessor, type, group, origin) -%}
|
|
119
|
+
{%- set inheritedFrom = accessor | getInheritedParent(origin) %}
|
|
120
|
+
{%- set docNode = accessor | getAccessorChain | firstNodeWithComment %}
|
|
121
|
+
<tr class="ng-doc-member {{ statusMacro.class(accessor) }}" data-group="{{ group }}" data-name="{{ accessor.getName() }}"{{ ' data-inherited' if inheritedFrom }} dataSlug="{{ type + '-' + accessor.getName() }}" dataSlugType="member" dataSlugTitle="{{ accessor.getName() }}">
|
|
122
|
+
<td class="ng-doc-member-declaration" indexable="false">
|
|
123
|
+
<div class="ng-doc-member-signature">{{ type }} <span class="ng-doc-member-name">{{ accessor.getName() }}</span>: {{ typeMacro.type(accessor) }}</div>
|
|
124
|
+
{{ tags(accessor, inheritedFrom) }}
|
|
125
|
+
</td>
|
|
126
|
+
<td class="ng-doc-member-description">
|
|
127
|
+
{{ description(accessor, docNode) }}
|
|
128
|
+
</td>
|
|
129
|
+
</tr>
|
|
130
|
+
{%- endmacro %}
|
|
131
|
+
|
|
132
|
+
{#- A row with a detail row: a method, the constructor or a call signature (`kind`). #}
|
|
133
|
+
{% macro callableRow(node, kind, name, slug, group, origin, presentation, detailId) -%}
|
|
134
|
+
{%- if kind == 'method' %}
|
|
135
|
+
{%- set docNode = node | getMethodChain | firstNodeWithComment %}
|
|
136
|
+
{%- elseif kind == 'call' %}
|
|
137
|
+
{%- set docNode = node | getCallSignatureChain | firstNodeWithComment %}
|
|
138
|
+
{%- else %}
|
|
139
|
+
{%- set docNode = node %}
|
|
140
|
+
{%- endif %}
|
|
141
|
+
{%- set inheritedFrom = none %}
|
|
142
|
+
{%- if kind != 'constructor' %}
|
|
143
|
+
{%- set inheritedFrom = node | getInheritedParent(origin) %}
|
|
144
|
+
{%- endif %}
|
|
145
|
+
{%- set parameters = node.getParameters() %}
|
|
146
|
+
{%- set overloads = node.getOverloads() if node.getOverloads else [] %}
|
|
147
|
+
{%- set returnsTag = docNode | getJsDocTag('returns') %}
|
|
148
|
+
<tr class="ng-doc-member {{ statusMacro.class(node) }}" data-group="{{ group }}" data-name="{{ name }}"{{ ' data-inherited' if inheritedFrom }}{% if kind != 'constructor' %} dataSlug="{{ slug }}" dataSlugType="method"{% endif %}>
|
|
149
|
+
<td class="ng-doc-member-declaration" indexable="false">
|
|
150
|
+
<div class="ng-doc-member-signature"><button type="button" class="ng-doc-member-expand" aria-expanded="false" aria-controls="{{ detailId }}" aria-label="{{ name }}: show the signature">{{ chevron() }}<span class="ng-doc-member-name">{{ name }}</span></button>({{ '…' if parameters.length }}){% if kind != 'constructor' %}: {{ typeMacro.returnType(node) }}{% endif %}</div>
|
|
151
|
+
{{ tags(node, inheritedFrom) }}
|
|
152
|
+
</td>
|
|
153
|
+
<td class="ng-doc-member-description">
|
|
154
|
+
{{ description(node, docNode) }}
|
|
155
|
+
</td>
|
|
156
|
+
</tr>
|
|
157
|
+
<tr class="ng-doc-member-detail" id="{{ detailId }}" data-group="{{ group }}" hidden>
|
|
158
|
+
<td colspan="2">
|
|
159
|
+
<div class="ng-doc-member-label" indexable="false">Signature</div>
|
|
160
|
+
{{ codeMacro.render(presentation, "typescript", false) }}
|
|
161
|
+
{%- if parameters.length %}
|
|
162
|
+
<div class="ng-doc-member-label" indexable="false">Parameters</div>
|
|
163
|
+
{{ parametersMacro.render(parameters, (node if kind == 'constructor' else docNode), kind == 'constructor') }}
|
|
164
|
+
{%- endif %}
|
|
165
|
+
{%- if kind != 'constructor' %}
|
|
166
|
+
<div class="ng-doc-member-label" indexable="false">Returns</div>
|
|
167
|
+
<div class="ng-doc-returns">
|
|
168
|
+
{{ typeMacro.returnType(node) }}
|
|
169
|
+
{%- if returnsTag.length %}
|
|
170
|
+
<span> - </span>
|
|
171
|
+
{{ returnsTag | markdownToHtml }}
|
|
172
|
+
{%- endif %}
|
|
173
|
+
</div>
|
|
174
|
+
{%- endif %}
|
|
175
|
+
{{ examples(docNode) }}
|
|
176
|
+
{%- if overloads.length %}
|
|
177
|
+
<div class="ng-doc-member-label" indexable="false">Overloads</div>
|
|
178
|
+
{{ overloadMacro.render(overloads) }}
|
|
179
|
+
{%- endif %}
|
|
180
|
+
</td>
|
|
181
|
+
</tr>
|
|
182
|
+
{%- endmacro %}
|
|
183
|
+
|
|
184
|
+
{#- The number of rows of a group: an accessor pair has a row per get and set. #}
|
|
185
|
+
{% macro count(group) -%}
|
|
186
|
+
{%- if group.kind == 'accessor' -%}
|
|
187
|
+
{%- set marks %}{% for pair in group.members %}{{ 'x' if pair.get }}{{ 'x' if pair.set }}{% endfor %}{% endset -%}
|
|
188
|
+
{{- marks | length -}}
|
|
189
|
+
{%- else -%}
|
|
190
|
+
{{- group.members.length -}}
|
|
191
|
+
{%- endif -%}
|
|
192
|
+
{%- endmacro %}
|
|
193
|
+
|
|
194
|
+
{% macro groupRow(group, title, total) -%}
|
|
195
|
+
<tr class="ng-doc-members-group" data-group="{{ group }}">
|
|
196
|
+
<td colspan="2"><h3 class="ng-doc-members-group-title">{{ title }}</h3><span class="ng-doc-members-count" indexable="false">{{ total }}</span></td>
|
|
197
|
+
</tr>
|
|
198
|
+
{%- endmacro %}
|
|
199
|
+
|
|
200
|
+
{#- `hideProtected` (the `api.protectedMembers: false` option) lists public class members only. #}
|
|
201
|
+
{% macro render(declaration, hideProtected=false) %}
|
|
202
|
+
{%- set memberScopes = ["public"] if hideProtected else ["public", "protected"] -%}
|
|
203
|
+
{%- if Node.isClassDeclaration(declaration) %}
|
|
204
|
+
{%- set constructors = declaration.getConstructors() | filterByScope("public") | excludeByJsDocTags('internal') -%}
|
|
205
|
+
{%- set allProperties = declaration | getClassProperties | excludeByJsDocTags('internal') | filterByScope(memberScopes) | filterUselessMembers | sortByNodesName -%}
|
|
206
|
+
{%- set allMethods = declaration | getClassMethods | excludeByJsDocTags('internal') | filterByScope(memberScopes) | filterUselessMembers | sortByNodesName -%}
|
|
207
|
+
{%- set allAccessors = declaration | getClassAccessors | excludeByJsDocTags('internal') | filterByScope(memberScopes) | filterUselessMembers | sortByNodesName -%}
|
|
208
|
+
{%- set staticProperties = allProperties | filterByStatic(true) -%}
|
|
209
|
+
{%- set properties = allProperties | filterByStatic(false) -%}
|
|
210
|
+
{%- set staticAccessors = allAccessors | filterByStatic(true) | groupAccessors -%}
|
|
211
|
+
{%- set accessors = allAccessors | filterByStatic(false) | groupAccessors -%}
|
|
212
|
+
{%- set staticMethods = allMethods | filterByStatic(true) -%}
|
|
213
|
+
{%- set methods = allMethods | filterByStatic(false) -%}
|
|
214
|
+
{%- set groups = [
|
|
215
|
+
{ id: 'constructor', title: 'Constructor', kind: 'constructor', members: constructors.slice(0, 1) },
|
|
216
|
+
{ id: 'static-properties', title: 'Static Properties', kind: 'property', members: staticProperties },
|
|
217
|
+
{ id: 'properties', title: 'Properties', kind: 'property', members: properties },
|
|
218
|
+
{ id: 'static-accessors', title: 'Static Accessors', kind: 'accessor', members: staticAccessors },
|
|
219
|
+
{ id: 'accessors', title: 'Accessors', kind: 'accessor', members: accessors },
|
|
220
|
+
{ id: 'static-methods', title: 'Static Methods', kind: 'method', members: staticMethods },
|
|
221
|
+
{ id: 'methods', title: 'Methods', kind: 'method', members: methods }
|
|
222
|
+
] -%}
|
|
223
|
+
{%- elseif Node.isInterfaceDeclaration(declaration) %}
|
|
224
|
+
{%- set properties = declaration | getInterfaceProperties | excludeByJsDocTags('internal') | filterUselessMembers | sortByNodesName -%}
|
|
225
|
+
{%- set accessors = declaration | getInterfaceAccessors | excludeByJsDocTags('internal') | filterUselessMembers | sortByNodesName | groupAccessors -%}
|
|
226
|
+
{%- set methods = declaration | getInterfaceMethods | excludeByJsDocTags('internal') | filterUselessMembers | sortByNodesName -%}
|
|
227
|
+
{%- set callSignatures = declaration | getInterfaceCallSignatures | excludeByJsDocTags('internal') -%}
|
|
228
|
+
{%- set groups = [
|
|
229
|
+
{ id: 'properties', title: 'Properties', kind: 'property', members: properties },
|
|
230
|
+
{ id: 'accessors', title: 'Accessors', kind: 'accessor', members: accessors },
|
|
231
|
+
{ id: 'methods', title: 'Methods', kind: 'method', members: methods },
|
|
232
|
+
{ id: 'call-signatures', title: 'Call Signatures', kind: 'call', members: callSignatures }
|
|
233
|
+
] -%}
|
|
234
|
+
{%- elseif Node.isTypeAliasDeclaration(declaration) %}
|
|
235
|
+
{%- set properties = declaration | getTypeAliasProperties | excludeByJsDocTags('internal') | filterUselessMembers | sortByNodesName -%}
|
|
236
|
+
{%- set groups = [{ id: 'properties', title: 'Properties', kind: 'defined-property', members: properties }] -%}
|
|
237
|
+
{%- elseif Node.isEnumDeclaration(declaration) %}
|
|
238
|
+
{%- set groups = [{ id: 'members', title: 'Members', kind: 'enum', members: declaration.getMembers() | excludeByJsDocTags('internal') }] -%}
|
|
239
|
+
{%- else %}
|
|
240
|
+
{%- set groups = [] -%}
|
|
241
|
+
{%- endif %}
|
|
242
|
+
{%- set populated = [] %}
|
|
243
|
+
{%- for group in groups %}{% if group.members.length %}{% set populated = (populated.push(group), populated) %}{% endif %}{% endfor %}
|
|
244
|
+
|
|
245
|
+
{%- set rows %}
|
|
246
|
+
{%- for group in groups %}
|
|
247
|
+
{%- if group.members.length %}
|
|
248
|
+
{{ groupRow(group.id, group.title, count(group)) }}
|
|
249
|
+
{%- for member in group.members %}
|
|
250
|
+
{%- if group.kind == 'property' %}
|
|
251
|
+
{{ propertyRow(member, group.id, declaration) }}
|
|
252
|
+
{%- elseif group.kind == 'defined-property' %}
|
|
253
|
+
{{ propertyRow(member, group.id, declaration, 'definedIn') }}
|
|
254
|
+
{%- elseif group.kind == 'enum' %}
|
|
255
|
+
{{ enumRow(member, group.id) }}
|
|
256
|
+
{%- elseif group.kind == 'accessor' %}
|
|
257
|
+
{{ accessorRow(member.get, 'get', group.id, declaration) if member.get }}
|
|
258
|
+
{{ accessorRow(member.set, 'set', group.id, declaration) if member.set }}
|
|
259
|
+
{%- elseif group.kind == 'method' %}
|
|
260
|
+
{{ callableRow(member, 'method', member.getName(), member.getName() + '()', group.id, declaration, member | methodPresentation, 'ng-doc-member-detail-' + group.id + '-' + member.getName()) }}
|
|
261
|
+
{%- elseif group.kind == 'constructor' %}
|
|
262
|
+
{{ callableRow(member, 'constructor', 'constructor', 'constructor', group.id, declaration, member | constructorPresentation, 'ng-doc-member-detail-constructor') }}
|
|
263
|
+
{%- else %}
|
|
264
|
+
{{ callableRow(member, 'call', 'Call Signature #' + loop.index, 'Call Signature #' + loop.index, group.id, declaration, member | callSignaturePresentation, 'ng-doc-member-detail-call-signature-' + loop.index) }}
|
|
265
|
+
{%- endif %}
|
|
266
|
+
{%- endfor %}
|
|
267
|
+
{%- endif %}
|
|
268
|
+
{%- endfor %}
|
|
269
|
+
{%- endset %}
|
|
270
|
+
|
|
271
|
+
{%- if rows | trim %}
|
|
272
|
+
{%- set total = rows.split('class="ng-doc-member ').length - 1 %}
|
|
273
|
+
{%- set inherited = rows.split(' data-inherited ').length - 1 %}
|
|
274
|
+
{#- An enum's only group is its members, whose row already holds the Members heading. #}
|
|
275
|
+
{%- if not (populated.length == 1 and populated[0].kind == 'enum') %}
|
|
276
|
+
<h2 id="ng-doc-members">Members</h2>
|
|
277
|
+
{%- endif %}
|
|
278
|
+
<ng-doc-members>
|
|
279
|
+
<div class="ng-doc-members-bar" indexable="false">
|
|
280
|
+
{%- if populated.length > 1 or inherited %}
|
|
281
|
+
<div class="ng-doc-members-tabs" role="tablist" aria-label="Filter members">
|
|
282
|
+
<button type="button" role="tab" data-ng-doc-members-tab="all" aria-selected="true">All <span class="ng-doc-members-count">{{ total }}</span></button>
|
|
283
|
+
{%- for group in groups %}
|
|
284
|
+
{%- if group.members.length %}
|
|
285
|
+
<button type="button" role="tab" data-ng-doc-members-tab="{{ group.id }}" aria-selected="false" tabindex="-1">{{ group.title }} <span class="ng-doc-members-count">{{ count(group) }}</span></button>
|
|
286
|
+
{%- endif %}
|
|
287
|
+
{%- endfor %}
|
|
288
|
+
{%- if inherited %}
|
|
289
|
+
<button type="button" role="tab" data-ng-doc-members-tab="inherited" aria-selected="false" tabindex="-1">Inherited <span class="ng-doc-members-count">{{ inherited }}</span></button>
|
|
290
|
+
{%- endif %}
|
|
291
|
+
</div>
|
|
292
|
+
{%- endif %}
|
|
293
|
+
<label class="ng-doc-members-filter"><svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M22 3H2l8 9.46V19l4 2v-8.54L22 3z"></path></svg><input type="text" placeholder="Filter by name" aria-label="Filter members by name" data-ng-doc-members-filter aria-keyshortcuts="F"></label>
|
|
294
|
+
</div>
|
|
295
|
+
<div class="ng-doc-members-table-wrapper">
|
|
296
|
+
<table class="ng-doc-members-table">
|
|
297
|
+
<tbody>{{ rows }}</tbody>
|
|
298
|
+
</table>
|
|
299
|
+
<div class="ng-doc-members-empty" indexable="false" hidden>No members match.</div>
|
|
300
|
+
</div>
|
|
301
|
+
</ng-doc-members>
|
|
302
|
+
{%- endif %}
|
|
303
|
+
{% endmacro %}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
An API page in the symbol view: the description, the details (also in the right rail), the
|
|
3
|
+
declaration panel, the kind's own sections and the page-level notes, see-also, examples and
|
|
4
|
+
usage notes. Every heading and member anchor of the per-section layout
|
|
5
|
+
(`api-page-content.html.nunj`) is kept, so page keywords and links do not change: the
|
|
6
|
+
declaration panel carries the `presentation` anchor of the declarations that had one.
|
|
7
|
+
-#}
|
|
8
|
+
{% import "helpers/no-content.html.nunj" as noContentMacro %}
|
|
9
|
+
{% import "helpers/code.html.nunj" as codeMacro %}
|
|
10
|
+
{% import "helpers/type.html.nunj" as typeMacro %}
|
|
11
|
+
{% import "helpers/parameters.html.nunj" as parametersMacro %}
|
|
12
|
+
{% import "helpers/overload.html.nunj" as overloadMacro %}
|
|
13
|
+
{% import "symbol/members.html.nunj" as membersMacro %}
|
|
14
|
+
{% import "symbol/details.html.nunj" as detailsMacro %}
|
|
15
|
+
|
|
16
|
+
{% set isClass = Node.isClassDeclaration(declaration) %}
|
|
17
|
+
{% set isInterface = Node.isInterfaceDeclaration(declaration) %}
|
|
18
|
+
{% set isFunction = Node.isFunctionDeclaration(declaration) %}
|
|
19
|
+
{% set isTypeAlias = Node.isTypeAliasDeclaration(declaration) %}
|
|
20
|
+
{% set isVariable = Node.isVariableDeclaration(declaration) %}
|
|
21
|
+
|
|
22
|
+
{% set description = docNode | getJsDocDescription %}
|
|
23
|
+
<div class="ng-doc-api-description">
|
|
24
|
+
{{ description if description else noContentMacro.render('No documentation has been provided.') }}
|
|
25
|
+
</div>
|
|
26
|
+
|
|
27
|
+
{{ detailsMacro.render(declaration, scope) }}
|
|
28
|
+
{{ detailsMacro.render(declaration, scope, 'rail') }}
|
|
29
|
+
|
|
30
|
+
{%- if isFunction %}
|
|
31
|
+
{% set code = declaration | functionPresentation %}
|
|
32
|
+
{%- elseif isTypeAlias %}
|
|
33
|
+
{% set code = declaration | typeAliasPresentation %}
|
|
34
|
+
{%- elseif isVariable %}
|
|
35
|
+
{% set code = declaration | variablePresentation %}
|
|
36
|
+
{%- else %}
|
|
37
|
+
{% set code = declaration | apiDeclaration %}
|
|
38
|
+
{%- endif %}
|
|
39
|
+
<div class="ng-doc-api-declaration" indexable="false"{% if isFunction or isTypeAlias or isVariable %} dataSlug="Presentation" dataSlugType="heading"{% endif %}>
|
|
40
|
+
<pre><code class="language-typescript" lang="typescript" metastring='{"name":"Declaration"}'>{{ code | escape }}</code></pre>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
{% include "symbol/extended-by.html.nunj" %}
|
|
44
|
+
|
|
45
|
+
{% include "parts/remarks.html.nunj" %}
|
|
46
|
+
{% include "symbol/see-also.html.nunj" %}
|
|
47
|
+
|
|
48
|
+
{% if isFunction %}
|
|
49
|
+
{%- set parameters = declaration.getParameters() -%}
|
|
50
|
+
{%- set overloads = declaration.getOverloads() -%}
|
|
51
|
+
{%- set returnsTag = docNode | getJsDocTag('returns') -%}
|
|
52
|
+
|
|
53
|
+
<h2>Returns</h2>
|
|
54
|
+
<div class="ng-doc-returns">
|
|
55
|
+
{{ typeMacro.returnType(declaration) }}
|
|
56
|
+
{%- if returnsTag.length %}
|
|
57
|
+
<span> - </span>
|
|
58
|
+
{{ returnsTag | markdownToHtml }}
|
|
59
|
+
{%- endif %}
|
|
60
|
+
</div>
|
|
61
|
+
|
|
62
|
+
{% if parameters.length -%}
|
|
63
|
+
<h2>Parameters</h2>
|
|
64
|
+
{{ parametersMacro.render(parameters, declaration) }}
|
|
65
|
+
{%- endif %}
|
|
66
|
+
|
|
67
|
+
{% if overloads.length %}
|
|
68
|
+
<h2>Overloads</h2>
|
|
69
|
+
{{ overloadMacro.render(overloads) }}
|
|
70
|
+
{% endif %}
|
|
71
|
+
{% else %}
|
|
72
|
+
{{ membersMacro.render(declaration, hideProtectedMembers) }}
|
|
73
|
+
{% endif %}
|
|
74
|
+
|
|
75
|
+
{% include "parts/examples.html.nunj" %}
|
|
76
|
+
{% include "parts/usage-notes.html.nunj" %}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{#-
|
|
2
|
+
The `@see` tags of a declaration; derived classes are listed by `symbol/extended-by.html.nunj`.
|
|
3
|
+
-#}
|
|
4
|
+
{%- set seeDocs = docNode | getJsDocTags('see') %}
|
|
5
|
+
|
|
6
|
+
{%- if seeDocs.length %}
|
|
7
|
+
<section indexable="false">
|
|
8
|
+
<h2>See Also</h2>
|
|
9
|
+
|
|
10
|
+
<ul class="ng-doc-see-also">
|
|
11
|
+
{%- for see in seeDocs %}
|
|
12
|
+
<li>{{ see }}</li>
|
|
13
|
+
{%- endfor %}
|
|
14
|
+
</ul>
|
|
15
|
+
</section>
|
|
16
|
+
{%- endif %}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022 Brandon Roberts
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|