@mathstack/app-kit 0.0.1-beta.0 → 0.0.1-beta.1
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 +5 -0
- package/fesm2022/mathstack-app-kit.mjs +66 -69
- package/fesm2022/mathstack-app-kit.mjs.map +1 -1
- package/package.json +5 -5
- package/types/mathstack-app-kit.d.ts +387 -0
- package/index.d.ts +0 -5
- package/lib/assets/assets-resource.d.ts +0 -11
- package/lib/assets/assets-service.d.ts +0 -35
- package/lib/assets/index.d.ts +0 -1
- package/lib/content-parsing/index.d.ts +0 -2
- package/lib/content-parsing/markdown-parser.d.ts +0 -54
- package/lib/content-parsing/shiki-highlighter.d.ts +0 -77
- package/lib/core/utilities/deep-merge.d.ts +0 -1
- package/lib/core/utilities/index.d.ts +0 -2
- package/lib/core/utilities/safe-assign.d.ts +0 -18
- package/lib/documentation-display/active-heading-tracker.d.ts +0 -14
- package/lib/documentation-display/document-index/document-index.component.d.ts +0 -17
- package/lib/documentation-display/documentation-config-parser.d.ts +0 -41
- package/lib/documentation-display/documentation-content-service.d.ts +0 -50
- package/lib/documentation-display/documentation-display.component.d.ts +0 -39
- package/lib/documentation-display/index.d.ts +0 -6
- package/lib/documentation-display/navigation-siblings/navigation-siblings.component.d.ts +0 -18
- package/lib/ng-utilities/index.d.ts +0 -2
- package/lib/ng-utilities/ng-on-changes.d.ts +0 -22
- package/lib/ng-utilities/run-ng-change-detection-then.d.ts +0 -22
- package/public-api.d.ts +0 -6
package/README.md
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
# AppDevKit
|
|
2
2
|
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The app-kit is a library of miscellaneous utilities, styles, and components that are specific to
|
|
6
|
+
neither the `@mathstack/ui` nor the `@mathstack/viz` libraries.
|
|
7
|
+
|
|
3
8
|
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version
|
|
4
9
|
19.2.0.
|
|
5
10
|
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Injectable, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, ContentChild, ViewChild,
|
|
2
|
+
import { inject, Injectable, NgZone, EventEmitter, Output, Input, ChangeDetectionStrategy, Component, DestroyRef, ContentChild, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
3
|
import { csvParse } from 'd3';
|
|
4
4
|
import { forkJoin, of, mergeMap, from, map, switchMap, BehaviorSubject, fromEvent, debounceTime, distinctUntilChanged, withLatestFrom } from 'rxjs';
|
|
5
5
|
import { parse } from 'yaml';
|
|
6
|
-
import
|
|
6
|
+
import { HttpClient } from '@angular/common/http';
|
|
7
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
7
8
|
import rehypeAutolinkHeadings from 'rehype-autolink-headings';
|
|
8
9
|
import rehypeRaw from 'rehype-raw';
|
|
9
10
|
import rehypeSlug from 'rehype-slug';
|
|
@@ -16,15 +17,14 @@ import { fromParse5 } from 'hast-util-from-parse5';
|
|
|
16
17
|
import { parse as parse$1 } from 'parse5';
|
|
17
18
|
import { createHighlighter } from 'shiki/index.mjs';
|
|
18
19
|
import { visit } from 'unist-util-visit';
|
|
19
|
-
import * as i1$1 from '@angular/platform-browser';
|
|
20
20
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
21
|
-
import * as
|
|
21
|
+
import * as i1 from '@angular/common';
|
|
22
22
|
import { CommonModule, TitleCasePipe, DOCUMENT } from '@angular/common';
|
|
23
23
|
import { isEqual, get } from 'lodash-es';
|
|
24
24
|
|
|
25
25
|
class AdkAssetsResource {
|
|
26
|
-
constructor(
|
|
27
|
-
this.http =
|
|
26
|
+
constructor() {
|
|
27
|
+
this.http = inject(HttpClient);
|
|
28
28
|
}
|
|
29
29
|
getAsset(path, responseType) {
|
|
30
30
|
return this.http.get(path, {
|
|
@@ -32,15 +32,15 @@ class AdkAssetsResource {
|
|
|
32
32
|
responseType: responseType,
|
|
33
33
|
});
|
|
34
34
|
}
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
36
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkAssetsResource, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkAssetsResource, providedIn: 'root' }); }
|
|
37
37
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkAssetsResource, decorators: [{
|
|
39
39
|
type: Injectable,
|
|
40
40
|
args: [{
|
|
41
41
|
providedIn: 'root',
|
|
42
42
|
}]
|
|
43
|
-
}]
|
|
43
|
+
}] });
|
|
44
44
|
|
|
45
45
|
var AdkAssetResponse;
|
|
46
46
|
(function (AdkAssetResponse) {
|
|
@@ -50,10 +50,10 @@ var AdkAssetResponse;
|
|
|
50
50
|
AdkAssetResponse["Text"] = "text";
|
|
51
51
|
})(AdkAssetResponse || (AdkAssetResponse = {}));
|
|
52
52
|
class AdkAssetsService {
|
|
53
|
-
constructor(
|
|
54
|
-
this.resource = resource;
|
|
53
|
+
constructor() {
|
|
55
54
|
this.assets = {};
|
|
56
55
|
this.assetsPath = 'assets/';
|
|
56
|
+
this.resource = inject(AdkAssetsResource);
|
|
57
57
|
}
|
|
58
58
|
setAssetsPath(path) {
|
|
59
59
|
this.assetsPath = path;
|
|
@@ -88,13 +88,13 @@ class AdkAssetsService {
|
|
|
88
88
|
parseYaml(str) {
|
|
89
89
|
return parse(str);
|
|
90
90
|
}
|
|
91
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
92
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
91
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkAssetsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
92
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkAssetsService, providedIn: 'root' }); }
|
|
93
93
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
94
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkAssetsService, decorators: [{
|
|
95
95
|
type: Injectable,
|
|
96
96
|
args: [{ providedIn: 'root' }]
|
|
97
|
-
}]
|
|
97
|
+
}] });
|
|
98
98
|
|
|
99
99
|
function deepMerge(target, source) {
|
|
100
100
|
const output = Object.assign({}, target);
|
|
@@ -292,10 +292,10 @@ class AdkShikiHighlighter {
|
|
|
292
292
|
}
|
|
293
293
|
return null;
|
|
294
294
|
}
|
|
295
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
296
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
295
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkShikiHighlighter, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
296
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkShikiHighlighter, providedIn: 'root' }); }
|
|
297
297
|
}
|
|
298
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
298
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkShikiHighlighter, decorators: [{
|
|
299
299
|
type: Injectable,
|
|
300
300
|
args: [{
|
|
301
301
|
providedIn: 'root',
|
|
@@ -315,9 +315,9 @@ const DEFAULT_PARSING_OPTIONS = {
|
|
|
315
315
|
highlighter: DEFAULT_HIGHLIGHTER_OPTIONS,
|
|
316
316
|
};
|
|
317
317
|
class AdkMarkdownParser {
|
|
318
|
-
constructor(
|
|
319
|
-
this.sanitizer =
|
|
320
|
-
this.shikiHighlighter =
|
|
318
|
+
constructor() {
|
|
319
|
+
this.sanitizer = inject(DomSanitizer);
|
|
320
|
+
this.shikiHighlighter = inject(AdkShikiHighlighter);
|
|
321
321
|
this.parser = unified;
|
|
322
322
|
}
|
|
323
323
|
parse(markdown, options) {
|
|
@@ -415,12 +415,12 @@ class AdkMarkdownParser {
|
|
|
415
415
|
const pathTo = pathToKV.split(':')[1]?.trim();
|
|
416
416
|
return { name, pathTo };
|
|
417
417
|
}
|
|
418
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
419
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
418
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkMarkdownParser, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
419
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkMarkdownParser }); }
|
|
420
420
|
}
|
|
421
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkMarkdownParser, decorators: [{
|
|
422
422
|
type: Injectable
|
|
423
|
-
}], ctorParameters: () => [
|
|
423
|
+
}], ctorParameters: () => [] });
|
|
424
424
|
|
|
425
425
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
426
426
|
/**
|
|
@@ -457,10 +457,10 @@ function safeAssign(target, source, logConflicts = false) {
|
|
|
457
457
|
}
|
|
458
458
|
|
|
459
459
|
class AdkActiveHeadingTracker {
|
|
460
|
-
constructor(
|
|
461
|
-
this.ngZone = ngZone;
|
|
460
|
+
constructor() {
|
|
462
461
|
this.activeHeadingId = new BehaviorSubject(null);
|
|
463
462
|
this.activeHeadingId$ = this.activeHeadingId.asObservable();
|
|
463
|
+
this.ngZone = inject(NgZone);
|
|
464
464
|
}
|
|
465
465
|
initScrollListener(contentEl, destroyRef) {
|
|
466
466
|
this.ngZone.runOutsideAngular(() => {
|
|
@@ -493,21 +493,21 @@ class AdkActiveHeadingTracker {
|
|
|
493
493
|
scrollToTop() {
|
|
494
494
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
495
495
|
}
|
|
496
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
497
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
496
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkActiveHeadingTracker, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
497
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkActiveHeadingTracker, providedIn: 'root' }); }
|
|
498
498
|
}
|
|
499
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
499
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkActiveHeadingTracker, decorators: [{
|
|
500
500
|
type: Injectable,
|
|
501
501
|
args: [{
|
|
502
502
|
providedIn: 'root',
|
|
503
503
|
}]
|
|
504
|
-
}]
|
|
504
|
+
}] });
|
|
505
505
|
|
|
506
506
|
class AdkDocumentIndexComponent {
|
|
507
|
-
constructor(
|
|
508
|
-
this.activeHeadingTracker = activeHeadingTracker;
|
|
507
|
+
constructor() {
|
|
509
508
|
this.headings = [];
|
|
510
509
|
this.activeHeading = new EventEmitter();
|
|
510
|
+
this.activeHeadingTracker = inject(AdkActiveHeadingTracker);
|
|
511
511
|
}
|
|
512
512
|
setActiveHeading(event, heading) {
|
|
513
513
|
this.activeHeading.emit({ heading, event });
|
|
@@ -515,13 +515,13 @@ class AdkDocumentIndexComponent {
|
|
|
515
515
|
scrollToTop() {
|
|
516
516
|
this.activeHeadingTracker.scrollToTop();
|
|
517
517
|
}
|
|
518
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
519
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentIndexComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
519
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: AdkDocumentIndexComponent, isStandalone: true, selector: "hsi-adk-document-index", inputs: { headings: "headings" }, outputs: { activeHeading: "activeHeading" }, ngImport: i0, template: "<nav class=\"toc\">\n @if (headings.length > 0) {\n <p class=\"index-title\">On this page</p>\n <ul class=\"links-container\">\n @for (heading of headings; track $index) {\n <li class=\"toc-item\">\n <button\n type=\"button\"\n class=\"toc-link\"\n [style.--level]=\"heading.level\"\n (click)=\"setActiveHeading($event, heading)\"\n (keydown.enter)=\"setActiveHeading($event, heading)\"\n [class.active]=\"\n heading.id === (activeHeadingTracker.activeHeadingId$ | async)\n \"\n >{{ heading.text }}</button\n >\n </li>\n }\n </ul>\n <button\n type=\"button\"\n class=\"back-to-top\"\n (click)=\"scrollToTop()\"\n (keydown.enter)=\"scrollToTop()\"\n >\n Back to top<span\n aria-hidden=\"true\"\n class=\"material-symbols-outlined arrow\"\n >arrow_upward</span\n >\n </button>\n }\n</nav>\n", styles: [".links-container{list-style:none;flex-basis:28%;padding:0;margin:0;width:250px}.index-title{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-medium);font-size:9pt;letter-spacing:.25pt;line-height:12pt;letter-spacing:.8pt;text-transform:uppercase;padding-bottom:.25rem}.toc-link{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:11pt;letter-spacing:0;line-height:16pt;cursor:pointer;padding-top:.25rem;padding-bottom:.25rem;padding-left:calc((var(--level) - 1) * 1rem);display:block;border-left:2px solid var(--hsi-adk-color-muted-primary-90);color:var(--hsi-adk-color-muted-primary-50);text-align:left}.toc-link:hover{color:var(--hsi-adk-color-muted-primary-25);border-left:2px solid var(--hsi-adk-color-muted-primary-70)}.toc-link.active{color:var(--hsi-adk-color-primary-40);border-left:2px solid var(--hsi-adk-color-primary-40)}.back-to-top{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:11pt;letter-spacing:0;line-height:16pt;cursor:pointer;padding:.5rem 0;display:flex;align-items:center;text-align:left;color:var(--hsi-adk-color-muted-primary-40)}.back-to-top:hover{color:var(--hsi-adk-color-muted-primary-10)}.arrow{transform:scale(.7)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
520
520
|
}
|
|
521
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
521
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentIndexComponent, decorators: [{
|
|
522
522
|
type: Component,
|
|
523
523
|
args: [{ selector: 'hsi-adk-document-index', imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav class=\"toc\">\n @if (headings.length > 0) {\n <p class=\"index-title\">On this page</p>\n <ul class=\"links-container\">\n @for (heading of headings; track $index) {\n <li class=\"toc-item\">\n <button\n type=\"button\"\n class=\"toc-link\"\n [style.--level]=\"heading.level\"\n (click)=\"setActiveHeading($event, heading)\"\n (keydown.enter)=\"setActiveHeading($event, heading)\"\n [class.active]=\"\n heading.id === (activeHeadingTracker.activeHeadingId$ | async)\n \"\n >{{ heading.text }}</button\n >\n </li>\n }\n </ul>\n <button\n type=\"button\"\n class=\"back-to-top\"\n (click)=\"scrollToTop()\"\n (keydown.enter)=\"scrollToTop()\"\n >\n Back to top<span\n aria-hidden=\"true\"\n class=\"material-symbols-outlined arrow\"\n >arrow_upward</span\n >\n </button>\n }\n</nav>\n", styles: [".links-container{list-style:none;flex-basis:28%;padding:0;margin:0;width:250px}.index-title{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-medium);font-size:9pt;letter-spacing:.25pt;line-height:12pt;letter-spacing:.8pt;text-transform:uppercase;padding-bottom:.25rem}.toc-link{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:11pt;letter-spacing:0;line-height:16pt;cursor:pointer;padding-top:.25rem;padding-bottom:.25rem;padding-left:calc((var(--level) - 1) * 1rem);display:block;border-left:2px solid var(--hsi-adk-color-muted-primary-90);color:var(--hsi-adk-color-muted-primary-50);text-align:left}.toc-link:hover{color:var(--hsi-adk-color-muted-primary-25);border-left:2px solid var(--hsi-adk-color-muted-primary-70)}.toc-link.active{color:var(--hsi-adk-color-primary-40);border-left:2px solid var(--hsi-adk-color-primary-40)}.back-to-top{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:11pt;letter-spacing:0;line-height:16pt;cursor:pointer;padding:.5rem 0;display:flex;align-items:center;text-align:left;color:var(--hsi-adk-color-muted-primary-40)}.back-to-top:hover{color:var(--hsi-adk-color-muted-primary-10)}.arrow{transform:scale(.7)}\n"] }]
|
|
524
|
-
}],
|
|
524
|
+
}], propDecorators: { headings: [{
|
|
525
525
|
type: Input
|
|
526
526
|
}], activeHeading: [{
|
|
527
527
|
type: Output
|
|
@@ -590,19 +590,19 @@ class AdkDocumentationConfigParser {
|
|
|
590
590
|
}
|
|
591
591
|
return result;
|
|
592
592
|
}
|
|
593
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
594
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
593
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationConfigParser, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
594
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationConfigParser }); }
|
|
595
595
|
}
|
|
596
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
596
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationConfigParser, decorators: [{
|
|
597
597
|
type: Injectable
|
|
598
598
|
}] });
|
|
599
599
|
|
|
600
600
|
class AdkDocumentationContentService {
|
|
601
|
-
constructor(
|
|
602
|
-
this.assetsService = assetsService;
|
|
603
|
-
this.docsConfigParser = docsConfigParser;
|
|
604
|
-
this.markdownParser = markdownParser;
|
|
601
|
+
constructor() {
|
|
605
602
|
this.files = {};
|
|
603
|
+
this.assetsService = inject(AdkAssetsService);
|
|
604
|
+
this.docsConfigParser = inject(AdkDocumentationConfigParser);
|
|
605
|
+
this.markdownParser = inject(AdkMarkdownParser);
|
|
606
606
|
}
|
|
607
607
|
/**
|
|
608
608
|
* This service requires the consuming app to provide the AdkDocumentationDisplayService, the AdkAssetsService, and the AdkDocumentationConfigParser at the level at which this service is configured.
|
|
@@ -640,17 +640,17 @@ class AdkDocumentationContentService {
|
|
|
640
640
|
}
|
|
641
641
|
return this.files[filePathFromAssets];
|
|
642
642
|
}
|
|
643
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
644
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
643
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
644
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationContentService }); }
|
|
645
645
|
}
|
|
646
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
646
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationContentService, decorators: [{
|
|
647
647
|
type: Injectable
|
|
648
|
-
}]
|
|
648
|
+
}] });
|
|
649
649
|
|
|
650
650
|
class NavigationSiblingsComponent {
|
|
651
|
-
constructor(
|
|
652
|
-
this.titleCase = titleCase;
|
|
651
|
+
constructor() {
|
|
653
652
|
this.nextDoc = new EventEmitter();
|
|
653
|
+
this.titleCase = inject(TitleCasePipe);
|
|
654
654
|
}
|
|
655
655
|
ngOnChanges() {
|
|
656
656
|
this.setDisplayNames();
|
|
@@ -672,27 +672,27 @@ class NavigationSiblingsComponent {
|
|
|
672
672
|
navigateToDoc(sibling) {
|
|
673
673
|
this.nextDoc.emit(sibling);
|
|
674
674
|
}
|
|
675
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
676
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
675
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: NavigationSiblingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
676
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: NavigationSiblingsComponent, isStandalone: true, selector: "hsi-adk-navigation-siblings", inputs: { siblings: "siblings" }, outputs: { nextDoc: "nextDoc" }, providers: [TitleCasePipe], usesOnChanges: true, ngImport: i0, template: "@if (siblings.previous) {\n <div\n class=\"nav-panel previous\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"navigateToDoc(siblings.previous)\"\n (keydown.enter)=\"navigateToDoc(siblings.previous)\"\n ><p class=\"label\">Previous</p\n ><p class=\"name\"\n ><span aria-hidden=\"true\" class=\"material-symbols-outlined arrow\"\n >arrow_back</span\n >{{ previous }}</p\n ></div\n >\n}\n@if (siblings.next) {\n <div\n class=\"nav-panel next\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"navigateToDoc(siblings.next)\"\n (keydown.enter)=\"navigateToDoc(siblings.next)\"\n ><p class=\"label\">Next</p\n ><p class=\"name\"\n >{{ next }}\n <span aria-hidden=\"true\" class=\"material-symbols-outlined arrow\"\n >arrow_forward</span\n ></p\n ></div\n >\n}\n", styles: [":host{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:\"previous next\";gap:1rem}.nav-panel{border:1px solid var(--hsi-adk-color-muted-primary-80);padding:1rem;border-radius:.5rem;cursor:pointer}.nav-panel:hover{background:var(--hsi-adk-color-primary-98);border:1px solid var(--hsi-adk-color-primary-70)}.nav-panel.previous{grid-area:previous}.nav-panel.next{grid-area:next;text-align:right}.nav-panel.next .name,.nav-panel.next .label{justify-content:flex-end}.label{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-medium);font-size:9pt;letter-spacing:.25pt;line-height:12pt;letter-spacing:.8pt;text-transform:uppercase;line-height:1;display:flex;align-items:center}.name{display:flex;align-items:center;position:relative;padding-top:.5rem;color:var(--hsi-adk-color-primary-40)}.arrow{transform:scale(.8);position:relative;top:-1px}.previous .name{left:-6px}.next .name{right:-6px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
677
677
|
}
|
|
678
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
678
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: NavigationSiblingsComponent, decorators: [{
|
|
679
679
|
type: Component,
|
|
680
680
|
args: [{ selector: 'hsi-adk-navigation-siblings', imports: [CommonModule], providers: [TitleCasePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (siblings.previous) {\n <div\n class=\"nav-panel previous\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"navigateToDoc(siblings.previous)\"\n (keydown.enter)=\"navigateToDoc(siblings.previous)\"\n ><p class=\"label\">Previous</p\n ><p class=\"name\"\n ><span aria-hidden=\"true\" class=\"material-symbols-outlined arrow\"\n >arrow_back</span\n >{{ previous }}</p\n ></div\n >\n}\n@if (siblings.next) {\n <div\n class=\"nav-panel next\"\n role=\"link\"\n tabindex=\"0\"\n (click)=\"navigateToDoc(siblings.next)\"\n (keydown.enter)=\"navigateToDoc(siblings.next)\"\n ><p class=\"label\">Next</p\n ><p class=\"name\"\n >{{ next }}\n <span aria-hidden=\"true\" class=\"material-symbols-outlined arrow\"\n >arrow_forward</span\n ></p\n ></div\n >\n}\n", styles: [":host{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:\"previous next\";gap:1rem}.nav-panel{border:1px solid var(--hsi-adk-color-muted-primary-80);padding:1rem;border-radius:.5rem;cursor:pointer}.nav-panel:hover{background:var(--hsi-adk-color-primary-98);border:1px solid var(--hsi-adk-color-primary-70)}.nav-panel.previous{grid-area:previous}.nav-panel.next{grid-area:next;text-align:right}.nav-panel.next .name,.nav-panel.next .label{justify-content:flex-end}.label{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-medium);font-size:9pt;letter-spacing:.25pt;line-height:12pt;letter-spacing:.8pt;text-transform:uppercase;line-height:1;display:flex;align-items:center}.name{display:flex;align-items:center;position:relative;padding-top:.5rem;color:var(--hsi-adk-color-primary-40)}.arrow{transform:scale(.8);position:relative;top:-1px}.previous .name{left:-6px}.next .name{right:-6px}\n"] }]
|
|
681
|
-
}],
|
|
681
|
+
}], propDecorators: { siblings: [{
|
|
682
682
|
type: Input
|
|
683
683
|
}], nextDoc: [{
|
|
684
684
|
type: Output
|
|
685
685
|
}] } });
|
|
686
686
|
|
|
687
687
|
class AdkDocumentationDisplayComponent {
|
|
688
|
-
constructor(
|
|
689
|
-
this.content = content;
|
|
690
|
-
this.activeHeading = activeHeading;
|
|
691
|
-
this.destroyRef = destroyRef;
|
|
692
|
-
this.zone = zone;
|
|
693
|
-
this.document = document;
|
|
688
|
+
constructor() {
|
|
694
689
|
this.showPrevNextNavigation = true;
|
|
695
690
|
this.nextDoc = new EventEmitter();
|
|
691
|
+
this.content = inject(AdkDocumentationContentService);
|
|
692
|
+
this.activeHeading = inject(AdkActiveHeadingTracker);
|
|
693
|
+
this.destroyRef = inject(DestroyRef);
|
|
694
|
+
this.zone = inject(NgZone);
|
|
695
|
+
this.document = inject(DOCUMENT);
|
|
696
696
|
}
|
|
697
697
|
ngOnInit() {
|
|
698
698
|
this.setContent();
|
|
@@ -737,20 +737,17 @@ class AdkDocumentationDisplayComponent {
|
|
|
737
737
|
navigateToDoc(sibling) {
|
|
738
738
|
this.nextDoc.emit(sibling);
|
|
739
739
|
}
|
|
740
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
741
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
740
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
741
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.4", type: AdkDocumentationDisplayComponent, isStandalone: true, selector: "hsi-adk-documentation-display", inputs: { contentPath$: "contentPath$", fileConfig: "fileConfig", highlightTheme: "highlightTheme", pathFromAssetsToFile: "pathFromAssetsToFile", showPrevNextNavigation: "showPrevNextNavigation" }, outputs: { nextDoc: "nextDoc" }, queries: [{ propertyName: "escapedContentTemplateRef", first: true, predicate: ["escapedContent"], descendants: true }], viewQueries: [{ propertyName: "file", first: true, predicate: ["file"], descendants: true }], ngImport: i0, template: "<div class=\"documentation-container\" #file>\n @if (content$ | async; as content) {\n <div class=\"documentation-content\">\n <div class=\"main-content\">\n @for (section of content.sections; track $index) {\n @if (section.type === 'markdown') {\n <div class=\"injected-html\" [innerHTML]=\"section.html\"></div>\n } @else if (section.type === 'escaped') {\n @if (escapedContentTemplateRef) {\n <ng-container\n [ngTemplateOutlet]=\"escapedContentTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: section }\"\n >\n </ng-container>\n }\n }\n }\n @if (showPrevNextNavigation) {\n <hsi-adk-navigation-siblings\n class=\"nav-siblings\"\n [siblings]=\"content.siblings\"\n (nextDoc)=\"navigateToDoc($event)\"\n ></hsi-adk-navigation-siblings>\n }\n </div>\n <hsi-adk-document-index\n class=\"document-index\"\n [headings]=\"content.headings.slice(1)\"\n (activeHeading)=\"scrollToHeading($event)\"\n ></hsi-adk-document-index>\n </div>\n }\n</div>\n", styles: [".documentation-container{margin:0 auto;max-width:1200px}.documentation-container .documentation-content{display:flex;gap:7.5rem;margin-top:1.5rem}.documentation-container .document-index{display:block;position:sticky;top:8rem;max-height:calc(100vh - 10rem)}.documentation-container .main-content{width:75%}.documentation-container .nav-siblings{padding-top:2.5rem;padding-bottom:5rem}.documentation-container .injected-html h1{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:32pt;letter-spacing:0;line-height:40pt;margin:0 0 1.75rem;width:100%}.documentation-container .injected-html h2{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:24pt;letter-spacing:0;line-height:32pt}.documentation-container .injected-html h3{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-medium);font-size:14pt;letter-spacing:.25pt;line-height:20pt}.documentation-container .injected-html h2,.documentation-container .injected-html h3,.documentation-container .injected-html h4{margin:0;padding-top:1rem;padding-bottom:1.5rem}.documentation-container .injected-html p{padding-bottom:1.5rem;line-height:1.8}.documentation-container .injected-html ol{margin:0;padding-bottom:1.5rem}.documentation-container .injected-html li>p:not(.code-caption){padding-bottom:1rem}.documentation-container .injected-html pre{margin:0;padding-bottom:1.5rem}.documentation-container .injected-html a{cursor:pointer;color:var(--hsi-adk-color-primary-40)}.documentation-container .injected-html a:hover{text-decoration:underline}.documentation-container .injected-html .shiki{margin:0;padding:1rem;border:1px solid var(--hsi-adk-color-muted-primary-90);border-radius:.5rem;margin-bottom:2rem;white-space:pre-wrap}.documentation-container .injected-html p.code-caption{margin-bottom:0;padding-bottom:0;font-style:italic}.documentation-container .injected-html p.code-caption code{font-style:normal}.documentation-container .injected-html p.code-caption+pre.shiki{display:block;margin-top:2px}.documentation-container .injected-html p:has(>code)+hr{margin:0;border-top:1px solid var(--hsi-adk-color-muted-primary-80);margin-bottom:1.5rem}.documentation-container .injected-html P:has(>code):has(+hr){padding-bottom:.5rem}.documentation-container .injected-html h1>code,.documentation-container .injected-html h2>code,.documentation-container .injected-html h3>code,.documentation-container .injected-html h4>code,.documentation-container .injected-html h5>code,.documentation-container .injected-html h6>code,.documentation-container .injected-html li>code,.documentation-container .injected-html li>em>code,.documentation-container .injected-html p>code p>em>code{font-family:var(--hsi-adk-font-mono);font-weight:500;padding-left:.25rem;padding-right:.25rem;background:var(--hsi-adk-color-muted-primary-95);border-radius:.25rem;color:var(--hsi-adk-color-primary-40);padding:.125rem .25rem}.documentation-container .injected-html p>code,.documentation-container .injected-html p>em>code{font-size:15px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: AdkDocumentIndexComponent, selector: "hsi-adk-document-index", inputs: ["headings"], outputs: ["activeHeading"] }, { kind: "component", type: NavigationSiblingsComponent, selector: "hsi-adk-navigation-siblings", inputs: ["siblings"], outputs: ["nextDoc"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
742
742
|
}
|
|
743
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
743
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.4", ngImport: i0, type: AdkDocumentationDisplayComponent, decorators: [{
|
|
744
744
|
type: Component,
|
|
745
745
|
args: [{ selector: 'hsi-adk-documentation-display', imports: [
|
|
746
746
|
CommonModule,
|
|
747
747
|
AdkDocumentIndexComponent,
|
|
748
748
|
NavigationSiblingsComponent,
|
|
749
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"documentation-container\" #file>\n @if (content$ | async; as content) {\n <div class=\"documentation-content\">\n <div class=\"main-content\">\n @for (section of content.sections; track $index) {\n @if (section.type === 'markdown') {\n <div class=\"injected-html\" [innerHTML]=\"section.html\"></div>\n } @else if (section.type === 'escaped') {\n <ng-container\n
|
|
750
|
-
}],
|
|
751
|
-
type: Inject,
|
|
752
|
-
args: [DOCUMENT]
|
|
753
|
-
}] }], propDecorators: { contentPath$: [{
|
|
749
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"documentation-container\" #file>\n @if (content$ | async; as content) {\n <div class=\"documentation-content\">\n <div class=\"main-content\">\n @for (section of content.sections; track $index) {\n @if (section.type === 'markdown') {\n <div class=\"injected-html\" [innerHTML]=\"section.html\"></div>\n } @else if (section.type === 'escaped') {\n @if (escapedContentTemplateRef) {\n <ng-container\n [ngTemplateOutlet]=\"escapedContentTemplateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: section }\"\n >\n </ng-container>\n }\n }\n }\n @if (showPrevNextNavigation) {\n <hsi-adk-navigation-siblings\n class=\"nav-siblings\"\n [siblings]=\"content.siblings\"\n (nextDoc)=\"navigateToDoc($event)\"\n ></hsi-adk-navigation-siblings>\n }\n </div>\n <hsi-adk-document-index\n class=\"document-index\"\n [headings]=\"content.headings.slice(1)\"\n (activeHeading)=\"scrollToHeading($event)\"\n ></hsi-adk-document-index>\n </div>\n }\n</div>\n", styles: [".documentation-container{margin:0 auto;max-width:1200px}.documentation-container .documentation-content{display:flex;gap:7.5rem;margin-top:1.5rem}.documentation-container .document-index{display:block;position:sticky;top:8rem;max-height:calc(100vh - 10rem)}.documentation-container .main-content{width:75%}.documentation-container .nav-siblings{padding-top:2.5rem;padding-bottom:5rem}.documentation-container .injected-html h1{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:32pt;letter-spacing:0;line-height:40pt;margin:0 0 1.75rem;width:100%}.documentation-container .injected-html h2{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-regular);font-size:24pt;letter-spacing:0;line-height:32pt}.documentation-container .injected-html h3{font-family:var(--hsi-adk-font-sans);font-weight:var(--hsi-adk-font-weight-medium);font-size:14pt;letter-spacing:.25pt;line-height:20pt}.documentation-container .injected-html h2,.documentation-container .injected-html h3,.documentation-container .injected-html h4{margin:0;padding-top:1rem;padding-bottom:1.5rem}.documentation-container .injected-html p{padding-bottom:1.5rem;line-height:1.8}.documentation-container .injected-html ol{margin:0;padding-bottom:1.5rem}.documentation-container .injected-html li>p:not(.code-caption){padding-bottom:1rem}.documentation-container .injected-html pre{margin:0;padding-bottom:1.5rem}.documentation-container .injected-html a{cursor:pointer;color:var(--hsi-adk-color-primary-40)}.documentation-container .injected-html a:hover{text-decoration:underline}.documentation-container .injected-html .shiki{margin:0;padding:1rem;border:1px solid var(--hsi-adk-color-muted-primary-90);border-radius:.5rem;margin-bottom:2rem;white-space:pre-wrap}.documentation-container .injected-html p.code-caption{margin-bottom:0;padding-bottom:0;font-style:italic}.documentation-container .injected-html p.code-caption code{font-style:normal}.documentation-container .injected-html p.code-caption+pre.shiki{display:block;margin-top:2px}.documentation-container .injected-html p:has(>code)+hr{margin:0;border-top:1px solid var(--hsi-adk-color-muted-primary-80);margin-bottom:1.5rem}.documentation-container .injected-html P:has(>code):has(+hr){padding-bottom:.5rem}.documentation-container .injected-html h1>code,.documentation-container .injected-html h2>code,.documentation-container .injected-html h3>code,.documentation-container .injected-html h4>code,.documentation-container .injected-html h5>code,.documentation-container .injected-html h6>code,.documentation-container .injected-html li>code,.documentation-container .injected-html li>em>code,.documentation-container .injected-html p>code p>em>code{font-family:var(--hsi-adk-font-mono);font-weight:500;padding-left:.25rem;padding-right:.25rem;background:var(--hsi-adk-color-muted-primary-95);border-radius:.25rem;color:var(--hsi-adk-color-primary-40);padding:.125rem .25rem}.documentation-container .injected-html p>code,.documentation-container .injected-html p>em>code{font-size:15px}\n"] }]
|
|
750
|
+
}], propDecorators: { contentPath$: [{
|
|
754
751
|
type: Input
|
|
755
752
|
}], fileConfig: [{
|
|
756
753
|
type: Input
|