ngx-edu-sharing-ui 10.0.8 → 10.0.10

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.
Files changed (33) hide show
  1. package/assets/scss/branding.scss +3 -8
  2. package/assets/scss/material-theme.scss +36 -36
  3. package/assets/scss/variables-scss.scss +2 -1
  4. package/assets/scss/variables.scss +5 -0
  5. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +20 -4
  6. package/esm2022/lib/directives/icon.directive.mjs +37 -16
  7. package/esm2022/lib/index.mjs +7 -1
  8. package/esm2022/lib/mds-viewer/mds-viewer.component.mjs +156 -0
  9. package/esm2022/lib/mds-viewer/mds-viewer.service.mjs +18 -0
  10. package/esm2022/lib/mds-viewer/replace-element-with-div.mjs +47 -0
  11. package/esm2022/lib/mds-viewer/view-instance.service.mjs +27 -0
  12. package/esm2022/lib/mds-viewer/widget/mds-widget.component.mjs +349 -0
  13. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +2 -2
  14. package/esm2022/lib/pipes/mds-duration.pipe.mjs +25 -0
  15. package/esm2022/lib/services/node-helper.service.mjs +21 -18
  16. package/esm2022/lib/services/options-helper-data.service.mjs +2 -2
  17. package/esm2022/lib/services/ui.service.mjs +147 -3
  18. package/esm2022/lib/util/rest-helper.mjs +11 -4
  19. package/fesm2022/ngx-edu-sharing-ui.mjs +2971 -2203
  20. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  21. package/lib/common/edu-sharing-ui-common.module.d.ts +33 -30
  22. package/lib/directives/icon.directive.d.ts +4 -2
  23. package/lib/index.d.ts +6 -0
  24. package/lib/mds-viewer/mds-viewer.component.d.ts +52 -0
  25. package/lib/mds-viewer/mds-viewer.service.d.ts +12 -0
  26. package/lib/mds-viewer/replace-element-with-div.d.ts +8 -0
  27. package/lib/mds-viewer/view-instance.service.d.ts +20 -0
  28. package/lib/mds-viewer/widget/mds-widget.component.d.ts +111 -0
  29. package/lib/pipes/mds-duration.pipe.d.ts +7 -0
  30. package/lib/services/node-helper.service.d.ts +3 -0
  31. package/lib/services/ui.service.d.ts +32 -1
  32. package/lib/util/rest-helper.d.ts +1 -0
  33. package/package.json +1 -1
@@ -0,0 +1,156 @@
1
+ import { Component, Input, ViewChildren, } from '@angular/core';
2
+ import { MdsWidgetComponent } from './widget/mds-widget.component';
3
+ import { HOME_REPOSITORY, RestConstants, } from 'ngx-edu-sharing-api';
4
+ import { replaceElementWithDiv } from './replace-element-with-div';
5
+ import { UIService } from '../services/ui.service';
6
+ import { MdsViewerService } from './mds-viewer.service';
7
+ import { ViewInstanceService } from './view-instance.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "ngx-edu-sharing-api";
10
+ import * as i2 from "./mds-viewer.service";
11
+ import * as i3 from "@angular/platform-browser";
12
+ import * as i4 from "./view-instance.service";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "../directives/icon.directive";
15
+ export class MdsViewerComponent {
16
+ /**
17
+ * The heading level from 1 to 6 to use for widget labels, equivalent to `h1` to `h6`.
18
+ *
19
+ * If not set, widget labels are not marked as headings and an invisible colon is added between
20
+ * labels and values, that will be read out by screen readers.
21
+ */
22
+ set headingLevel(value) {
23
+ this.viewInstance.headingLevel = value;
24
+ }
25
+ get headingLevel() {
26
+ return this.viewInstance.headingLevel;
27
+ }
28
+ constructor(mdsService, mdsViewerService, factoryResolver, injector, containerRef, sanitizer, viewInstance) {
29
+ this.mdsService = mdsService;
30
+ this.mdsViewerService = mdsViewerService;
31
+ this.factoryResolver = factoryResolver;
32
+ this.injector = injector;
33
+ this.containerRef = containerRef;
34
+ this.sanitizer = sanitizer;
35
+ this.viewInstance = viewInstance;
36
+ /**
37
+ * show group headings (+ icons) for the individual templates
38
+ */
39
+ this.showGroupHeadings = true;
40
+ }
41
+ getGroup() {
42
+ return this.mds.groups.find((g) => g.id == this.groupId);
43
+ }
44
+ getView(id) {
45
+ return this.mds.views.find((v) => v.id == id);
46
+ }
47
+ async inflate() {
48
+ if (!this.mds) {
49
+ setTimeout(() => this.inflate(), 1000 / 60);
50
+ return;
51
+ }
52
+ try {
53
+ this.mdsViewerService.values$.next(this.data);
54
+ this.mdsViewerService.mds$.next(this.mds);
55
+ if (this.mdsEditorInstanceService) {
56
+ const editor = await this.mdsEditorInstanceService.initWithoutNodes(this.groupId, this.setId, HOME_REPOSITORY, 'viewer', this.data);
57
+ if (!editor) {
58
+ // Initialization was interrupted. Probably, this method was called again before it
59
+ // could finish.
60
+ return;
61
+ }
62
+ }
63
+ }
64
+ catch (e) {
65
+ return;
66
+ }
67
+ this.templates = [];
68
+ for (const view of this.getGroup().views) {
69
+ const v = this.getView(view);
70
+ this.templates.push({
71
+ view: v,
72
+ html: this.sanitizer.bypassSecurityTrustHtml(this.prepareHTML(v.html)),
73
+ });
74
+ }
75
+ // wait for angular to inflate the new binding
76
+ setTimeout(() => {
77
+ for (const widget of (this.mdsEditorInstanceService?.widgets.value.map((w) => w.definition) || this.mds.widgets)) {
78
+ // @TODO: it would be better to filter by widgets based on template and condition, should be implemented in 5.1
79
+ this.container.toArray().forEach((c) => {
80
+ let element = c.nativeElement.getElementsByTagName(widget.id)?.[0];
81
+ if (element) {
82
+ // MdsEditorViewComponent.updateWidgetWithHTMLAttributes(element, w);
83
+ element = replaceElementWithDiv(element);
84
+ UIService.injectAngularComponent(this.factoryResolver, this.containerRef, MdsWidgetComponent, element, {
85
+ widget,
86
+ }, {}, this.injector);
87
+ }
88
+ });
89
+ }
90
+ });
91
+ }
92
+ /**
93
+ * close all custom tags inside the html which are not closed
94
+ * e.g. <cm:name>
95
+ * -> <cm:name></cm:name>
96
+ * @param html
97
+ */
98
+ prepareHTML(html) {
99
+ for (const w of this.mds.widgets) {
100
+ const start = html.indexOf('<' + w.id);
101
+ if (start == -1) {
102
+ continue;
103
+ }
104
+ const end = html.indexOf('>', start) + 1;
105
+ html = html.substring(0, end) + '</' + w.id + '>' + html.substring(end);
106
+ }
107
+ return html;
108
+ }
109
+ async ngOnChanges(changes) {
110
+ let inflate = false;
111
+ if (changes.setId) {
112
+ this.mds = await this.mdsService
113
+ .getMetadataSet({ metadataSet: this.setId })
114
+ .toPromise();
115
+ inflate = true;
116
+ }
117
+ if (changes.data) {
118
+ if (this.data[RestConstants.CM_PROP_METADATASET_EDU_METADATASET] != null) {
119
+ this.mds = await this.mdsService
120
+ .getMetadataSet({
121
+ metadataSet: this.data[RestConstants.CM_PROP_METADATASET_EDU_METADATASET][0],
122
+ })
123
+ .toPromise();
124
+ }
125
+ else if (!this.mds) {
126
+ this.mds = await this.mdsService.getMetadataSet({}).toPromise();
127
+ }
128
+ inflate = true;
129
+ }
130
+ if (inflate) {
131
+ void this.inflate();
132
+ }
133
+ }
134
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsViewerComponent, deps: [{ token: i1.MdsService }, { token: i2.MdsViewerService }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i0.ViewContainerRef }, { token: i3.DomSanitizer }, { token: i4.ViewInstanceService }], target: i0.ɵɵFactoryTarget.Component }); }
135
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: MdsViewerComponent, selector: "es-mds-viewer", inputs: { mdsEditorInstanceService: "mdsEditorInstanceService", groupId: "groupId", setId: "setId", data: "data", showGroupHeadings: "showGroupHeadings", headingLevel: "headingLevel" }, providers: [MdsViewerService, ViewInstanceService], viewQueries: [{ propertyName: "container", predicate: ["container"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngFor=\"let t of templates\" #container class=\"mds-viewer\">\n <div *ngIf=\"showGroupHeadings && t.view.caption\" class=\"card-title-element group-heading\">\n <i [esIcon]=\"t.view.icon\" *ngIf=\"t.view.icon\"></i><span>{{ t.view.caption }}</span>\n </div>\n <div class=\"template\" [innerHTML]=\"t.html\"></div>\n</div>\n", styles: [":host ::ng-deep es-mds-editor-widget-container{margin-bottom:0}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.IconDirective, selector: "i[esIcon], i.material-icons", inputs: ["altText", "aria", "esIcon"] }] }); }
136
+ }
137
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsViewerComponent, decorators: [{
138
+ type: Component,
139
+ args: [{ selector: 'es-mds-viewer', providers: [MdsViewerService, ViewInstanceService], template: "<div *ngFor=\"let t of templates\" #container class=\"mds-viewer\">\n <div *ngIf=\"showGroupHeadings && t.view.caption\" class=\"card-title-element group-heading\">\n <i [esIcon]=\"t.view.icon\" *ngIf=\"t.view.icon\"></i><span>{{ t.view.caption }}</span>\n </div>\n <div class=\"template\" [innerHTML]=\"t.html\"></div>\n</div>\n", styles: [":host ::ng-deep es-mds-editor-widget-container{margin-bottom:0}\n"] }]
140
+ }], ctorParameters: () => [{ type: i1.MdsService }, { type: i2.MdsViewerService }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i0.ViewContainerRef }, { type: i3.DomSanitizer }, { type: i4.ViewInstanceService }], propDecorators: { container: [{
141
+ type: ViewChildren,
142
+ args: ['container']
143
+ }], mdsEditorInstanceService: [{
144
+ type: Input
145
+ }], groupId: [{
146
+ type: Input
147
+ }], setId: [{
148
+ type: Input
149
+ }], data: [{
150
+ type: Input
151
+ }], showGroupHeadings: [{
152
+ type: Input
153
+ }], headingLevel: [{
154
+ type: Input
155
+ }] } });
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL21kcy12aWV3ZXIvbWRzLXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL21kcy12aWV3ZXIvbWRzLXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUlULEtBQUssRUFJTCxZQUFZLEdBRWYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbkUsT0FBTyxFQUNILGVBQWUsRUFJZixhQUFhLEdBQ2hCLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQVE5RCxNQUFNLE9BQU8sa0JBQWtCO0lBa0IzQjs7Ozs7T0FLRztJQUNILElBQ0ksWUFBWSxDQUFDLEtBQW9CO1FBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBQ0QsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQztJQUMxQyxDQUFDO0lBRUQsWUFDWSxVQUFzQixFQUN0QixnQkFBa0MsRUFDbEMsZUFBeUMsRUFDekMsUUFBa0IsRUFDbEIsWUFBOEIsRUFDOUIsU0FBdUIsRUFDdkIsWUFBaUM7UUFOakMsZUFBVSxH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TjlCLFNBQVM7K0JBQ0ksZUFBZSxhQUdkLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7d1FBR3ZCLFNBQVM7c0JBQW5DLFlBQVk7dUJBQUMsV0FBVztnQkFFaEIsd0JBQXdCO3NCQUFoQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQVVHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFTRixZQUFZO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgRWxlbWVudFJlZixcbiAgICBJbmplY3RvcixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkcmVuLFxuICAgIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgTWRzV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi93aWRnZXQvbWRzLXdpZGdldC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgICBIT01FX1JFUE9TSVRPUlksXG4gICAgTWRzRGVmaW5pdGlvbixcbiAgICBNZHNTZXJ2aWNlLFxuICAgIE1kc1ZpZXcsIE1kc1dpZGdldCxcbiAgICBSZXN0Q29uc3RhbnRzLFxufSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IFZhbHVlcyB9IGZyb20gJy4uL3NlcnZpY2VzL3NlYXJjaC1oZWxwZXIuc2VydmljZSc7XG5pbXBvcnQgeyByZXBsYWNlRWxlbWVudFdpdGhEaXYgfSBmcm9tICcuL3JlcGxhY2UtZWxlbWVudC13aXRoLWRpdic7XG5pbXBvcnQgeyBVSVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91aS5zZXJ2aWNlJztcbmltcG9ydCB7IE1kc1ZpZXdlclNlcnZpY2UgfSBmcm9tICcuL21kcy12aWV3ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBWaWV3SW5zdGFuY2VTZXJ2aWNlIH0gZnJvbSAnLi92aWV3LWluc3RhbmNlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2VzLW1kcy12aWV3ZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnbWRzLXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ21kcy12aWV3ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtNZHNWaWV3ZXJTZXJ2aWNlLCBWaWV3SW5zdGFuY2VTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWRzVmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkcmVuKCdjb250YWluZXInKSBjb250YWluZXI6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBJbnB1dCgpIG1kc0VkaXRvckluc3RhbmNlU2VydmljZTogYW55O1xuICAgIEBJbnB1dCgpIGdyb3VwSWQ6IHN0cmluZztcbiAgICBASW5wdXQoKSBzZXRJZDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGRhdGE6IFZhbHVlcztcbiAgICBtZHM6IE1kc0RlZmluaXRpb247XG4gICAgdGVtcGxhdGVzOiB7XG4gICAgICAgIHZpZXc6IE1kc1ZpZXc7XG4gICAgICAgIGh0bWw6IFNhZmVIdG1sO1xuICAgIH1bXTtcblxuICAgIC8qKlxuICAgICAqIHNob3cgZ3JvdXAgaGVhZGluZ3MgKCsgaWNvbnMpIGZvciB0aGUgaW5kaXZpZHVhbCB0ZW1wbGF0ZXNcbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG93R3JvdXBIZWFkaW5ncyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGluZyBsZXZlbCBmcm9tIDEgdG8gNiB0byB1c2UgZm9yIHdpZGdldCBsYWJlbHMsIGVxdWl2YWxlbnQgdG8gYGgxYCB0byBgaDZgLlxuICAgICAqXG4gICAgICogSWYgbm90IHNldCwgd2lkZ2V0IGxhYmVscyBhcmUgbm90IG1hcmtlZCBhcyBoZWFkaW5ncyBhbmQgYW4gaW52aXNpYmxlIGNvbG9uIGlzIGFkZGVkIGJldHdlZW5cbiAgICAgKiBsYWJlbHMgYW5kIHZhbHVlcywgdGhhdCB3aWxsIGJlIHJlYWQgb3V0IGJ5IHNjcmVlbiByZWFkZXJzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGhlYWRpbmdMZXZlbCh2YWx1ZTogbnVtYmVyIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnZpZXdJbnN0YW5jZS5oZWFkaW5nTGV2ZWwgPSB2YWx1ZTtcbiAgICB9XG4gICAgZ2V0IGhlYWRpbmdMZXZlbCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld0luc3RhbmNlLmhlYWRpbmdMZXZlbDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBtZHNTZXJ2aWNlOiBNZHNTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1kc1ZpZXdlclNlcnZpY2U6IE1kc1ZpZXdlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgcHJpdmF0ZSB2aWV3SW5zdGFuY2U6IFZpZXdJbnN0YW5jZVNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgZ2V0R3JvdXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1kcy5ncm91cHMuZmluZCgoZzogYW55KSA9PiBnLmlkID09IHRoaXMuZ3JvdXBJZCk7XG4gICAgfVxuICAgIGdldFZpZXcoaWQ6IHN0cmluZykge1xuICAgICAgICByZXR1cm4gdGhpcy5tZHMudmlld3MuZmluZCgodjogYW55KSA9PiB2LmlkID09IGlkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYXN5bmMgaW5mbGF0ZSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1kcykge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmluZmxhdGUoKSwgMTAwMCAvIDYwKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0cnkge1xuICAgICAgICAgICAgdGhpcy5tZHNWaWV3ZXJTZXJ2aWNlLnZhbHVlcyQubmV4dCh0aGlzLmRhdGEpO1xuICAgICAgICAgICAgdGhpcy5tZHNWaWV3ZXJTZXJ2aWNlLm1kcyQubmV4dCh0aGlzLm1kcyk7XG4gICAgICAgICAgICBpZih0aGlzLm1kc0VkaXRvckluc3RhbmNlU2VydmljZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVkaXRvciA9IGF3YWl0IHRoaXMubWRzRWRpdG9ySW5zdGFuY2VTZXJ2aWNlLmluaXRXaXRob3V0Tm9kZXMoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JvdXBJZCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRJZCxcbiAgICAgICAgICAgICAgICAgICAgSE9NRV9SRVBPU0lUT1JZLFxuICAgICAgICAgICAgICAgICAgICAndmlld2VyJyxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFlZGl0b3IpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6YXRpb24gd2FzIGludGVycnVwdGVkLiBQcm9iYWJseSwgdGhpcyBtZXRob2Qgd2FzIGNhbGxlZCBhZ2FpbiBiZWZvcmUgaXRcbiAgICAgICAgICAgICAgICAgICAgLy8gY291bGQgZmluaXNoLlxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCB2aWV3IG9mIHRoaXMuZ2V0R3JvdXAoKS52aWV3cykge1xuICAgICAgICAgICAgY29uc3QgdiA9IHRoaXMuZ2V0Vmlldyh2aWV3KTtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzLnB1c2goe1xuICAgICAgICAgICAgICAgIHZpZXc6IHYsXG4gICAgICAgICAgICAgICAgaHRtbDogdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwodGhpcy5wcmVwYXJlSFRNTCh2Lmh0bWwpKSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIC8vIHdhaXQgZm9yIGFuZ3VsYXIgdG8gaW5mbGF0ZSB0aGUgbmV3IGJpbmRpbmdcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IHdpZGdldCBvZiAodGhpcy5tZHNFZGl0b3JJbnN0YW5jZVNlcnZpY2U/LndpZGdldHMudmFsdWUubWFwKCh3OiBhbnkpID0+IHcuZGVmaW5pdGlvbikgfHwgdGhpcy5tZHMud2lkZ2V0cykgYXMgTWRzV2lkZ2V0W10pIHtcbiAgICAgICAgICAgICAgICAvLyBAVE9ETzogaXQgd291bGQgYmUgYmV0dGVyIHRvIGZpbHRlciBieSB3aWRnZXRzIGJhc2VkIG9uIHRlbXBsYXRlIGFuZCBjb25kaXRpb24sIHNob3VsZCBiZSBpbXBsZW1lbnRlZCBpbiA1LjFcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRhaW5lci50b0FycmF5KCkuZm9yRWFjaCgoYykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZWxlbWVudDogSFRNTEVsZW1lbnQgPSBjLm5hdGl2ZUVsZW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXQuaWQsXG4gICAgICAgICAgICAgICAgICAgICk/LlswXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIE1kc0VkaXRvclZpZXdDb21wb25lbnQudXBkYXRlV2lkZ2V0V2l0aEhUTUxBdHRyaWJ1dGVzKGVsZW1lbnQsIHcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudCA9IHJlcGxhY2VFbGVtZW50V2l0aERpdihlbGVtZW50KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgVUlTZXJ2aWNlLmluamVjdEFuZ3VsYXJDb21wb25lbnQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250YWluZXJSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgTWRzV2lkZ2V0Q29tcG9uZW50LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWRnZXQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBjbG9zZSBhbGwgY3VzdG9tIHRhZ3MgaW5zaWRlIHRoZSBodG1sIHdoaWNoIGFyZSBub3QgY2xvc2VkXG4gICAgICogZS5nLiA8Y206bmFtZT5cbiAgICAgKiAgICAgLT4gPGNtOm5hbWU+PC9jbTpuYW1lPlxuICAgICAqIEBwYXJhbSBodG1sXG4gICAgICovXG4gICAgcHJpdmF0ZSBwcmVwYXJlSFRNTChodG1sOiBzdHJpbmcpIHtcbiAgICAgICAgZm9yIChjb25zdCB3IG9mIHRoaXMubWRzLndpZGdldHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXJ0ID0gaHRtbC5pbmRleE9mKCc8JyArIHcuaWQpO1xuICAgICAgICAgICAgaWYgKHN0YXJ0ID09IC0xKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBlbmQgPSBodG1sLmluZGV4T2YoJz4nLCBzdGFydCkgKyAxO1xuICAgICAgICAgICAgaHRtbCA9IGh0bWwuc3Vic3RyaW5nKDAsIGVuZCkgKyAnPC8nICsgdy5pZCArICc+JyArIGh0bWwuc3Vic3RyaW5nKGVuZCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGh0bWw7XG4gICAgfVxuXG4gICAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICBsZXQgaW5mbGF0ZSA9IGZhbHNlO1xuICAgICAgICBpZiAoY2hhbmdlcy5zZXRJZCkge1xuICAgICAgICAgICAgdGhpcy5tZHMgPSBhd2FpdCB0aGlzLm1kc1NlcnZpY2VcbiAgICAgICAgICAgICAgICAuZ2V0TWV0YWRhdGFTZXQoeyBtZXRhZGF0YVNldDogdGhpcy5zZXRJZCB9KVxuICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIGluZmxhdGUgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFuZ2VzLmRhdGEpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFbUmVzdENvbnN0YW50cy5DTV9QUk9QX01FVEFEQVRBU0VUX0VEVV9NRVRBREFUQVNFVF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubWRzID0gYXdhaXQgdGhpcy5tZHNTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5nZXRNZXRhZGF0YVNldCh7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YVNldDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFbUmVzdENvbnN0YW50cy5DTV9QUk9QX01FVEFEQVRBU0VUX0VEVV9NRVRBREFUQVNFVF1bMF0sXG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgIC50b1Byb21pc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMubWRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tZHMgPSBhd2FpdCB0aGlzLm1kc1NlcnZpY2UuZ2V0TWV0YWRhdGFTZXQoe30pLnRvUHJvbWlzZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaW5mbGF0ZSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZmxhdGUpIHtcbiAgICAgICAgICAgIHZvaWQgdGhpcy5pbmZsYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2ICpuZ0Zvcj1cImxldCB0IG9mIHRlbXBsYXRlc1wiICNjb250YWluZXIgY2xhc3M9XCJtZHMtdmlld2VyXCI+XG4gIDxkaXYgKm5nSWY9XCJzaG93R3JvdXBIZWFkaW5ncyAmJiB0LnZpZXcuY2FwdGlvblwiIGNsYXNzPVwiY2FyZC10aXRsZS1lbGVtZW50IGdyb3VwLWhlYWRpbmdcIj5cbiAgICA8aSBbZXNJY29uXT1cInQudmlldy5pY29uXCIgKm5nSWY9XCJ0LnZpZXcuaWNvblwiPjwvaT48c3Bhbj57eyB0LnZpZXcuY2FwdGlvbiB9fTwvc3Bhbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZVwiIFtpbm5lckhUTUxdPVwidC5odG1sXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,18 @@
1
+ import { Injectable, ViewChildren } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class MdsViewerService {
5
+ constructor() {
6
+ this.values$ = new BehaviorSubject(undefined);
7
+ this.mds$ = new BehaviorSubject(undefined);
8
+ }
9
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsViewerService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
10
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsViewerService }); }
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: MdsViewerService, decorators: [{
13
+ type: Injectable
14
+ }], propDecorators: { container: [{
15
+ type: ViewChildren,
16
+ args: ['container']
17
+ }] } });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWRzLXZpZXdlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9tZHMtdmlld2VyL21kcy12aWV3ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFhLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUl2QyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBR0ksWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELFNBQUksR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUM7S0FDeEQ7K0dBSlksZ0JBQWdCO21IQUFoQixnQkFBZ0I7OzRGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVU7OEJBRW9CLFNBQVM7c0JBQW5DLFlBQVk7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNZHNEZWZpbml0aW9uIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFZhbHVlcyB9IGZyb20gJy4uL3NlcnZpY2VzL3NlYXJjaC1oZWxwZXIuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBNZHNWaWV3ZXJTZXJ2aWNlIHtcbiAgICBAVmlld0NoaWxkcmVuKCdjb250YWluZXInKSBjb250YWluZXI6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICB2YWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxWYWx1ZXM+KHVuZGVmaW5lZCk7XG4gICAgbWRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8TWRzRGVmaW5pdGlvbj4odW5kZWZpbmVkKTtcbn1cbiJdfQ==
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Replaces the given element with a div within the DOM.
3
+ *
4
+ * The purpose is to comply with W3C specifications for element and attribute names.
5
+ *
6
+ * Sets the attribute "data-element" to the old element tag name.
7
+ */
8
+ export function replaceElementWithDiv(element, mode = 'replace') {
9
+ const div = document.createElement('div');
10
+ div.setAttribute('data-element', element.localName);
11
+ for (const attribute of element.attributes) {
12
+ const targetAttributeName = getTargetAttributeName(attribute);
13
+ div.setAttribute(targetAttributeName, attribute.nodeValue);
14
+ }
15
+ if (element.parentNode) {
16
+ if (mode === 'append') {
17
+ // keep the positioning
18
+ element.parentNode.insertBefore(div, element);
19
+ // element.parentNode.append(div);
20
+ }
21
+ else if (mode === 'replace') {
22
+ element.parentNode.replaceChild(div, element);
23
+ }
24
+ }
25
+ else {
26
+ console.warn('replace child failed for ' + element.localName);
27
+ }
28
+ return div;
29
+ }
30
+ /**
31
+ * Returns the name with which to copy attributes to the new element.
32
+ *
33
+ * Keeps "style", "class", and "data-" attributes and prefixes everything else with
34
+ * "data-attribute-".
35
+ */
36
+ function getTargetAttributeName(attr) {
37
+ if (['style', 'class'].includes(attr.nodeName)) {
38
+ return attr.nodeName;
39
+ }
40
+ else if (attr.nodeName.startsWith('data-')) {
41
+ return attr.nodeName;
42
+ }
43
+ else {
44
+ return 'data-attribute-' + attr.nodeName;
45
+ }
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS1lbGVtZW50LXdpdGgtZGl2LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9tZHMtdmlld2VyL3JlcGxhY2UtZWxlbWVudC13aXRoLWRpdi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCLENBQ2pDLE9BQWdCLEVBQ2hCLE9BQTZCLFNBQVM7SUFFdEMsTUFBTSxHQUFHLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQyxHQUFHLENBQUMsWUFBWSxDQUFDLGNBQWMsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEQsS0FBSyxNQUFNLFNBQVMsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDekMsTUFBTSxtQkFBbUIsR0FBRyxzQkFBc0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5RCxHQUFHLENBQUMsWUFBWSxDQUFDLG1CQUFtQixFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBQ0QsSUFBSSxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDckIsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEIsdUJBQXVCO1lBQ3ZCLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5QyxrQ0FBa0M7UUFDdEMsQ0FBQzthQUFNLElBQUksSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0wsQ0FBQztTQUFNLENBQUM7UUFDSixPQUFPLENBQUMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFTLHNCQUFzQixDQUFDLElBQVU7SUFDdEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7U0FBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQzdDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXBsYWNlcyB0aGUgZ2l2ZW4gZWxlbWVudCB3aXRoIGEgZGl2IHdpdGhpbiB0aGUgRE9NLlxuICpcbiAqIFRoZSBwdXJwb3NlIGlzIHRvIGNvbXBseSB3aXRoIFczQyBzcGVjaWZpY2F0aW9ucyBmb3IgZWxlbWVudCBhbmQgYXR0cmlidXRlIG5hbWVzLlxuICpcbiAqIFNldHMgdGhlIGF0dHJpYnV0ZSBcImRhdGEtZWxlbWVudFwiIHRvIHRoZSBvbGQgZWxlbWVudCB0YWcgbmFtZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlcGxhY2VFbGVtZW50V2l0aERpdihcbiAgICBlbGVtZW50OiBFbGVtZW50LFxuICAgIG1vZGU6ICdhcHBlbmQnIHwgJ3JlcGxhY2UnID0gJ3JlcGxhY2UnLFxuKTogSFRNTERpdkVsZW1lbnQge1xuICAgIGNvbnN0IGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgIGRpdi5zZXRBdHRyaWJ1dGUoJ2RhdGEtZWxlbWVudCcsIGVsZW1lbnQubG9jYWxOYW1lKTtcbiAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBlbGVtZW50LmF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY29uc3QgdGFyZ2V0QXR0cmlidXRlTmFtZSA9IGdldFRhcmdldEF0dHJpYnV0ZU5hbWUoYXR0cmlidXRlKTtcbiAgICAgICAgZGl2LnNldEF0dHJpYnV0ZSh0YXJnZXRBdHRyaWJ1dGVOYW1lLCBhdHRyaWJ1dGUubm9kZVZhbHVlKTtcbiAgICB9XG4gICAgaWYgKGVsZW1lbnQucGFyZW50Tm9kZSkge1xuICAgICAgICBpZiAobW9kZSA9PT0gJ2FwcGVuZCcpIHtcbiAgICAgICAgICAgIC8vIGtlZXAgdGhlIHBvc2l0aW9uaW5nXG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKGRpdiwgZWxlbWVudCk7XG4gICAgICAgICAgICAvLyBlbGVtZW50LnBhcmVudE5vZGUuYXBwZW5kKGRpdik7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kZSA9PT0gJ3JlcGxhY2UnKSB7XG4gICAgICAgICAgICBlbGVtZW50LnBhcmVudE5vZGUucmVwbGFjZUNoaWxkKGRpdiwgZWxlbWVudCk7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zb2xlLndhcm4oJ3JlcGxhY2UgY2hpbGQgZmFpbGVkIGZvciAnICsgZWxlbWVudC5sb2NhbE5hbWUpO1xuICAgIH1cbiAgICByZXR1cm4gZGl2O1xufVxuXG4vKipcbiAqIFJldHVybnMgdGhlIG5hbWUgd2l0aCB3aGljaCB0byBjb3B5IGF0dHJpYnV0ZXMgdG8gdGhlIG5ldyBlbGVtZW50LlxuICpcbiAqIEtlZXBzIFwic3R5bGVcIiwgXCJjbGFzc1wiLCBhbmQgXCJkYXRhLVwiIGF0dHJpYnV0ZXMgYW5kIHByZWZpeGVzIGV2ZXJ5dGhpbmcgZWxzZSB3aXRoXG4gKiBcImRhdGEtYXR0cmlidXRlLVwiLlxuICovXG5mdW5jdGlvbiBnZXRUYXJnZXRBdHRyaWJ1dGVOYW1lKGF0dHI6IEF0dHIpOiBzdHJpbmcge1xuICAgIGlmIChbJ3N0eWxlJywgJ2NsYXNzJ10uaW5jbHVkZXMoYXR0ci5ub2RlTmFtZSkpIHtcbiAgICAgICAgcmV0dXJuIGF0dHIubm9kZU5hbWU7XG4gICAgfSBlbHNlIGlmIChhdHRyLm5vZGVOYW1lLnN0YXJ0c1dpdGgoJ2RhdGEtJykpIHtcbiAgICAgICAgcmV0dXJuIGF0dHIubm9kZU5hbWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuICdkYXRhLWF0dHJpYnV0ZS0nICsgYXR0ci5ub2RlTmFtZTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,27 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class ViewInstanceService {
5
+ constructor() {
6
+ this.isExpanded$ = new BehaviorSubject(true);
7
+ /**
8
+ * The heading level from 1 to 6 to use for widget labels, equivalent to `h1` to `h6`.
9
+ *
10
+ * If not set, widget labels are not marked as headings and an invisible colon is added between
11
+ * labels and values, that will be read out by screen readers.
12
+ */
13
+ this.headingLevel = null;
14
+ /**
15
+ * how to display tree entries
16
+ * flat (only display the last entry)
17
+ * full (display the full tree path)
18
+ */
19
+ this.treeDisplay = 'flat';
20
+ }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ViewInstanceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
22
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ViewInstanceService }); }
23
+ }
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: ViewInstanceService, decorators: [{
25
+ type: Injectable
26
+ }] });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy1pbnN0YW5jZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi9tZHMtdmlld2VyL3ZpZXctaW5zdGFuY2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3ZDLE1BQU0sT0FBTyxtQkFBbUI7SUFEaEM7UUFFYSxnQkFBVyxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pEOzs7OztXQUtHO1FBQ0gsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQ25DOzs7O1dBSUc7UUFDSCxnQkFBVyxHQUFvQixNQUFNLENBQUM7S0FDekM7K0dBZlksbUJBQW1CO21IQUFuQixtQkFBbUI7OzRGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFZpZXdJbnN0YW5jZVNlcnZpY2Uge1xuICAgIHJlYWRvbmx5IGlzRXhwYW5kZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgICAvKipcbiAgICAgKiBUaGUgaGVhZGluZyBsZXZlbCBmcm9tIDEgdG8gNiB0byB1c2UgZm9yIHdpZGdldCBsYWJlbHMsIGVxdWl2YWxlbnQgdG8gYGgxYCB0byBgaDZgLlxuICAgICAqXG4gICAgICogSWYgbm90IHNldCwgd2lkZ2V0IGxhYmVscyBhcmUgbm90IG1hcmtlZCBhcyBoZWFkaW5ncyBhbmQgYW4gaW52aXNpYmxlIGNvbG9uIGlzIGFkZGVkIGJldHdlZW5cbiAgICAgKiBsYWJlbHMgYW5kIHZhbHVlcywgdGhhdCB3aWxsIGJlIHJlYWQgb3V0IGJ5IHNjcmVlbiByZWFkZXJzLlxuICAgICAqL1xuICAgIGhlYWRpbmdMZXZlbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG4gICAgLyoqXG4gICAgICogaG93IHRvIGRpc3BsYXkgdHJlZSBlbnRyaWVzXG4gICAgICogZmxhdCAob25seSBkaXNwbGF5IHRoZSBsYXN0IGVudHJ5KVxuICAgICAqIGZ1bGwgKGRpc3BsYXkgdGhlIGZ1bGwgdHJlZSBwYXRoKVxuICAgICAqL1xuICAgIHRyZWVEaXNwbGF5OiAnZmxhdCcgfCAncGF0aCcgPSAnZmxhdCc7XG59XG4iXX0=