@skyux/docs-tools 4.9.7 → 5.0.0-beta.11
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/LICENSE +21 -0
- package/README.md +8 -0
- package/bundles/skyux-docs-tools.umd.js +2076 -1855
- package/docs-tools.module.d.ts +10 -0
- package/documentation.json +10784 -0
- package/esm2015/docs-tools.module.js +30 -21
- package/esm2015/modules/anatomy/anatomy-item.component.js +18 -16
- package/esm2015/modules/anatomy/anatomy.component.js +23 -20
- package/esm2015/modules/anatomy/anatomy.module.js +15 -22
- package/esm2015/modules/code-examples/code-example-module-dependencies.js +2 -1
- package/esm2015/modules/code-examples/code-example-theme.js +1 -1
- package/esm2015/modules/code-examples/code-example.component.js +25 -28
- package/esm2015/modules/code-examples/code-example.js +2 -1
- package/esm2015/modules/code-examples/code-examples-editor.service.js +67 -59
- package/esm2015/modules/code-examples/code-examples.component.js +34 -27
- package/esm2015/modules/code-examples/code-examples.module.js +30 -27
- package/esm2015/modules/demo/demo-content-alignment.js +2 -1
- package/esm2015/modules/demo/demo-control-panel-change.js +2 -1
- package/esm2015/modules/demo/demo-control-panel-checkbox.component.js +26 -29
- package/esm2015/modules/demo/demo-control-panel-radio-choice.js +2 -1
- package/esm2015/modules/demo/demo-control-panel-radio-group.component.js +30 -33
- package/esm2015/modules/demo/demo-control-panel-section.component.js +15 -13
- package/esm2015/modules/demo/demo-control-panel.component.js +33 -36
- package/esm2015/modules/demo/demo.component.js +29 -38
- package/esm2015/modules/demo/demo.module.js +52 -32
- package/esm2015/modules/demo-page/demo-page-dom-adapter.service.js +11 -13
- package/esm2015/modules/demo-page/demo-page-module-info.component.js +13 -11
- package/esm2015/modules/demo-page/demo-page-section.component.js +21 -17
- package/esm2015/modules/demo-page/demo-page-summary.component.js +15 -13
- package/esm2015/modules/demo-page/demo-page-title.service.js +13 -12
- package/esm2015/modules/demo-page/demo-page-type-definitions.component.js +29 -21
- package/esm2015/modules/demo-page/demo-page.component.js +58 -61
- package/esm2015/modules/demo-page/demo-page.module.js +63 -32
- package/esm2015/modules/design-guidelines/design-guideline-thumbnail.component.js +28 -31
- package/esm2015/modules/design-guidelines/design-guideline.component.js +25 -23
- package/esm2015/modules/design-guidelines/design-guidelines.component.js +14 -12
- package/esm2015/modules/design-guidelines/design-guidelines.module.js +27 -24
- package/esm2015/modules/heading-anchor/heading-anchor.component.js +22 -19
- package/esm2015/modules/heading-anchor/heading-anchor.module.js +15 -20
- package/esm2015/modules/markdown/markdown.module.js +15 -18
- package/esm2015/modules/markdown/markdown.pipe.js +12 -10
- package/esm2015/modules/module-info/module-info.component.js +37 -35
- package/esm2015/modules/module-info/module-info.module.js +29 -18
- package/esm2015/modules/safe-html/safe-html.component.js +17 -19
- package/esm2015/modules/safe-html/safe-html.module.js +15 -18
- package/esm2015/modules/shared/docs-tools-component-info.js +2 -1
- package/esm2015/modules/shared/docs-tools-options.js +1 -1
- package/esm2015/modules/shared/docs-tools-supportal.service.js +13 -12
- package/esm2015/modules/shared/sky-docs-tools-resources.module.js +53 -0
- package/esm2015/modules/source-code/source-code-file.js +2 -1
- package/esm2015/modules/source-code/source-code-provider.js +12 -8
- package/esm2015/modules/source-code/source-code.service.js +15 -14
- package/esm2015/modules/thumbnail/thumbnail.component.js +29 -31
- package/esm2015/modules/thumbnail/thumbnail.module.js +15 -19
- package/esm2015/modules/type-definitions/anchor-link-service-config.js +2 -1
- package/esm2015/modules/type-definitions/anchor-link-service-format.js +2 -1
- package/esm2015/modules/type-definitions/anchor-link.js +2 -1
- package/esm2015/modules/type-definitions/anchor-link.service.js +26 -17
- package/esm2015/modules/type-definitions/call-signature-definition.component.js +25 -22
- package/esm2015/modules/type-definitions/call-signature-definition.js +2 -1
- package/esm2015/modules/type-definitions/class-definition.component.js +24 -16
- package/esm2015/modules/type-definitions/class-definition.js +2 -1
- package/esm2015/modules/type-definitions/comment-tags.js +2 -1
- package/esm2015/modules/type-definitions/directive-definition.component.js +24 -16
- package/esm2015/modules/type-definitions/directive-definition.js +2 -1
- package/esm2015/modules/type-definitions/entry-child-definition.js +2 -1
- package/esm2015/modules/type-definitions/entry-definition.js +2 -1
- package/esm2015/modules/type-definitions/enumeration-definition.component.js +22 -15
- package/esm2015/modules/type-definitions/enumeration-definition.js +2 -1
- package/esm2015/modules/type-definitions/enumeration-member-definition.js +2 -1
- package/esm2015/modules/type-definitions/index-signature-definition.js +2 -1
- package/esm2015/modules/type-definitions/interface-definition.component.js +27 -20
- package/esm2015/modules/type-definitions/interface-definition.js +2 -1
- package/esm2015/modules/type-definitions/interface-property-definition.js +2 -1
- package/esm2015/modules/type-definitions/method-definition.js +2 -1
- package/esm2015/modules/type-definitions/method-definitions.component.js +30 -27
- package/esm2015/modules/type-definitions/parameter-definition.js +2 -1
- package/esm2015/modules/type-definitions/pipe-definition.component.js +24 -16
- package/esm2015/modules/type-definitions/pipe-definition.js +2 -1
- package/esm2015/modules/type-definitions/property-decorator.js +2 -1
- package/esm2015/modules/type-definitions/property-definition.js +2 -1
- package/esm2015/modules/type-definitions/property-definitions.component.js +34 -33
- package/esm2015/modules/type-definitions/type-alias-definition.component.js +28 -21
- package/esm2015/modules/type-definitions/type-alias-definition.js +2 -1
- package/esm2015/modules/type-definitions/type-anchor-links.pipe.js +15 -16
- package/esm2015/modules/type-definitions/type-definition.js +2 -1
- package/esm2015/modules/type-definitions/type-definitions-format.service.js +31 -25
- package/esm2015/modules/type-definitions/type-definitions-provider.js +9 -8
- package/esm2015/modules/type-definitions/type-definitions.js +2 -1
- package/esm2015/modules/type-definitions/type-definitions.module.js +75 -51
- package/esm2015/modules/type-definitions/type-definitions.service.js +71 -61
- package/esm2015/modules/type-definitions/type-parameter-definition.js +2 -1
- package/esm2015/modules/type-definitions/typedoc-adapter.service.js +130 -72
- package/esm2015/modules/type-definitions/typedoc-types.js +2 -1
- package/esm2015/public-api.js +66 -0
- package/esm2015/skyux-docs-tools.js +2 -46
- package/fesm2015/skyux-docs-tools.js +1720 -1602
- package/fesm2015/skyux-docs-tools.js.map +1 -1
- package/modules/anatomy/anatomy-item.component.d.ts +3 -0
- package/modules/anatomy/anatomy.component.d.ts +3 -0
- package/modules/anatomy/anatomy.module.d.ts +9 -0
- package/modules/code-examples/code-example.component.d.ts +3 -0
- package/modules/code-examples/code-example.d.ts +1 -0
- package/modules/code-examples/code-examples-editor.service.d.ts +3 -0
- package/modules/code-examples/code-examples.component.d.ts +4 -0
- package/modules/code-examples/code-examples.module.d.ts +12 -0
- package/modules/demo/demo-control-panel-checkbox.component.d.ts +3 -0
- package/modules/demo/demo-control-panel-radio-group.component.d.ts +3 -0
- package/modules/demo/demo-control-panel-section.component.d.ts +3 -0
- package/modules/demo/demo-control-panel.component.d.ts +3 -5
- package/modules/demo/demo.component.d.ts +3 -6
- package/modules/demo/demo.module.d.ts +15 -0
- package/modules/demo-page/demo-page-dom-adapter.service.d.ts +3 -0
- package/modules/demo-page/demo-page-module-info.component.d.ts +3 -0
- package/modules/demo-page/demo-page-section.component.d.ts +3 -0
- package/modules/demo-page/demo-page-summary.component.d.ts +3 -0
- package/modules/demo-page/demo-page-title.service.d.ts +3 -0
- package/modules/demo-page/demo-page-type-definitions.component.d.ts +4 -0
- package/modules/demo-page/demo-page.component.d.ts +7 -0
- package/modules/demo-page/demo-page.module.d.ts +19 -0
- package/modules/design-guidelines/design-guideline-thumbnail.component.d.ts +3 -0
- package/modules/design-guidelines/design-guideline.component.d.ts +3 -0
- package/modules/design-guidelines/design-guidelines.component.d.ts +3 -0
- package/modules/design-guidelines/design-guidelines.module.d.ts +10 -0
- package/modules/heading-anchor/heading-anchor.component.d.ts +3 -0
- package/modules/heading-anchor/heading-anchor.module.d.ts +8 -0
- package/modules/markdown/markdown.module.d.ts +5 -0
- package/modules/markdown/markdown.pipe.d.ts +3 -0
- package/modules/module-info/module-info.component.d.ts +3 -0
- package/modules/module-info/module-info.module.d.ts +11 -0
- package/modules/safe-html/safe-html.component.d.ts +3 -0
- package/modules/safe-html/safe-html.module.d.ts +6 -0
- package/modules/shared/docs-tools-supportal.service.d.ts +3 -0
- package/modules/shared/sky-docs-tools-resources.module.d.ts +14 -0
- package/modules/source-code/source-code-provider.d.ts +3 -0
- package/modules/source-code/source-code.service.d.ts +3 -0
- package/modules/thumbnail/thumbnail.component.d.ts +3 -0
- package/modules/thumbnail/thumbnail.module.d.ts +7 -0
- package/modules/type-definitions/anchor-link.service.d.ts +3 -0
- package/modules/type-definitions/call-signature-definition.component.d.ts +3 -0
- package/modules/type-definitions/class-definition.component.d.ts +3 -0
- package/modules/type-definitions/directive-definition.component.d.ts +3 -0
- package/modules/type-definitions/enumeration-definition.component.d.ts +3 -0
- package/modules/type-definitions/interface-definition.component.d.ts +3 -0
- package/modules/type-definitions/method-definitions.component.d.ts +3 -0
- package/modules/type-definitions/pipe-definition.component.d.ts +3 -0
- package/modules/type-definitions/property-definitions.component.d.ts +3 -0
- package/modules/type-definitions/type-alias-definition.component.d.ts +3 -0
- package/modules/type-definitions/type-anchor-links.pipe.d.ts +3 -0
- package/modules/type-definitions/type-definitions-format.service.d.ts +3 -0
- package/modules/type-definitions/type-definitions-provider.d.ts +3 -0
- package/modules/type-definitions/type-definitions.module.d.ts +22 -0
- package/modules/type-definitions/type-definitions.service.d.ts +4 -1
- package/modules/type-definitions/typedoc-adapter.service.d.ts +3 -0
- package/modules/type-definitions/typedoc-types.d.ts +5 -3
- package/package.json +23 -32
- package/public-api.d.ts +63 -0
- package/skyux-docs-tools.d.ts +2 -45
- package/CHANGELOG.md +0 -399
- package/bundles/skyux-docs-tools.umd.js.map +0 -1
- package/bundles/skyux-docs-tools.umd.min.js +0 -2
- package/bundles/skyux-docs-tools.umd.min.js.map +0 -1
- package/esm2015/modules/demo/demo-control-panel-theme.component.js +0 -102
- package/esm2015/modules/demo/demo-theme.service.js +0 -14
- package/esm2015/modules/shared/docs-tools-resources.module.js +0 -20
- package/esm2015/modules/source-code/source-code.module.js +0 -16
- package/esm2015/plugin-resources/docs-tools-resources-provider.js +0 -16
- package/esm2015/public_api.js +0 -19
- package/esm5/docs-tools.module.js +0 -34
- package/esm5/modules/anatomy/anatomy-item.component.js +0 -21
- package/esm5/modules/anatomy/anatomy.component.js +0 -29
- package/esm5/modules/anatomy/anatomy.module.js +0 -31
- package/esm5/modules/code-examples/code-example-module-dependencies.js +0 -1
- package/esm5/modules/code-examples/code-example-theme.js +0 -6
- package/esm5/modules/code-examples/code-example.component.js +0 -77
- package/esm5/modules/code-examples/code-example.js +0 -1
- package/esm5/modules/code-examples/code-examples-editor.service.js +0 -158
- package/esm5/modules/code-examples/code-examples.component.js +0 -101
- package/esm5/modules/code-examples/code-examples.module.js +0 -43
- package/esm5/modules/demo/demo-content-alignment.js +0 -1
- package/esm5/modules/demo/demo-control-panel-change.js +0 -1
- package/esm5/modules/demo/demo-control-panel-checkbox.component.js +0 -94
- package/esm5/modules/demo/demo-control-panel-radio-choice.js +0 -1
- package/esm5/modules/demo/demo-control-panel-radio-group.component.js +0 -85
- package/esm5/modules/demo/demo-control-panel-section.component.js +0 -28
- package/esm5/modules/demo/demo-control-panel-theme.component.js +0 -114
- package/esm5/modules/demo/demo-control-panel.component.js +0 -95
- package/esm5/modules/demo/demo-theme.service.js +0 -15
- package/esm5/modules/demo/demo.component.js +0 -84
- package/esm5/modules/demo/demo.module.js +0 -52
- package/esm5/modules/demo-page/demo-page-dom-adapter.service.js +0 -93
- package/esm5/modules/demo-page/demo-page-module-info.component.js +0 -15
- package/esm5/modules/demo-page/demo-page-section.component.js +0 -51
- package/esm5/modules/demo-page/demo-page-summary.component.js +0 -27
- package/esm5/modules/demo-page/demo-page-title.service.js +0 -32
- package/esm5/modules/demo-page/demo-page-type-definitions.component.js +0 -32
- package/esm5/modules/demo-page/demo-page.component.js +0 -146
- package/esm5/modules/demo-page/demo-page.module.js +0 -60
- package/esm5/modules/design-guidelines/design-guideline-thumbnail.component.js +0 -36
- package/esm5/modules/design-guidelines/design-guideline.component.js +0 -41
- package/esm5/modules/design-guidelines/design-guidelines.component.js +0 -16
- package/esm5/modules/design-guidelines/design-guidelines.module.js +0 -34
- package/esm5/modules/heading-anchor/heading-anchor.component.js +0 -24
- package/esm5/modules/heading-anchor/heading-anchor.module.js +0 -28
- package/esm5/modules/markdown/markdown.module.js +0 -23
- package/esm5/modules/markdown/markdown.pipe.js +0 -21
- package/esm5/modules/module-info/module-info.component.js +0 -101
- package/esm5/modules/module-info/module-info.module.js +0 -34
- package/esm5/modules/safe-html/safe-html.component.js +0 -27
- package/esm5/modules/safe-html/safe-html.module.js +0 -24
- package/esm5/modules/shared/docs-tools-component-info.js +0 -1
- package/esm5/modules/shared/docs-tools-options.js +0 -7
- package/esm5/modules/shared/docs-tools-resources.module.js +0 -23
- package/esm5/modules/shared/docs-tools-supportal.service.js +0 -23
- package/esm5/modules/source-code/source-code-file.js +0 -1
- package/esm5/modules/source-code/source-code-provider.js +0 -12
- package/esm5/modules/source-code/source-code.module.js +0 -19
- package/esm5/modules/source-code/source-code.service.js +0 -42
- package/esm5/modules/thumbnail/thumbnail.component.js +0 -36
- package/esm5/modules/thumbnail/thumbnail.module.js +0 -26
- package/esm5/modules/type-definitions/anchor-link-service-config.js +0 -1
- package/esm5/modules/type-definitions/anchor-link-service-format.js +0 -1
- package/esm5/modules/type-definitions/anchor-link.js +0 -1
- package/esm5/modules/type-definitions/anchor-link.service.js +0 -99
- package/esm5/modules/type-definitions/call-signature-definition.component.js +0 -54
- package/esm5/modules/type-definitions/call-signature-definition.js +0 -1
- package/esm5/modules/type-definitions/class-definition.component.js +0 -20
- package/esm5/modules/type-definitions/class-definition.js +0 -1
- package/esm5/modules/type-definitions/comment-tags.js +0 -1
- package/esm5/modules/type-definitions/directive-definition.component.js +0 -20
- package/esm5/modules/type-definitions/directive-definition.js +0 -1
- package/esm5/modules/type-definitions/entry-child-definition.js +0 -1
- package/esm5/modules/type-definitions/entry-definition.js +0 -1
- package/esm5/modules/type-definitions/enumeration-definition.component.js +0 -19
- package/esm5/modules/type-definitions/enumeration-definition.js +0 -1
- package/esm5/modules/type-definitions/enumeration-member-definition.js +0 -1
- package/esm5/modules/type-definitions/index-signature-definition.js +0 -1
- package/esm5/modules/type-definitions/interface-definition.component.js +0 -38
- package/esm5/modules/type-definitions/interface-definition.js +0 -1
- package/esm5/modules/type-definitions/interface-property-definition.js +0 -1
- package/esm5/modules/type-definitions/method-definition.js +0 -1
- package/esm5/modules/type-definitions/method-definitions.component.js +0 -66
- package/esm5/modules/type-definitions/parameter-definition.js +0 -1
- package/esm5/modules/type-definitions/pipe-definition.component.js +0 -20
- package/esm5/modules/type-definitions/pipe-definition.js +0 -1
- package/esm5/modules/type-definitions/property-decorator.js +0 -1
- package/esm5/modules/type-definitions/property-definition.js +0 -1
- package/esm5/modules/type-definitions/property-definitions.component.js +0 -75
- package/esm5/modules/type-definitions/type-alias-definition.component.js +0 -39
- package/esm5/modules/type-definitions/type-alias-definition.js +0 -1
- package/esm5/modules/type-definitions/type-anchor-links.pipe.js +0 -29
- package/esm5/modules/type-definitions/type-definition.js +0 -1
- package/esm5/modules/type-definitions/type-definitions-format.service.js +0 -248
- package/esm5/modules/type-definitions/type-definitions-provider.js +0 -12
- package/esm5/modules/type-definitions/type-definitions.js +0 -1
- package/esm5/modules/type-definitions/type-definitions.module.js +0 -81
- package/esm5/modules/type-definitions/type-definitions.service.js +0 -95
- package/esm5/modules/type-definitions/type-parameter-definition.js +0 -1
- package/esm5/modules/type-definitions/typedoc-adapter.service.js +0 -462
- package/esm5/modules/type-definitions/typedoc-types.js +0 -1
- package/esm5/plugin-resources/docs-tools-resources-provider.js +0 -17
- package/esm5/public_api.js +0 -19
- package/esm5/skyux-docs-tools.js +0 -49
- package/fesm5/skyux-docs-tools.js +0 -3211
- package/fesm5/skyux-docs-tools.js.map +0 -1
- package/modules/demo/demo-control-panel-theme.component.d.ts +0 -32
- package/modules/demo/demo-theme.service.d.ts +0 -6
- package/modules/shared/docs-tools-resources.module.d.ts +0 -2
- package/modules/source-code/source-code.module.d.ts +0 -2
- package/plugin-resources/docs-tools-resources-provider.d.ts +0 -5
- package/public_api.d.ts +0 -33
- package/skyux-docs-tools.metadata.json +0 -1
- package/src/assets/img/guidelines/popover/anatomy.png +0 -0
- package/src/assets/img/guidelines/popover/behavior-responsive.png +0 -0
- package/src/assets/img/guidelines/popover/content-dont-overload.png +0 -0
- package/src/assets/img/guidelines/popover/content-html.png +0 -0
- package/src/assets/img/guidelines/popover/content-simple.png +0 -0
- package/src/assets/img/guidelines/popover/layout-alternate.png +0 -0
- package/src/assets/img/guidelines/popover/layout-default.png +0 -0
- package/src/assets/img/guidelines/popover/option-position.png +0 -0
- package/src/assets/img/guidelines/popover/popover-auto.mp4 +0 -0
- package/src/assets/img/guidelines/popover/popover-click.mp4 +0 -0
- package/src/assets/locales/resources_en_US.json +0 -22
|
@@ -1,462 +0,0 @@
|
|
|
1
|
-
import { __assign, __decorate, __param } from "tslib";
|
|
2
|
-
import { Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { SkyDocsTypeDefinitionsProvider } from './type-definitions-provider';
|
|
4
|
-
import orderBy from 'lodash.orderby';
|
|
5
|
-
/**
|
|
6
|
-
* Converts TypeDoc types into SKY UX docs-tools types, to be supplied to the various definitions components.
|
|
7
|
-
*/
|
|
8
|
-
var SkyDocsTypeDocAdapterService = /** @class */ (function () {
|
|
9
|
-
function SkyDocsTypeDocAdapterService(typeDefinitionsProvider) {
|
|
10
|
-
this.typeDefinitionsProvider = typeDefinitionsProvider;
|
|
11
|
-
}
|
|
12
|
-
SkyDocsTypeDocAdapterService.prototype.toClassDefinition = function (entry) {
|
|
13
|
-
var definition = {
|
|
14
|
-
anchorId: this.getAnchorId(entry),
|
|
15
|
-
name: entry.name
|
|
16
|
-
};
|
|
17
|
-
var tags = this.getCommentTags(entry.comment);
|
|
18
|
-
this.applyCommentTagValues(definition, tags);
|
|
19
|
-
var methods = this.getClassMethods(entry);
|
|
20
|
-
if (methods.length) {
|
|
21
|
-
definition.methods = methods;
|
|
22
|
-
}
|
|
23
|
-
var properties = this.getClassProperties(entry);
|
|
24
|
-
if (properties.length) {
|
|
25
|
-
definition.properties = properties;
|
|
26
|
-
}
|
|
27
|
-
return definition;
|
|
28
|
-
};
|
|
29
|
-
SkyDocsTypeDocAdapterService.prototype.toDirectiveDefinition = function (entry) {
|
|
30
|
-
var definition = {
|
|
31
|
-
anchorId: this.getAnchorId(entry),
|
|
32
|
-
name: entry.name,
|
|
33
|
-
selector: this.getSelector(entry)
|
|
34
|
-
};
|
|
35
|
-
var tags = this.getCommentTags(entry.comment);
|
|
36
|
-
this.applyCommentTagValues(definition, tags);
|
|
37
|
-
var properties = this.getClassProperties(entry);
|
|
38
|
-
var eventProperties = properties.filter(function (p) { var _a; return ((_a = p.decorator) === null || _a === void 0 ? void 0 : _a.name) === 'Output'; });
|
|
39
|
-
if (eventProperties.length) {
|
|
40
|
-
definition.eventProperties = eventProperties;
|
|
41
|
-
}
|
|
42
|
-
var inputProperties = properties.filter(function (p) { var _a; return ((_a = p.decorator) === null || _a === void 0 ? void 0 : _a.name) === 'Input'; });
|
|
43
|
-
if (inputProperties.length) {
|
|
44
|
-
definition.inputProperties = inputProperties;
|
|
45
|
-
}
|
|
46
|
-
return definition;
|
|
47
|
-
};
|
|
48
|
-
SkyDocsTypeDocAdapterService.prototype.toEnumerationDefinition = function (entry) {
|
|
49
|
-
var members = this.getEnumerationMembers(entry);
|
|
50
|
-
var definition = {
|
|
51
|
-
anchorId: this.getAnchorId(entry),
|
|
52
|
-
members: members,
|
|
53
|
-
name: entry.name
|
|
54
|
-
};
|
|
55
|
-
var tags = this.getCommentTags(entry.comment);
|
|
56
|
-
this.applyCommentTagValues(definition, tags);
|
|
57
|
-
return definition;
|
|
58
|
-
};
|
|
59
|
-
SkyDocsTypeDocAdapterService.prototype.toInterfaceDefinition = function (entry) {
|
|
60
|
-
var properties = this.getInterfaceProperties(entry);
|
|
61
|
-
var definition = {
|
|
62
|
-
anchorId: this.getAnchorId(entry),
|
|
63
|
-
name: entry.name,
|
|
64
|
-
properties: properties
|
|
65
|
-
};
|
|
66
|
-
var tags = this.getCommentTags(entry.comment);
|
|
67
|
-
this.applyCommentTagValues(definition, tags);
|
|
68
|
-
var typeParameters = this.getTypeParameterDefinitions(entry.typeParameter);
|
|
69
|
-
if (typeParameters.length) {
|
|
70
|
-
definition.typeParameters = typeParameters;
|
|
71
|
-
}
|
|
72
|
-
return definition;
|
|
73
|
-
};
|
|
74
|
-
SkyDocsTypeDocAdapterService.prototype.toPipeDefinition = function (entry) {
|
|
75
|
-
var methods = this.getClassMethods(entry);
|
|
76
|
-
var transformMethod = methods.find(function (m) { return m.name === 'transform'; });
|
|
77
|
-
var definition = {
|
|
78
|
-
anchorId: this.getAnchorId(entry),
|
|
79
|
-
name: entry.name,
|
|
80
|
-
transformMethod: transformMethod
|
|
81
|
-
};
|
|
82
|
-
var tags = this.getCommentTags(entry.comment);
|
|
83
|
-
this.applyCommentTagValues(definition, tags);
|
|
84
|
-
return definition;
|
|
85
|
-
};
|
|
86
|
-
SkyDocsTypeDocAdapterService.prototype.toTypeAliasDefinition = function (entry) {
|
|
87
|
-
var definition = {
|
|
88
|
-
anchorId: this.getAnchorId(entry),
|
|
89
|
-
name: entry.name,
|
|
90
|
-
type: this.getTypeDefinition({
|
|
91
|
-
comment: entry.comment,
|
|
92
|
-
type: entry.type
|
|
93
|
-
})
|
|
94
|
-
};
|
|
95
|
-
var tags = this.getCommentTags(entry.comment);
|
|
96
|
-
this.applyCommentTagValues(definition, tags);
|
|
97
|
-
var typeParameters = this.getTypeParameterDefinitions(entry.typeParameter);
|
|
98
|
-
if (typeParameters.length) {
|
|
99
|
-
definition.typeParameters = typeParameters;
|
|
100
|
-
}
|
|
101
|
-
return definition;
|
|
102
|
-
};
|
|
103
|
-
SkyDocsTypeDocAdapterService.prototype.getSelector = function (entry) {
|
|
104
|
-
var decoratorSource = entry.decorators[0].arguments.obj;
|
|
105
|
-
return (decoratorSource.indexOf('selector: `') > -1)
|
|
106
|
-
? decoratorSource.split('selector: `')[1].split('`')[0].replace(/\s\s+/g, ' ')
|
|
107
|
-
: decoratorSource.split('selector: \'')[1].split('\'')[0];
|
|
108
|
-
};
|
|
109
|
-
SkyDocsTypeDocAdapterService.prototype.getClassProperties = function (entry) {
|
|
110
|
-
var _this = this;
|
|
111
|
-
if (!entry.children) {
|
|
112
|
-
return [];
|
|
113
|
-
}
|
|
114
|
-
var definitions = entry.children
|
|
115
|
-
.filter(function (child) { return child.kindString === 'Property' || child.kindString === 'Accessor'; })
|
|
116
|
-
.map(function (child) {
|
|
117
|
-
var tags = _this.getCommentTags(child.comment);
|
|
118
|
-
var definition = {
|
|
119
|
-
isOptional: !tags.extras.required,
|
|
120
|
-
name: _this.getPropertyName(child),
|
|
121
|
-
type: _this.getTypeDefinition(child)
|
|
122
|
-
};
|
|
123
|
-
_this.applyCommentTagValues(definition, tags);
|
|
124
|
-
var decorator = _this.getDecorator(child);
|
|
125
|
-
if (decorator) {
|
|
126
|
-
definition.decorator = decorator;
|
|
127
|
-
}
|
|
128
|
-
var defaultValue = _this.getDefaultValue(child, tags);
|
|
129
|
-
if (defaultValue) {
|
|
130
|
-
definition.defaultValue = defaultValue;
|
|
131
|
-
}
|
|
132
|
-
return definition;
|
|
133
|
-
});
|
|
134
|
-
return orderBy(definitions, ['isOptional', 'name'], ['asc', 'asc']);
|
|
135
|
-
};
|
|
136
|
-
SkyDocsTypeDocAdapterService.prototype.getClassMethods = function (entry) {
|
|
137
|
-
var _this = this;
|
|
138
|
-
if (!entry.children) {
|
|
139
|
-
return [];
|
|
140
|
-
}
|
|
141
|
-
var methods = entry.children
|
|
142
|
-
.filter(function (child) { return child.kindString === 'Method' && /^ng/.test(child.name) === false; })
|
|
143
|
-
.map(function (child) {
|
|
144
|
-
var definition = {
|
|
145
|
-
name: _this.getPropertyName(child),
|
|
146
|
-
type: _this.getTypeDefinition(child)
|
|
147
|
-
};
|
|
148
|
-
// Comments for methods are stored in a different location.
|
|
149
|
-
var comment = child.signatures[0].comment;
|
|
150
|
-
var tags = _this.getCommentTags(comment);
|
|
151
|
-
_this.applyCommentTagValues(definition, tags);
|
|
152
|
-
var typeParameters = _this.getTypeParameterDefinitions(child.signatures[0].typeParameter);
|
|
153
|
-
if (typeParameters.length) {
|
|
154
|
-
definition.typeParameters = typeParameters;
|
|
155
|
-
}
|
|
156
|
-
return definition;
|
|
157
|
-
});
|
|
158
|
-
return orderBy(methods, ['name'], ['asc']);
|
|
159
|
-
};
|
|
160
|
-
SkyDocsTypeDocAdapterService.prototype.getInterfaceProperties = function (entry) {
|
|
161
|
-
var _this = this;
|
|
162
|
-
var _a;
|
|
163
|
-
if (!entry.children && !entry.indexSignature) {
|
|
164
|
-
return [];
|
|
165
|
-
}
|
|
166
|
-
var definitions = ((_a = entry.children) === null || _a === void 0 ? void 0 : _a.map(function (child) {
|
|
167
|
-
var _a;
|
|
168
|
-
var tags = _this.getCommentTags(child.comment);
|
|
169
|
-
var definition = {
|
|
170
|
-
isOptional: (tags.extras.required) ? false : !!((_a = child.flags) === null || _a === void 0 ? void 0 : _a.isOptional),
|
|
171
|
-
name: _this.getPropertyName(child),
|
|
172
|
-
type: _this.getTypeDefinition(child)
|
|
173
|
-
};
|
|
174
|
-
_this.applyCommentTagValues(definition, tags);
|
|
175
|
-
return definition;
|
|
176
|
-
})) || [];
|
|
177
|
-
var sorted = orderBy(definitions, ['isOptional', 'name'], ['asc', 'asc']);
|
|
178
|
-
// Add any index signatures, e.g. `[_: string]: any`
|
|
179
|
-
if (entry.indexSignature) {
|
|
180
|
-
var indexSignature = entry.indexSignature[0];
|
|
181
|
-
var definition = {
|
|
182
|
-
isOptional: true,
|
|
183
|
-
name: indexSignature.name,
|
|
184
|
-
type: {
|
|
185
|
-
indexSignature: this.getIndexSignatureDefinition(indexSignature)
|
|
186
|
-
}
|
|
187
|
-
};
|
|
188
|
-
var tags = this.getCommentTags(indexSignature.comment);
|
|
189
|
-
this.applyCommentTagValues(definition, tags);
|
|
190
|
-
sorted.push(definition);
|
|
191
|
-
}
|
|
192
|
-
return sorted;
|
|
193
|
-
};
|
|
194
|
-
SkyDocsTypeDocAdapterService.prototype.getEnumerationMembers = function (entry) {
|
|
195
|
-
var _this = this;
|
|
196
|
-
if (!entry.children) {
|
|
197
|
-
return [];
|
|
198
|
-
}
|
|
199
|
-
return entry.children.map(function (child) {
|
|
200
|
-
var definition = {
|
|
201
|
-
name: child.name
|
|
202
|
-
};
|
|
203
|
-
var tags = _this.getCommentTags(child.comment);
|
|
204
|
-
_this.applyCommentTagValues(definition, tags);
|
|
205
|
-
return definition;
|
|
206
|
-
});
|
|
207
|
-
};
|
|
208
|
-
SkyDocsTypeDocAdapterService.prototype.getTypeDefinition = function (child) {
|
|
209
|
-
var _this = this;
|
|
210
|
-
var _a;
|
|
211
|
-
var definition;
|
|
212
|
-
var kindString = child.kindString;
|
|
213
|
-
switch (kindString) {
|
|
214
|
-
case 'Accessor':
|
|
215
|
-
if (child.setSignature) {
|
|
216
|
-
return this.getTypeDefinition(child.setSignature[0].parameters[0]);
|
|
217
|
-
}
|
|
218
|
-
return this.getTypeDefinition(child.getSignature[0]);
|
|
219
|
-
case 'Method':
|
|
220
|
-
definition = {
|
|
221
|
-
callSignature: this.getCallSignatureDefinition(child.signatures[0], this.getCommentTags(child.comment)),
|
|
222
|
-
name: child.signatures[0].name
|
|
223
|
-
};
|
|
224
|
-
return definition;
|
|
225
|
-
default:
|
|
226
|
-
var name_1 = child.type.name || ((_a = child.type.elementType) === null || _a === void 0 ? void 0 : _a.name) || child.type.value;
|
|
227
|
-
definition = {
|
|
228
|
-
type: child.type.type
|
|
229
|
-
};
|
|
230
|
-
if (name_1) {
|
|
231
|
-
definition.name = name_1;
|
|
232
|
-
}
|
|
233
|
-
// Union?
|
|
234
|
-
if (child.type.types) {
|
|
235
|
-
definition.unionTypes = child.type.types.map(function (t) { return _this.getTypeDefinition({ type: t }); });
|
|
236
|
-
}
|
|
237
|
-
// Convert reflection types.
|
|
238
|
-
if (child.type.type === 'reflection') {
|
|
239
|
-
var declaration = child.type.declaration;
|
|
240
|
-
/*istanbul ignore else */
|
|
241
|
-
if (declaration) {
|
|
242
|
-
if (declaration.signatures) {
|
|
243
|
-
definition.callSignature = this.getCallSignatureDefinition(declaration.signatures[0], this.getCommentTags(child.comment));
|
|
244
|
-
}
|
|
245
|
-
else if (declaration.indexSignature) {
|
|
246
|
-
var indexSignature = declaration.indexSignature[0];
|
|
247
|
-
definition.indexSignature = this.getIndexSignatureDefinition(indexSignature);
|
|
248
|
-
}
|
|
249
|
-
else if (declaration.children) {
|
|
250
|
-
definition.typeLiteral = {
|
|
251
|
-
properties: this.getInterfaceProperties({
|
|
252
|
-
children: declaration.children
|
|
253
|
-
})
|
|
254
|
-
};
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
if (child.type.type === 'typeOperator') {
|
|
259
|
-
definition.name = child.type.operator + " " + child.type.target.name;
|
|
260
|
-
}
|
|
261
|
-
if (child.type.typeArguments) {
|
|
262
|
-
definition.typeArguments = this.getTypeArgumentDefinitions(child.type);
|
|
263
|
-
}
|
|
264
|
-
return definition;
|
|
265
|
-
}
|
|
266
|
-
};
|
|
267
|
-
SkyDocsTypeDocAdapterService.prototype.getParameterDefinitions = function (callSignature, parentTags) {
|
|
268
|
-
var _this = this;
|
|
269
|
-
if (!callSignature.parameters) {
|
|
270
|
-
return [];
|
|
271
|
-
}
|
|
272
|
-
var parameters = callSignature.parameters.map(function (p) {
|
|
273
|
-
var _a;
|
|
274
|
-
var tags = _this.getParameterCommentTags(p, parentTags);
|
|
275
|
-
var defaultValue = _this.getDefaultValue(p, tags);
|
|
276
|
-
var typeArguments = _this.getTypeArgumentDefinitions(p.type);
|
|
277
|
-
var parameter = {
|
|
278
|
-
isOptional: !!(defaultValue || !!((_a = p.flags) === null || _a === void 0 ? void 0 : _a.isOptional)),
|
|
279
|
-
name: p.name,
|
|
280
|
-
type: _this.getTypeDefinition(p)
|
|
281
|
-
};
|
|
282
|
-
if (defaultValue !== undefined) {
|
|
283
|
-
parameter.defaultValue = defaultValue;
|
|
284
|
-
}
|
|
285
|
-
if (tags.description) {
|
|
286
|
-
parameter.description = tags.description;
|
|
287
|
-
}
|
|
288
|
-
if (typeArguments.length) {
|
|
289
|
-
parameter.typeArguments = typeArguments;
|
|
290
|
-
}
|
|
291
|
-
return parameter;
|
|
292
|
-
});
|
|
293
|
-
return parameters;
|
|
294
|
-
};
|
|
295
|
-
SkyDocsTypeDocAdapterService.prototype.getTypeArgumentDefinitions = function (typeConfig) {
|
|
296
|
-
var _this = this;
|
|
297
|
-
if (!typeConfig || !typeConfig.typeArguments) {
|
|
298
|
-
return [];
|
|
299
|
-
}
|
|
300
|
-
return typeConfig.typeArguments.map(function (typeArgument) {
|
|
301
|
-
return _this.getTypeDefinition({ type: typeArgument });
|
|
302
|
-
});
|
|
303
|
-
};
|
|
304
|
-
SkyDocsTypeDocAdapterService.prototype.getCallSignatureDefinition = function (callSignature, tags) {
|
|
305
|
-
var definition = {
|
|
306
|
-
returnType: this.getTypeDefinition(callSignature)
|
|
307
|
-
};
|
|
308
|
-
var parameters = this.getParameterDefinitions(callSignature, tags);
|
|
309
|
-
if (parameters.length) {
|
|
310
|
-
definition.parameters = parameters;
|
|
311
|
-
}
|
|
312
|
-
return definition;
|
|
313
|
-
};
|
|
314
|
-
SkyDocsTypeDocAdapterService.prototype.getIndexSignatureDefinition = function (signature) {
|
|
315
|
-
return {
|
|
316
|
-
key: {
|
|
317
|
-
name: signature.parameters[0].name,
|
|
318
|
-
type: this.getTypeDefinition(signature.parameters[0])
|
|
319
|
-
},
|
|
320
|
-
type: this.getTypeDefinition(signature)
|
|
321
|
-
};
|
|
322
|
-
};
|
|
323
|
-
SkyDocsTypeDocAdapterService.prototype.getTypeParameterDefinitions = function (typeParameters) {
|
|
324
|
-
var _this = this;
|
|
325
|
-
if (!typeParameters) {
|
|
326
|
-
return [];
|
|
327
|
-
}
|
|
328
|
-
return typeParameters.map(function (typeParam) {
|
|
329
|
-
var definition = {
|
|
330
|
-
name: typeParam.name
|
|
331
|
-
};
|
|
332
|
-
if (typeParam.type) {
|
|
333
|
-
definition.type = _this.getTypeDefinition({
|
|
334
|
-
type: typeParam.type
|
|
335
|
-
});
|
|
336
|
-
}
|
|
337
|
-
return definition;
|
|
338
|
-
});
|
|
339
|
-
};
|
|
340
|
-
SkyDocsTypeDocAdapterService.prototype.getCommentTags = function (comment) {
|
|
341
|
-
var codeExample;
|
|
342
|
-
var codeExampleLanguage = 'markup';
|
|
343
|
-
var deprecationWarning;
|
|
344
|
-
var defaultValue;
|
|
345
|
-
var description = '';
|
|
346
|
-
var parameters;
|
|
347
|
-
var extras = {};
|
|
348
|
-
if (comment) {
|
|
349
|
-
if (comment.tags) {
|
|
350
|
-
comment.tags.forEach(function (tag) {
|
|
351
|
-
switch (tag.tag) {
|
|
352
|
-
case 'deprecated':
|
|
353
|
-
deprecationWarning = tag.text.trim();
|
|
354
|
-
break;
|
|
355
|
-
case 'default':
|
|
356
|
-
case 'defaultValue':
|
|
357
|
-
defaultValue = tag.text.trim();
|
|
358
|
-
break;
|
|
359
|
-
case 'example':
|
|
360
|
-
codeExample = tag.text.trim().split('```')[1].trim();
|
|
361
|
-
var language = codeExample.split('\n')[0];
|
|
362
|
-
if (language === 'markup' || language === 'typescript') {
|
|
363
|
-
codeExample = codeExample.slice(language.length).trim();
|
|
364
|
-
codeExampleLanguage = language;
|
|
365
|
-
}
|
|
366
|
-
break;
|
|
367
|
-
case 'param':
|
|
368
|
-
parameters = parameters || [];
|
|
369
|
-
parameters.push({
|
|
370
|
-
name: tag.param,
|
|
371
|
-
description: tag.text.trim()
|
|
372
|
-
});
|
|
373
|
-
break;
|
|
374
|
-
default:
|
|
375
|
-
extras[tag.tag] = tag.text;
|
|
376
|
-
break;
|
|
377
|
-
}
|
|
378
|
-
});
|
|
379
|
-
}
|
|
380
|
-
description = (comment.shortText || comment.text || '').trim();
|
|
381
|
-
}
|
|
382
|
-
return {
|
|
383
|
-
codeExample: codeExample,
|
|
384
|
-
codeExampleLanguage: codeExampleLanguage,
|
|
385
|
-
defaultValue: defaultValue,
|
|
386
|
-
deprecationWarning: deprecationWarning,
|
|
387
|
-
description: description,
|
|
388
|
-
extras: extras,
|
|
389
|
-
parameters: parameters
|
|
390
|
-
};
|
|
391
|
-
};
|
|
392
|
-
/**
|
|
393
|
-
* Parameter descriptions are derived from the parent's (function/method) comment.
|
|
394
|
-
*/
|
|
395
|
-
SkyDocsTypeDocAdapterService.prototype.getParameterCommentTags = function (parameter, parentTags) {
|
|
396
|
-
var tags = this.getCommentTags(parameter.comment);
|
|
397
|
-
var paramTags = parentTags.parameters;
|
|
398
|
-
var tagParam = (paramTags) ? paramTags.find(function (param) { return param.name === parameter.name; }) : undefined;
|
|
399
|
-
if (!tagParam || !tagParam.description) {
|
|
400
|
-
return tags;
|
|
401
|
-
}
|
|
402
|
-
return __assign(__assign({}, tags), {
|
|
403
|
-
description: tagParam.description
|
|
404
|
-
});
|
|
405
|
-
};
|
|
406
|
-
/**
|
|
407
|
-
* Applies comment tag (e.g. `@param`) values to the provided definition, if the value is defined.
|
|
408
|
-
*/
|
|
409
|
-
SkyDocsTypeDocAdapterService.prototype.applyCommentTagValues = function (definition, tags) {
|
|
410
|
-
if (tags.codeExample) {
|
|
411
|
-
definition.codeExample = tags.codeExample;
|
|
412
|
-
definition.codeExampleLanguage = tags.codeExampleLanguage;
|
|
413
|
-
}
|
|
414
|
-
if (tags.deprecationWarning !== undefined) {
|
|
415
|
-
definition.deprecationWarning = tags.deprecationWarning;
|
|
416
|
-
}
|
|
417
|
-
if (tags.description) {
|
|
418
|
-
definition.description = tags.description;
|
|
419
|
-
}
|
|
420
|
-
};
|
|
421
|
-
SkyDocsTypeDocAdapterService.prototype.getDecorator = function (child) {
|
|
422
|
-
var name = child.decorators && child.decorators[0] && child.decorators[0].name;
|
|
423
|
-
if (name) {
|
|
424
|
-
return { name: name };
|
|
425
|
-
}
|
|
426
|
-
};
|
|
427
|
-
SkyDocsTypeDocAdapterService.prototype.getPropertyName = function (property) {
|
|
428
|
-
var _a;
|
|
429
|
-
var decorators = property.decorators && property.decorators[0];
|
|
430
|
-
// Use the Input's bound property name, if found.
|
|
431
|
-
// e.g. @Input('foobar')
|
|
432
|
-
return ((_a = decorators === null || decorators === void 0 ? void 0 : decorators.arguments) === null || _a === void 0 ? void 0 : _a.bindingPropertyName)
|
|
433
|
-
? decorators.arguments.bindingPropertyName.replace(/(\'|\")/g, '')
|
|
434
|
-
: property.name;
|
|
435
|
-
};
|
|
436
|
-
SkyDocsTypeDocAdapterService.prototype.getDefaultValue = function (child, tags) {
|
|
437
|
-
if (tags.defaultValue) {
|
|
438
|
-
return tags.defaultValue;
|
|
439
|
-
}
|
|
440
|
-
// TypeDoc version 0.20.x stopped auto-generating initializers for the default value
|
|
441
|
-
// (and replaced them with "...") due to the complicated logic it required.
|
|
442
|
-
// See: https://github.com/TypeStrong/typedoc/issues/1552
|
|
443
|
-
if (child.defaultValue === '...') {
|
|
444
|
-
return;
|
|
445
|
-
}
|
|
446
|
-
return child.defaultValue;
|
|
447
|
-
};
|
|
448
|
-
SkyDocsTypeDocAdapterService.prototype.getAnchorId = function (entry) {
|
|
449
|
-
var _a;
|
|
450
|
-
return entry.anchorId || ((_a = this.typeDefinitionsProvider) === null || _a === void 0 ? void 0 : _a.anchorIds[entry.name]) || '';
|
|
451
|
-
};
|
|
452
|
-
SkyDocsTypeDocAdapterService.ctorParameters = function () { return [
|
|
453
|
-
{ type: SkyDocsTypeDefinitionsProvider, decorators: [{ type: Optional }] }
|
|
454
|
-
]; };
|
|
455
|
-
SkyDocsTypeDocAdapterService = __decorate([
|
|
456
|
-
Injectable(),
|
|
457
|
-
__param(0, Optional())
|
|
458
|
-
], SkyDocsTypeDocAdapterService);
|
|
459
|
-
return SkyDocsTypeDocAdapterService;
|
|
460
|
-
}());
|
|
461
|
-
export { SkyDocsTypeDocAdapterService };
|
|
462
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy1hZGFwdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvZG9jcy10b29scy8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy90eXBlZG9jLWFkYXB0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixRQUFRLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFrRXZCLE9BQU8sRUFDTCw4QkFBOEIsRUFDL0IsTUFBTSw2QkFBNkIsQ0FBQztBQWdCckMsT0FBTyxPQUFPLE1BQU0sZ0JBQWdCLENBQUM7QUFFckM7O0dBRUc7QUFFSDtJQUVFLHNDQUNzQix1QkFBd0Q7UUFBeEQsNEJBQXVCLEdBQXZCLHVCQUF1QixDQUFpQztJQUMzRSxDQUFDO0lBRUcsd0RBQWlCLEdBQXhCLFVBQXlCLEtBQW1CO1FBQzFDLElBQU0sVUFBVSxHQUEyQjtZQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDakMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO1NBQ2pCLENBQUM7UUFFRixJQUFNLElBQUksR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTdDLElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLFVBQVUsQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1NBQzlCO1FBRUQsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xELElBQUksVUFBVSxDQUFDLE1BQU0sRUFBRTtZQUNyQixVQUFVLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztT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QyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVPLHNEQUFlLEdBQXZCLFVBQXdCLEtBQXdCLEVBQUUsSUFBd0I7UUFDeEUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUVELG9GQUFvRjtRQUNwRiwyRUFBMkU7UUFDM0UseURBQXlEO1FBQ3pELElBQUksS0FBSyxDQUFDLFlBQVksS0FBSyxLQUFLLEVBQUU7WUFDaEMsT0FBTztTQUNSO1FBRUQsT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDO0lBQzVCLENBQUM7SUFFTyxrREFBVyxHQUFuQixVQUFvQixLQUFtQjs7UUFDckMsT0FBTyxLQUFLLENBQUMsUUFBUSxXQUFJLElBQUksQ0FBQyx1QkFBdUIsMENBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUMsSUFBSSxFQUFFLENBQUM7SUFDckYsQ0FBQzs7Z0JBbGpCK0MsOEJBQThCLHVCQUEzRSxRQUFROztJQUhBLDRCQUE0QjtRQUR4QyxVQUFVLEVBQUU7UUFJUixXQUFBLFFBQVEsRUFBRSxDQUFBO09BSEYsNEJBQTRCLENBdWpCeEM7SUFBRCxtQ0FBQztDQUFBLEFBdmpCRCxJQXVqQkM7U0F2akJZLDRCQUE0QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEluamVjdGFibGUsXG4gIE9wdGlvbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb25cbn0gZnJvbSAnLi9jYWxsLXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NsYXNzRGVmaW5pdGlvblxufSBmcm9tICcuL2NsYXNzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzQ2xhc3NQcm9wZXJ0eURlZmluaXRpb25cbn0gZnJvbSAnLi9wcm9wZXJ0eS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0NvbW1lbnRUYWdzXG59IGZyb20gJy4vY29tbWVudC10YWdzJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0RpcmVjdGl2ZURlZmluaXRpb25cbn0gZnJvbSAnLi9kaXJlY3RpdmUtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb25cbn0gZnJvbSAnLi9lbnVtZXJhdGlvbi1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0VudW1lcmF0aW9uTWVtYmVyRGVmaW5pdGlvblxufSBmcm9tICcuL2VudW1lcmF0aW9uLW1lbWJlci1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0luZGV4U2lnbmF0dXJlRGVmaW5pdGlvblxufSBmcm9tICcuL2luZGV4LXNpZ25hdHVyZS1kZWZpbml0aW9uJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2UtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2UtcHJvcGVydHktZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb25cbn0gZnJvbSAnLi9tZXRob2QtZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uXG59IGZyb20gJy4vcGFyYW1ldGVyLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzUGlwZURlZmluaXRpb25cbn0gZnJvbSAnLi9waXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzUHJvcGVydHlEZWNvcmF0b3JEZWZpbml0aW9uXG59IGZyb20gJy4vcHJvcGVydHktZGVjb3JhdG9yJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb25cbn0gZnJvbSAnLi90eXBlLWFsaWFzLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25cbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb24nO1xuXG5pbXBvcnQge1xuICBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXJcbn0gZnJvbSAnLi90eXBlLWRlZmluaXRpb25zLXByb3ZpZGVyJztcblxuaW1wb3J0IHtcbiAgU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uXG59IGZyb20gJy4vdHlwZS1wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5cbmltcG9ydCB7XG4gIFR5cGVEb2NDb21tZW50LFxuICBUeXBlRG9jRW50cnksXG4gIFR5cGVEb2NFbnRyeUNoaWxkLFxuICBUeXBlRG9jUGFyYW1ldGVyLFxuICBUeXBlRG9jU2lnbmF0dXJlLFxuICBUeXBlRG9jVHlwZSxcbiAgVHlwZURvY1R5cGVQYXJhbWV0ZXJcbn0gZnJvbSAnLi90eXBlZG9jLXR5cGVzJztcblxuaW1wb3J0IG9yZGVyQnkgZnJvbSAnbG9kYXNoLm9yZGVyYnknO1xuXG4vKipcbiAqIENvbnZlcnRzIFR5cGVEb2MgdHlwZXMgaW50byBTS1kgVVggZG9jcy10b29scyB0eXBlcywgdG8gYmUgc3VwcGxpZWQgdG8gdGhlIHZhcmlvdXMgZGVmaW5pdGlvbnMgY29tcG9uZW50cy5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreURvY3NUeXBlRG9jQWRhcHRlclNlcnZpY2Uge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgdHlwZURlZmluaXRpb25zUHJvdmlkZXI/OiBTa3lEb2NzVHlwZURlZmluaXRpb25zUHJvdmlkZXJcbiAgKSB7fVxuXG4gIHB1YmxpYyB0b0NsYXNzRGVmaW5pdGlvbihlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0NsYXNzRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NsYXNzRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWVcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCBtZXRob2RzID0gdGhpcy5nZXRDbGFzc01ldGhvZHMoZW50cnkpO1xuICAgIGlmIChtZXRob2RzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5tZXRob2RzID0gbWV0aG9kcztcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDbGFzc1Byb3BlcnRpZXMoZW50cnkpO1xuICAgIGlmIChwcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5wcm9wZXJ0aWVzID0gcHJvcGVydGllcztcbiAgICB9XG5cbiAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgfVxuXG4gIHB1YmxpYyB0b0RpcmVjdGl2ZURlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NEaXJlY3RpdmVEZWZpbml0aW9uIHtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzRGlyZWN0aXZlRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG5hbWU6IGVudHJ5Lm5hbWUsXG4gICAgICBzZWxlY3RvcjogdGhpcy5nZXRTZWxlY3RvcihlbnRyeSlcbiAgICB9O1xuXG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MoZW50cnkuY29tbWVudCk7XG4gICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICBjb25zdCBwcm9wZXJ0aWVzID0gdGhpcy5nZXRDbGFzc1Byb3BlcnRpZXMoZW50cnkpO1xuXG4gICAgY29uc3QgZXZlbnRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIocCA9PiBwLmRlY29yYXRvcj8ubmFtZSA9PT0gJ091dHB1dCcpO1xuICAgIGlmIChldmVudFByb3BlcnRpZXMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLmV2ZW50UHJvcGVydGllcyA9IGV2ZW50UHJvcGVydGllcztcbiAgICB9XG5cbiAgICBjb25zdCBpbnB1dFByb3BlcnRpZXMgPSBwcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAuZGVjb3JhdG9yPy5uYW1lID09PSAnSW5wdXQnKTtcbiAgICBpZiAoaW5wdXRQcm9wZXJ0aWVzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi5pbnB1dFByb3BlcnRpZXMgPSBpbnB1dFByb3BlcnRpZXM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9FbnVtZXJhdGlvbkRlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NFbnVtZXJhdGlvbkRlZmluaXRpb24ge1xuICAgIGNvbnN0IG1lbWJlcnMgPSB0aGlzLmdldEVudW1lcmF0aW9uTWVtYmVycyhlbnRyeSk7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0VudW1lcmF0aW9uRGVmaW5pdGlvbiA9IHtcbiAgICAgIGFuY2hvcklkOiB0aGlzLmdldEFuY2hvcklkKGVudHJ5KSxcbiAgICAgIG1lbWJlcnMsXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9JbnRlcmZhY2VEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzSW50ZXJmYWNlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgcHJvcGVydGllcyA9IHRoaXMuZ2V0SW50ZXJmYWNlUHJvcGVydGllcyhlbnRyeSk7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0ludGVyZmFjZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgcHJvcGVydGllc1xuICAgIH07XG5cbiAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhlbnRyeS5jb21tZW50KTtcbiAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgIGNvbnN0IHR5cGVQYXJhbWV0ZXJzID0gdGhpcy5nZXRUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbnMoZW50cnkudHlwZVBhcmFtZXRlcik7XG4gICAgaWYgKHR5cGVQYXJhbWV0ZXJzLmxlbmd0aCkge1xuICAgICAgZGVmaW5pdGlvbi50eXBlUGFyYW1ldGVycyA9IHR5cGVQYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHVibGljIHRvUGlwZURlZmluaXRpb24oZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NQaXBlRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbWV0aG9kcyA9IHRoaXMuZ2V0Q2xhc3NNZXRob2RzKGVudHJ5KTtcbiAgICBjb25zdCB0cmFuc2Zvcm1NZXRob2QgPSBtZXRob2RzLmZpbmQobSA9PiBtLm5hbWUgPT09ICd0cmFuc2Zvcm0nKTtcbiAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzUGlwZURlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgdHJhbnNmb3JtTWV0aG9kXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwdWJsaWMgdG9UeXBlQWxpYXNEZWZpbml0aW9uKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzVHlwZUFsaWFzRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVBbGlhc0RlZmluaXRpb24gPSB7XG4gICAgICBhbmNob3JJZDogdGhpcy5nZXRBbmNob3JJZChlbnRyeSksXG4gICAgICBuYW1lOiBlbnRyeS5uYW1lLFxuICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbih7XG4gICAgICAgIGNvbW1lbnQ6IGVudHJ5LmNvbW1lbnQsXG4gICAgICAgIHR5cGU6IGVudHJ5LnR5cGVcbiAgICAgIH0pXG4gICAgfTtcblxuICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGVudHJ5LmNvbW1lbnQpO1xuICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuXG4gICAgY29uc3QgdHlwZVBhcmFtZXRlcnMgPSB0aGlzLmdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyhlbnRyeS50eXBlUGFyYW1ldGVyKTtcbiAgICBpZiAodHlwZVBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICBwcml2YXRlIGdldFNlbGVjdG9yKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29yYXRvclNvdXJjZSA9IGVudHJ5LmRlY29yYXRvcnNbMF0uYXJndW1lbnRzLm9iajtcbiAgICByZXR1cm4gKGRlY29yYXRvclNvdXJjZS5pbmRleE9mKCdzZWxlY3RvcjogYCcpID4gLTEpXG4gICAgICA/IGRlY29yYXRvclNvdXJjZS5zcGxpdCgnc2VsZWN0b3I6IGAnKVsxXS5zcGxpdCgnYCcpWzBdLnJlcGxhY2UoL1xcc1xccysvZywgJyAnKVxuICAgICAgOiBkZWNvcmF0b3JTb3VyY2Uuc3BsaXQoJ3NlbGVjdG9yOiBcXCcnKVsxXS5zcGxpdCgnXFwnJylbMF07XG4gIH1cblxuICBwcml2YXRlIGdldENsYXNzUHJvcGVydGllcyhlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0NsYXNzUHJvcGVydHlEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBkZWZpbml0aW9ucyA9IGVudHJ5LmNoaWxkcmVuXG4gICAgICAuZmlsdGVyKGNoaWxkID0+IGNoaWxkLmtpbmRTdHJpbmcgPT09ICdQcm9wZXJ0eScgfHwgY2hpbGQua2luZFN0cmluZyA9PT0gJ0FjY2Vzc29yJylcbiAgICAgIC5tYXAoY2hpbGQgPT4ge1xuICAgICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcbiAgICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc0NsYXNzUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICAgICAgICAgIGlzT3B0aW9uYWw6ICF0YWdzLmV4dHJhcy5yZXF1aXJlZCxcbiAgICAgICAgICBuYW1lOiB0aGlzLmdldFByb3BlcnR5TmFtZShjaGlsZCksXG4gICAgICAgICAgdHlwZTogdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZClcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICBjb25zdCBkZWNvcmF0b3IgPSB0aGlzLmdldERlY29yYXRvcihjaGlsZCk7XG4gICAgICAgIGlmIChkZWNvcmF0b3IpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLmRlY29yYXRvciA9IGRlY29yYXRvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHRoaXMuZ2V0RGVmYXVsdFZhbHVlKGNoaWxkLCB0YWdzKTtcbiAgICAgICAgaWYgKGRlZmF1bHRWYWx1ZSkge1xuICAgICAgICAgIGRlZmluaXRpb24uZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgICB9KTtcblxuICAgIHJldHVybiBvcmRlckJ5KFxuICAgICAgZGVmaW5pdGlvbnMsXG4gICAgICBbJ2lzT3B0aW9uYWwnLCAnbmFtZSddLFxuICAgICAgWydhc2MnLCAnYXNjJ11cbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDbGFzc01ldGhvZHMoZW50cnk6IFR5cGVEb2NFbnRyeSk6IFNreURvY3NDbGFzc01ldGhvZERlZmluaXRpb25bXSB7XG4gICAgaWYgKCFlbnRyeS5jaGlsZHJlbikge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG1ldGhvZHMgPSBlbnRyeS5jaGlsZHJlblxuICAgICAgLmZpbHRlcihjaGlsZCA9PiBjaGlsZC5raW5kU3RyaW5nID09PSAnTWV0aG9kJyAmJiAvXm5nLy50ZXN0KGNoaWxkLm5hbWUpID09PSBmYWxzZSlcbiAgICAgIC5tYXAoY2hpbGQgPT4ge1xuICAgICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzQ2xhc3NNZXRob2REZWZpbml0aW9uID0ge1xuICAgICAgICAgIG5hbWU6IHRoaXMuZ2V0UHJvcGVydHlOYW1lKGNoaWxkKSxcbiAgICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKVxuICAgICAgICB9O1xuXG4gICAgICAgIC8vIENvbW1lbnRzIGZvciBtZXRob2RzIGFyZSBzdG9yZWQgaW4gYSBkaWZmZXJlbnQgbG9jYXRpb24uXG4gICAgICAgIGNvbnN0IGNvbW1lbnQgPSBjaGlsZC5zaWduYXR1cmVzWzBdLmNvbW1lbnQ7XG4gICAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNvbW1lbnQpO1xuICAgICAgICB0aGlzLmFwcGx5Q29tbWVudFRhZ1ZhbHVlcyhkZWZpbml0aW9uLCB0YWdzKTtcblxuICAgICAgICBjb25zdCB0eXBlUGFyYW1ldGVycyA9IHRoaXMuZ2V0VHlwZVBhcmFtZXRlckRlZmluaXRpb25zKGNoaWxkLnNpZ25hdHVyZXNbMF0udHlwZVBhcmFtZXRlcik7XG4gICAgICAgIGlmICh0eXBlUGFyYW1ldGVycy5sZW5ndGgpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLnR5cGVQYXJhbWV0ZXJzID0gdHlwZVBhcmFtZXRlcnM7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIG9yZGVyQnkoXG4gICAgICBtZXRob2RzLFxuICAgICAgWyduYW1lJ10sXG4gICAgICBbJ2FzYyddXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW50ZXJmYWNlUHJvcGVydGllcyhlbnRyeTogVHlwZURvY0VudHJ5KTogU2t5RG9jc0ludGVyZmFjZVByb3BlcnR5RGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWVudHJ5LmNoaWxkcmVuICYmICFlbnRyeS5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGRlZmluaXRpb25zID0gZW50cnkuY2hpbGRyZW4/Lm1hcChjaGlsZCA9PiB7XG4gICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KTtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NJbnRlcmZhY2VQcm9wZXJ0eURlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6ICh0YWdzLmV4dHJhcy5yZXF1aXJlZCkgPyBmYWxzZSA6ICEhKGNoaWxkLmZsYWdzPy5pc09wdGlvbmFsKSxcbiAgICAgICAgbmFtZTogdGhpcy5nZXRQcm9wZXJ0eU5hbWUoY2hpbGQpLFxuICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkKVxuICAgICAgfTtcblxuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pIHx8IFtdO1xuXG4gICAgY29uc3Qgc29ydGVkID0gb3JkZXJCeShcbiAgICAgIGRlZmluaXRpb25zLFxuICAgICAgWydpc09wdGlvbmFsJywgJ25hbWUnXSxcbiAgICAgIFsnYXNjJywgJ2FzYyddXG4gICAgKTtcblxuICAgIC8vIEFkZCBhbnkgaW5kZXggc2lnbmF0dXJlcywgZS5nLiBgW186IHN0cmluZ106IGFueWBcbiAgICBpZiAoZW50cnkuaW5kZXhTaWduYXR1cmUpIHtcbiAgICAgIGNvbnN0IGluZGV4U2lnbmF0dXJlID0gZW50cnkuaW5kZXhTaWduYXR1cmVbMF07XG4gICAgICBjb25zdCBkZWZpbml0aW9uOiBTa3lEb2NzSW50ZXJmYWNlUHJvcGVydHlEZWZpbml0aW9uID0ge1xuICAgICAgICBpc09wdGlvbmFsOiB0cnVlLFxuICAgICAgICBuYW1lOiBpbmRleFNpZ25hdHVyZS5uYW1lLFxuICAgICAgICB0eXBlOiB7XG4gICAgICAgICAgaW5kZXhTaWduYXR1cmU6IHRoaXMuZ2V0SW5kZXhTaWduYXR1cmVEZWZpbml0aW9uKGluZGV4U2lnbmF0dXJlKVxuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCB0YWdzID0gdGhpcy5nZXRDb21tZW50VGFncyhpbmRleFNpZ25hdHVyZS5jb21tZW50KTtcbiAgICAgIHRoaXMuYXBwbHlDb21tZW50VGFnVmFsdWVzKGRlZmluaXRpb24sIHRhZ3MpO1xuICAgICAgc29ydGVkLnB1c2goZGVmaW5pdGlvbik7XG4gICAgfVxuXG4gICAgcmV0dXJuIHNvcnRlZDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW51bWVyYXRpb25NZW1iZXJzKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBTa3lEb2NzRW51bWVyYXRpb25NZW1iZXJEZWZpbml0aW9uW10ge1xuICAgIGlmICghZW50cnkuY2hpbGRyZW4pIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICByZXR1cm4gZW50cnkuY2hpbGRyZW4ubWFwKGNoaWxkID0+IHtcbiAgICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NFbnVtZXJhdGlvbk1lbWJlckRlZmluaXRpb24gPSB7XG4gICAgICAgIG5hbWU6IGNoaWxkLm5hbWVcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IHRhZ3MgPSB0aGlzLmdldENvbW1lbnRUYWdzKGNoaWxkLmNvbW1lbnQpO1xuICAgICAgdGhpcy5hcHBseUNvbW1lbnRUYWdWYWx1ZXMoZGVmaW5pdGlvbiwgdGFncyk7XG5cbiAgICAgIHJldHVybiBkZWZpbml0aW9uO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlRGVmaW5pdGlvbihjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQpOiBTa3lEb2NzVHlwZURlZmluaXRpb24ge1xuICAgIGxldCBkZWZpbml0aW9uOiBTa3lEb2NzVHlwZURlZmluaXRpb247XG5cbiAgICBjb25zdCBraW5kU3RyaW5nID0gY2hpbGQua2luZFN0cmluZztcbiAgICBzd2l0Y2ggKGtpbmRTdHJpbmcpIHtcbiAgICAgIGNhc2UgJ0FjY2Vzc29yJzpcbiAgICAgICAgaWYgKGNoaWxkLnNldFNpZ25hdHVyZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKGNoaWxkLnNldFNpZ25hdHVyZVswXS5wYXJhbWV0ZXJzWzBdKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRUeXBlRGVmaW5pdGlvbihjaGlsZC5nZXRTaWduYXR1cmVbMF0pO1xuXG4gICAgICBjYXNlICdNZXRob2QnOlxuICAgICAgICBkZWZpbml0aW9uID0ge1xuICAgICAgICAgIGNhbGxTaWduYXR1cmU6IHRoaXMuZ2V0Q2FsbFNpZ25hdHVyZURlZmluaXRpb24oY2hpbGQuc2lnbmF0dXJlc1swXSwgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KSksXG4gICAgICAgICAgbmFtZTogY2hpbGQuc2lnbmF0dXJlc1swXS5uYW1lXG4gICAgICAgIH07XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGxldCBuYW1lOiBzdHJpbmcgPSBjaGlsZC50eXBlLm5hbWUgfHwgY2hpbGQudHlwZS5lbGVtZW50VHlwZT8ubmFtZSB8fCBjaGlsZC50eXBlLnZhbHVlO1xuXG4gICAgICAgIGRlZmluaXRpb24gPSB7XG4gICAgICAgICAgdHlwZTogY2hpbGQudHlwZS50eXBlXG4gICAgICAgIH07XG5cbiAgICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVW5pb24/XG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVzKSB7XG4gICAgICAgICAgZGVmaW5pdGlvbi51bmlvblR5cGVzID0gY2hpbGQudHlwZS50eXBlcy5tYXAodCA9PiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdCB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDb252ZXJ0IHJlZmxlY3Rpb24gdHlwZXMuXG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGUgPT09ICdyZWZsZWN0aW9uJykge1xuICAgICAgICAgIGNvbnN0IGRlY2xhcmF0aW9uID0gY2hpbGQudHlwZS5kZWNsYXJhdGlvbjtcbiAgICAgICAgICAvKmlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICAgICAgaWYgKGRlY2xhcmF0aW9uKSB7XG4gICAgICAgICAgICBpZiAoZGVjbGFyYXRpb24uc2lnbmF0dXJlcykge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmNhbGxTaWduYXR1cmUgPSB0aGlzLmdldENhbGxTaWduYXR1cmVEZWZpbml0aW9uKFxuICAgICAgICAgICAgICAgIGRlY2xhcmF0aW9uLnNpZ25hdHVyZXNbMF0sXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRDb21tZW50VGFncyhjaGlsZC5jb21tZW50KVxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5pbmRleFNpZ25hdHVyZSkge1xuICAgICAgICAgICAgICBjb25zdCBpbmRleFNpZ25hdHVyZSA9IGRlY2xhcmF0aW9uLmluZGV4U2lnbmF0dXJlWzBdO1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLmluZGV4U2lnbmF0dXJlID0gdGhpcy5nZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oaW5kZXhTaWduYXR1cmUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChkZWNsYXJhdGlvbi5jaGlsZHJlbikge1xuICAgICAgICAgICAgICBkZWZpbml0aW9uLnR5cGVMaXRlcmFsID0ge1xuICAgICAgICAgICAgICAgIHByb3BlcnRpZXM6IHRoaXMuZ2V0SW50ZXJmYWNlUHJvcGVydGllcyh7XG4gICAgICAgICAgICAgICAgICBjaGlsZHJlbjogZGVjbGFyYXRpb24uY2hpbGRyZW5cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLnR5cGUudHlwZSA9PT0gJ3R5cGVPcGVyYXRvcicpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLm5hbWUgPSBgJHtjaGlsZC50eXBlLm9wZXJhdG9yfSAke2NoaWxkLnR5cGUudGFyZ2V0Lm5hbWV9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZC50eXBlLnR5cGVBcmd1bWVudHMpIHtcbiAgICAgICAgICBkZWZpbml0aW9uLnR5cGVBcmd1bWVudHMgPSB0aGlzLmdldFR5cGVBcmd1bWVudERlZmluaXRpb25zKGNoaWxkLnR5cGUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGRlZmluaXRpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJEZWZpbml0aW9ucyhcbiAgICBjYWxsU2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlLFxuICAgIHBhcmVudFRhZ3M6IFNreURvY3NDb21tZW50VGFnc1xuICApOiBTa3lEb2NzUGFyYW1ldGVyRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIWNhbGxTaWduYXR1cmUucGFyYW1ldGVycykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IHBhcmFtZXRlcnM6IFNreURvY3NQYXJhbWV0ZXJEZWZpbml0aW9uW10gPSBjYWxsU2lnbmF0dXJlLnBhcmFtZXRlcnMubWFwKHAgPT4ge1xuICAgICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0UGFyYW1ldGVyQ29tbWVudFRhZ3MocCwgcGFyZW50VGFncyk7XG4gICAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSB0aGlzLmdldERlZmF1bHRWYWx1ZShwLCB0YWdzKTtcbiAgICAgIGNvbnN0IHR5cGVBcmd1bWVudHMgPSB0aGlzLmdldFR5cGVBcmd1bWVudERlZmluaXRpb25zKHAudHlwZSk7XG5cbiAgICAgIGNvbnN0IHBhcmFtZXRlcjogU2t5RG9jc1BhcmFtZXRlckRlZmluaXRpb24gPSB7XG4gICAgICAgIGlzT3B0aW9uYWw6ICEhKGRlZmF1bHRWYWx1ZSB8fCAhIXAuZmxhZ3M/LmlzT3B0aW9uYWwpLFxuICAgICAgICBuYW1lOiBwLm5hbWUsXG4gICAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24ocClcbiAgICAgIH07XG5cbiAgICAgIGlmIChkZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBwYXJhbWV0ZXIuZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodGFncy5kZXNjcmlwdGlvbikge1xuICAgICAgICBwYXJhbWV0ZXIuZGVzY3JpcHRpb24gPSB0YWdzLmRlc2NyaXB0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZUFyZ3VtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgcGFyYW1ldGVyLnR5cGVBcmd1bWVudHMgPSB0eXBlQXJndW1lbnRzO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcGFyYW1ldGVyO1xuICAgIH0pO1xuICAgIHJldHVybiBwYXJhbWV0ZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlQXJndW1lbnREZWZpbml0aW9ucyh0eXBlQ29uZmlnOiBUeXBlRG9jVHlwZSk6IFNreURvY3NUeXBlRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIXR5cGVDb25maWcgfHwgIXR5cGVDb25maWcudHlwZUFyZ3VtZW50cykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlQ29uZmlnLnR5cGVBcmd1bWVudHMubWFwKCh0eXBlQXJndW1lbnQpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHsgdHlwZTogdHlwZUFyZ3VtZW50IH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbihjYWxsU2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlLCB0YWdzOiBTa3lEb2NzQ29tbWVudFRhZ3MpOiBTa3lEb2NzQ2FsbFNpZ25hdHVyZURlZmluaXRpb24ge1xuICAgIGNvbnN0IGRlZmluaXRpb246IFNreURvY3NDYWxsU2lnbmF0dXJlRGVmaW5pdGlvbiA9IHtcbiAgICAgIHJldHVyblR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oY2FsbFNpZ25hdHVyZSlcbiAgICB9O1xuXG4gICAgY29uc3QgcGFyYW1ldGVycyA9IHRoaXMuZ2V0UGFyYW1ldGVyRGVmaW5pdGlvbnMoY2FsbFNpZ25hdHVyZSwgdGFncyk7XG4gICAgaWYgKHBhcmFtZXRlcnMubGVuZ3RoKSB7XG4gICAgICBkZWZpbml0aW9uLnBhcmFtZXRlcnMgPSBwYXJhbWV0ZXJzO1xuICAgIH1cblxuICAgIHJldHVybiBkZWZpbml0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRJbmRleFNpZ25hdHVyZURlZmluaXRpb24oc2lnbmF0dXJlOiBUeXBlRG9jU2lnbmF0dXJlKTogU2t5RG9jc0luZGV4U2lnbmF0dXJlRGVmaW5pdGlvbiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGtleToge1xuICAgICAgICBuYW1lOiBzaWduYXR1cmUucGFyYW1ldGVyc1swXS5uYW1lLFxuICAgICAgICB0eXBlOiB0aGlzLmdldFR5cGVEZWZpbml0aW9uKHNpZ25hdHVyZS5wYXJhbWV0ZXJzWzBdKVxuICAgICAgfSxcbiAgICAgIHR5cGU6IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oc2lnbmF0dXJlKVxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVQYXJhbWV0ZXJEZWZpbml0aW9ucyh0eXBlUGFyYW1ldGVyczogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXSk6IFNreURvY3NUeXBlUGFyYW1ldGVyRGVmaW5pdGlvbltdIHtcbiAgICBpZiAoIXR5cGVQYXJhbWV0ZXJzKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVQYXJhbWV0ZXJzLm1hcCh0eXBlUGFyYW0gPT4ge1xuICAgICAgY29uc3QgZGVmaW5pdGlvbjogU2t5RG9jc1R5cGVQYXJhbWV0ZXJEZWZpbml0aW9uID0ge1xuICAgICAgICBuYW1lOiB0eXBlUGFyYW0ubmFtZVxuICAgICAgfTtcblxuICAgICAgaWYgKHR5cGVQYXJhbS50eXBlKSB7XG4gICAgICAgIGRlZmluaXRpb24udHlwZSA9IHRoaXMuZ2V0VHlwZURlZmluaXRpb24oe1xuICAgICAgICAgIHR5cGU6IHR5cGVQYXJhbS50eXBlXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gZGVmaW5pdGlvbjtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tbWVudFRhZ3MoY29tbWVudDogVHlwZURvY0NvbW1lbnQpOiBTa3lEb2NzQ29tbWVudFRhZ3Mge1xuICAgIGxldCBjb2RlRXhhbXBsZTogc3RyaW5nO1xuICAgIGxldCBjb2RlRXhhbXBsZUxhbmd1YWdlOiBzdHJpbmcgPSAnbWFya3VwJztcbiAgICBsZXQgZGVwcmVjYXRpb25XYXJuaW5nOiBzdHJpbmc7XG4gICAgbGV0IGRlZmF1bHRWYWx1ZTogc3RyaW5nO1xuICAgIGxldCBkZXNjcmlwdGlvbjogc3RyaW5nID0gJyc7XG5cbiAgICBsZXQgcGFyYW1ldGVyczoge1xuICAgICAgbmFtZTogc3RyaW5nO1xuICAgICAgZGVzY3JpcHRpb246IHN0cmluZ1xuICAgIH1bXTtcblxuICAgIGNvbnN0IGV4dHJhczoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55XG4gICAgfSA9IHt9O1xuXG4gICAgaWYgKGNvbW1lbnQpIHtcbiAgICAgIGlmIChjb21tZW50LnRhZ3MpIHtcbiAgICAgICAgY29tbWVudC50YWdzLmZvckVhY2godGFnID0+IHtcbiAgICAgICAgICBzd2l0Y2ggKHRhZy50YWcpIHtcbiAgICAgICAgICAgIGNhc2UgJ2RlcHJlY2F0ZWQnOlxuICAgICAgICAgICAgICBkZXByZWNhdGlvbldhcm5pbmcgPSB0YWcudGV4dC50cmltKCk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBjYXNlICdkZWZhdWx0JzpcbiAgICAgICAgICAgIGNhc2UgJ2RlZmF1bHRWYWx1ZSc6XG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZSA9IHRhZy50ZXh0LnRyaW0oKTtcbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ2V4YW1wbGUnOlxuICAgICAgICAgICAgICBjb2RlRXhhbXBsZSA9IHRhZy50ZXh0LnRyaW0oKS5zcGxpdCgnYGBgJylbMV0udHJpbSgpO1xuICAgICAgICAgICAgICBjb25zdCBsYW5ndWFnZSA9IGNvZGVFeGFtcGxlLnNwbGl0KCdcXG4nKVswXTtcbiAgICAgICAgICAgICAgaWYgKGxhbmd1YWdlID09PSAnbWFya3VwJyB8fCBsYW5ndWFnZSA9PT0gJ3R5cGVzY3JpcHQnKSB7XG4gICAgICAgICAgICAgICAgY29kZUV4YW1wbGUgPSBjb2RlRXhhbXBsZS5zbGljZShsYW5ndWFnZS5sZW5ndGgpLnRyaW0oKTtcbiAgICAgICAgICAgICAgICBjb2RlRXhhbXBsZUxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgIGNhc2UgJ3BhcmFtJzpcbiAgICAgICAgICAgICAgcGFyYW1ldGVycyA9IHBhcmFtZXRlcnMgfHwgW107XG4gICAgICAgICAgICAgIHBhcmFtZXRlcnMucHVzaCh7XG4gICAgICAgICAgICAgICAgbmFtZTogdGFnLnBhcmFtLFxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiB0YWcudGV4dC50cmltKClcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICBleHRyYXNbdGFnLnRhZ10gPSB0YWcudGV4dDtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZGVzY3JpcHRpb24gPSAoY29tbWVudC5zaG9ydFRleHQgfHwgY29tbWVudC50ZXh0IHx8ICcnKS50cmltKCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIGNvZGVFeGFtcGxlLFxuICAgICAgY29kZUV4YW1wbGVMYW5ndWFnZSxcbiAgICAgIGRlZmF1bHRWYWx1ZSxcbiAgICAgIGRlcHJlY2F0aW9uV2FybmluZyxcbiAgICAgIGRlc2NyaXB0aW9uLFxuICAgICAgZXh0cmFzLFxuICAgICAgcGFyYW1ldGVyc1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogUGFyYW1ldGVyIGRlc2NyaXB0aW9ucyBhcmUgZGVyaXZlZCBmcm9tIHRoZSBwYXJlbnQncyAoZnVuY3Rpb24vbWV0aG9kKSBjb21tZW50LlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJDb21tZW50VGFncyhwYXJhbWV0ZXI6IFR5cGVEb2NQYXJhbWV0ZXIsIHBhcmVudFRhZ3M6IFNreURvY3NDb21tZW50VGFncyk6IFNreURvY3NDb21tZW50VGFncyB7XG4gICAgY29uc3QgdGFncyA9IHRoaXMuZ2V0Q29tbWVudFRhZ3MocGFyYW1ldGVyLmNvbW1lbnQpO1xuICAgIGNvbnN0IHBhcmFtVGFncyA9IHBhcmVudFRhZ3MucGFyYW1ldGVycztcbiAgICBjb25zdCB0YWdQYXJhbSA9IChwYXJhbVRhZ3MpID8gcGFyYW1UYWdzLmZpbmQoKHBhcmFtKSA9PiBwYXJhbS5uYW1lID09PSBwYXJhbWV0ZXIubmFtZSkgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIXRhZ1BhcmFtIHx8ICF0YWdQYXJhbS5kZXNjcmlwdGlvbikge1xuICAgICAgcmV0dXJuIHRhZ3M7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnRhZ3MsXG4gICAgICAuLi57XG4gICAgICAgIGRlc2NyaXB0aW9uOiB0YWdQYXJhbS5kZXNjcmlwdGlvblxuICAgICAgfVxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBjb21tZW50IHRhZyAoZS5nLiBgQHBhcmFtYCkgdmFsdWVzIHRvIHRoZSBwcm92aWRlZCBkZWZpbml0aW9uLCBpZiB0aGUgdmFsdWUgaXMgZGVmaW5lZC5cbiAgICovXG4gIHByaXZhdGUgYXBwbHlDb21tZW50VGFnVmFsdWVzKFxuICAgIGRlZmluaXRpb246IHtcbiAgICAgIGNvZGVFeGFtcGxlPzogc3RyaW5nO1xuICAgICAgY29kZUV4YW1wbGVMYW5ndWFnZT86IHN0cmluZztcbiAgICAgIGRlcHJlY2F0aW9uV2FybmluZz86IHN0cmluZztcbiAgICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIH0sXG4gICAgdGFnczogU2t5RG9jc0NvbW1lbnRUYWdzXG4gICk6IHZvaWQge1xuICAgIGlmICh0YWdzLmNvZGVFeGFtcGxlKSB7XG4gICAgICBkZWZpbml0aW9uLmNvZGVFeGFtcGxlID0gdGFncy5jb2RlRXhhbXBsZTtcbiAgICAgIGRlZmluaXRpb24uY29kZUV4YW1wbGVMYW5ndWFnZSA9IHRhZ3MuY29kZUV4YW1wbGVMYW5ndWFnZTtcbiAgICB9XG5cbiAgICBpZiAodGFncy5kZXByZWNhdGlvbldhcm5pbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgZGVmaW5pdGlvbi5kZXByZWNhdGlvbldhcm5pbmcgPSB0YWdzLmRlcHJlY2F0aW9uV2FybmluZztcbiAgICB9XG5cbiAgICBpZiAodGFncy5kZXNjcmlwdGlvbikge1xuICAgICAgZGVmaW5pdGlvbi5kZXNjcmlwdGlvbiA9IHRhZ3MuZGVzY3JpcHRpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXREZWNvcmF0b3IoY2hpbGQ6IFR5cGVEb2NFbnRyeUNoaWxkKTogU2t5RG9jc1Byb3BlcnR5RGVjb3JhdG9yRGVmaW5pdGlvbiB7XG4gICAgY29uc3QgbmFtZSA9IGNoaWxkLmRlY29yYXRvcnMgJiYgY2hpbGQuZGVjb3JhdG9yc1swXSAmJiBjaGlsZC5kZWNvcmF0b3JzWzBdLm5hbWU7XG4gICAgaWYgKG5hbWUpIHtcbiAgICAgIHJldHVybiB7IG5hbWUgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFByb3BlcnR5TmFtZShwcm9wZXJ0eTogVHlwZURvY0VudHJ5Q2hpbGQpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY29yYXRvcnMgPSBwcm9wZXJ0eS5kZWNvcmF0b3JzICYmIHByb3BlcnR5LmRlY29yYXRvcnNbMF07XG4gICAgLy8gVXNlIHRoZSBJbnB1dCdzIGJvdW5kIHByb3BlcnR5IG5hbWUsIGlmIGZvdW5kLlxuICAgIC8vIGUuZy4gQElucHV0KCdmb29iYXInKVxuICAgIHJldHVybiAoZGVjb3JhdG9ycz8uYXJndW1lbnRzPy5iaW5kaW5nUHJvcGVydHlOYW1lKVxuICAgICAgPyBkZWNvcmF0b3JzLmFyZ3VtZW50cy5iaW5kaW5nUHJvcGVydHlOYW1lLnJlcGxhY2UoLyhcXCd8XFxcIikvZywgJycpXG4gICAgICA6IHByb3BlcnR5Lm5hbWU7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRWYWx1ZShjaGlsZDogVHlwZURvY0VudHJ5Q2hpbGQsIHRhZ3M6IFNreURvY3NDb21tZW50VGFncyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRhZ3MuZGVmYXVsdFZhbHVlKSB7XG4gICAgICByZXR1cm4gdGFncy5kZWZhdWx0VmFsdWU7XG4gICAgfVxuXG4gICAgLy8gVHlwZURvYyB2ZXJzaW9uIDAuMjAueCBzdG9wcGVkIGF1dG8tZ2VuZXJhdGluZyBpbml0aWFsaXplcnMgZm9yIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAgLy8gKGFuZCByZXBsYWNlZCB0aGVtIHdpdGggXCIuLi5cIikgZHVlIHRvIHRoZSBjb21wbGljYXRlZCBsb2dpYyBpdCByZXF1aXJlZC5cbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9UeXBlU3Ryb25nL3R5cGVkb2MvaXNzdWVzLzE1NTJcbiAgICBpZiAoY2hpbGQuZGVmYXVsdFZhbHVlID09PSAnLi4uJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHJldHVybiBjaGlsZC5kZWZhdWx0VmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldEFuY2hvcklkKGVudHJ5OiBUeXBlRG9jRW50cnkpOiBzdHJpbmcge1xuICAgIHJldHVybiBlbnRyeS5hbmNob3JJZCB8fCB0aGlzLnR5cGVEZWZpbml0aW9uc1Byb3ZpZGVyPy5hbmNob3JJZHNbZW50cnkubmFtZV0gfHwgJyc7XG4gIH1cblxufVxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWRvYy10eXBlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9kb2NzLXRvb2xzLyIsInNvdXJjZXMiOlsibW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGVkb2MtdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY0NvbW1lbnQge1xuXG4gIHNob3J0VGV4dD86IHN0cmluZztcblxuICB0YWdzPzoge1xuICAgIHBhcmFtPzogc3RyaW5nO1xuICAgIHRhZzogJ2RlZmF1bHQnIHwgJ2RlZmF1bHRWYWx1ZScgfCAnZGVwcmVjYXRlZCcgfCAnZXhhbXBsZScgfCAncGFyYW0nIHwgJ3JlcXVpcmVkJztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gIH1bXTtcblxuICB0ZXh0Pzogc3RyaW5nO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1NvdXJjZSB7XG5cbiAgZmlsZU5hbWU6IHN0cmluZztcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NTaWduYXR1cmUge1xuXG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBraW5kU3RyaW5nPzogJ0NhbGwgc2lnbmF0dXJlJyB8ICdJbmRleCBzaWduYXR1cmUnO1xuXG4gIG5hbWU6IHN0cmluZztcblxuICBwYXJhbWV0ZXJzPzogVHlwZURvY1BhcmFtZXRlcltdO1xuXG4gIHR5cGU6IFR5cGVEb2NUeXBlO1xuXG4gIHR5cGVQYXJhbWV0ZXI/OiBUeXBlRG9jVHlwZVBhcmFtZXRlcltdO1xuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHlwZURvY1R5cGVQYXJhbWV0ZXIge1xuICBuYW1lOiBzdHJpbmc7XG4gIGtpbmRTdHJpbmc6ICdUeXBlIHBhcmFtZXRlcic7XG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jVHlwZSB7XG5cbiAgY29uc3RyYWludD86IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gIH07XG5cbiAgZGVjbGFyYXRpb24/OiB7XG4gICAgY2hpbGRyZW4/OiBUeXBlRG9jRW50cnlDaGlsZFtdO1xuICAgIGluZGV4U2lnbmF0dXJlPzogVHlwZURvY1NpZ25hdHVyZVtdO1xuICAgIHNpZ25hdHVyZXM/OiBUeXBlRG9jU2lnbmF0dXJlW107XG4gIH07XG5cbiAgZWxlbWVudFR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICBuYW1lPzogc3RyaW5nO1xuXG4gIG9wZXJhdG9yPzogJ2tleW9mJztcblxuICB0YXJnZXQ/OiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICB9O1xuXG4gIHR5cGU/OiAnYXJyYXknIHwgJ2ludHJpbnNpYycgfCAncmVmZXJlbmNlJyB8ICdyZWZsZWN0aW9uJyB8ICdzdHJpbmdMaXRlcmFsJyB8ICd0eXBlUGFyYW1ldGVyJyB8ICd0eXBlT3BlcmF0b3InIHwgJ3VuaW9uJyB8ICd1bmtub3duJztcblxuICB0eXBlQXJndW1lbnRzPzogVHlwZURvY1R5cGVbXTtcblxuICB0eXBlcz86IFR5cGVEb2NUeXBlW107XG5cbiAgdmFsdWU/OiBzdHJpbmc7XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBUeXBlRG9jUGFyYW1ldGVyIHtcblxuICBjb21tZW50PzogVHlwZURvY0NvbW1lbnQ7XG5cbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gIGtpbmRTdHJpbmc6ICdQYXJhbWV0ZXInO1xuXG4gIG5hbWU6IHN0cmluZztcblxuICB0eXBlOiBUeXBlRG9jVHlwZTtcblxuICBmbGFncz86IHtcbiAgICBpc09wdGlvbmFsPzogYm9vbGVhbjtcbiAgfTtcblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NFbnRyeUNoaWxkIHtcblxuICBjb21tZW50PzogVHlwZURvY0NvbW1lbnQ7XG5cbiAgZGVjb3JhdG9ycz86IHtcbiAgICBhcmd1bWVudHM/OiB7XG4gICAgICBiaW5kaW5nUHJvcGVydHlOYW1lPzogc3RyaW5nO1xuICAgIH07XG4gICAgbmFtZTogJ0lucHV0JyB8ICdPdXRwdXQnO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9W107XG5cbiAgZGVmYXVsdFZhbHVlPzogc3RyaW5nO1xuXG4gIGZsYWdzPzoge1xuICAgIGlzT3B0aW9uYWw/OiBib29sZWFuO1xuICB9O1xuXG4gIGtpbmRTdHJpbmc/OiAnQWNjZXNzb3InIHwgJ0NhbGwgc2lnbmF0dXJlJyB8ICdJbmRleCBzaWduYXR1cmUnIHwgJ0VudW1lcmF0aW9uIG1lbWJlcicgfCAnUGFyYW1ldGVyJyB8ICdQcm9wZXJ0eScgfCAnTWV0aG9kJztcblxuICBnZXRTaWduYXR1cmU/OiB7XG4gICAgY29tbWVudDogVHlwZURvY0NvbW1lbnQ7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9W107XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzZXRTaWduYXR1cmU/OiB7XG4gICAgY29tbWVudDogVHlwZURvY0NvbW1lbnQ7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBhcmFtZXRlcnM/OiBUeXBlRG9jUGFyYW1ldGVyW107XG4gICAgdHlwZTogVHlwZURvY1R5cGU7XG4gIH1bXTtcblxuICBzaWduYXR1cmVzPzogVHlwZURvY1NpZ25hdHVyZVtdO1xuXG4gIHNvdXJjZXM/OiBUeXBlRG9jU291cmNlW107XG5cbiAgdHlwZT86IFR5cGVEb2NUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVEb2NFbnRyeSB7XG5cbiAgYW5jaG9ySWQ/OiBzdHJpbmc7XG5cbiAgY2hpbGRyZW4/OiBUeXBlRG9jRW50cnlDaGlsZFtdO1xuXG4gIGNvbW1lbnQ/OiBUeXBlRG9jQ29tbWVudDtcblxuICBkZWNvcmF0b3JzPzoge1xuICAgIGFyZ3VtZW50cz86IHtcbiAgICAgIG9iaj86IHN0cmluZztcbiAgICB9O1xuICAgIG5hbWU6ICdDb21wb25lbnQnIHwgJ0RpcmVjdGl2ZScgfCAnSW5qZWN0YWJsZScgfCAnTmdNb2R1bGUnIHwgJ1BpcGUnO1xuICAgIHR5cGU6IFR5cGVEb2NUeXBlO1xuICB9W107XG5cbiAga2luZFN0cmluZz86ICdDbGFzcycgfCAnRW51bWVyYXRpb24nIHwgJ0ludGVyZmFjZScgfCAnVHlwZSBhbGlhcyc7XG5cbiAgaW5kZXhTaWduYXR1cmU/OiBUeXBlRG9jU2lnbmF0dXJlW107XG5cbiAgbmFtZT86IHN0cmluZztcblxuICBzb3VyY2VzPzogVHlwZURvY1NvdXJjZVtdO1xuXG4gIHR5cGU/OiBUeXBlRG9jVHlwZTtcblxuICB0eXBlUGFyYW1ldGVyPzogVHlwZURvY1R5cGVQYXJhbWV0ZXJbXTtcblxufVxuIl19
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { getStringForLocale } from '@skyux/i18n';
|
|
4
|
-
var SkyDocsToolsResourcesProvider = /** @class */ (function () {
|
|
5
|
-
function SkyDocsToolsResourcesProvider() {
|
|
6
|
-
this.resources = { "EN-US": { "sky-docs-demo-heading": "Demo", "sky-docs-demo-toggle-button-on": "Show options", "sky-docs-demo-toggle-button-off": "Hide options", "sky-docs-code-example-launch-button-label": "Run in StackBlitz", "sky-docs-demo-control-panel-reset-button-label": "Reset" } };
|
|
7
|
-
}
|
|
8
|
-
SkyDocsToolsResourcesProvider.prototype.getString = function (localeInfo, name) {
|
|
9
|
-
return getStringForLocale(this.resources, localeInfo.locale, name);
|
|
10
|
-
};
|
|
11
|
-
SkyDocsToolsResourcesProvider = __decorate([
|
|
12
|
-
Injectable()
|
|
13
|
-
], SkyDocsToolsResourcesProvider);
|
|
14
|
-
return SkyDocsToolsResourcesProvider;
|
|
15
|
-
}());
|
|
16
|
-
export { SkyDocsToolsResourcesProvider };
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jcy10b29scy1yZXNvdXJjZXMtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2t5dXgvZG9jcy10b29scy8iLCJzb3VyY2VzIjpbInBsdWdpbi1yZXNvdXJjZXMvZG9jcy10b29scy1yZXNvdXJjZXMtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFDTCxVQUFVLEVBQ1gsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUNMLGtCQUFrQixFQUduQixNQUFNLGFBQWEsQ0FBQztBQUdyQjtJQUFBO1FBQ1UsY0FBUyxHQUFRLEVBQUMsT0FBTyxFQUFDLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxFQUFDLGdDQUFnQyxFQUFDLGNBQWMsRUFBQyxpQ0FBaUMsRUFBQyxjQUFjLEVBQUMsMkNBQTJDLEVBQUMsbUJBQW1CLEVBQUMsZ0RBQWdELEVBQUMsT0FBTyxFQUFDLEVBQUMsQ0FBQztJQUtoUyxDQUFDO0lBSFEsaURBQVMsR0FBaEIsVUFBaUIsVUFBNEIsRUFBRSxJQUFZO1FBQ3pELE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFMVSw2QkFBNkI7UUFEekMsVUFBVSxFQUFFO09BQ0EsNkJBQTZCLENBTXpDO0lBQUQsb0NBQUM7Q0FBQSxBQU5ELElBTUM7U0FOWSw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gIEluamVjdGFibGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIGdldFN0cmluZ0ZvckxvY2FsZSxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXJcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5RG9jc1Rvb2xzUmVzb3VyY2VzUHJvdmlkZXIgaW1wbGVtZW50cyBTa3lMaWJSZXNvdXJjZXNQcm92aWRlciB7XG4gIHByaXZhdGUgcmVzb3VyY2VzOiBhbnkgPSB7XCJFTi1VU1wiOntcInNreS1kb2NzLWRlbW8taGVhZGluZ1wiOlwiRGVtb1wiLFwic2t5LWRvY3MtZGVtby10b2dnbGUtYnV0dG9uLW9uXCI6XCJTaG93IG9wdGlvbnNcIixcInNreS1kb2NzLWRlbW8tdG9nZ2xlLWJ1dHRvbi1vZmZcIjpcIkhpZGUgb3B0aW9uc1wiLFwic2t5LWRvY3MtY29kZS1leGFtcGxlLWxhdW5jaC1idXR0b24tbGFiZWxcIjpcIlJ1biBpbiBTdGFja0JsaXR6XCIsXCJza3ktZG9jcy1kZW1vLWNvbnRyb2wtcGFuZWwtcmVzZXQtYnV0dG9uLWxhYmVsXCI6XCJSZXNldFwifX07XG5cbiAgcHVibGljIGdldFN0cmluZyhsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLCBuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBnZXRTdHJpbmdGb3JMb2NhbGUodGhpcy5yZXNvdXJjZXMsIGxvY2FsZUluZm8ubG9jYWxlLCBuYW1lKTtcbiAgfVxufVxuIl19
|
package/esm5/public_api.js
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
export * from './modules/anatomy/anatomy.module';
|
|
2
|
-
export * from './modules/code-examples/code-examples.module';
|
|
3
|
-
export * from './modules/code-examples/code-example-theme';
|
|
4
|
-
export * from './modules/demo/demo.module';
|
|
5
|
-
export * from './modules/demo-page/demo-page.module';
|
|
6
|
-
export * from './modules/design-guidelines/design-guidelines.module';
|
|
7
|
-
export * from './modules/heading-anchor/heading-anchor.module';
|
|
8
|
-
export * from './modules/markdown/markdown.module';
|
|
9
|
-
export * from './modules/markdown/markdown.pipe';
|
|
10
|
-
export * from './modules/module-info/module-info.module';
|
|
11
|
-
export * from './modules/shared/docs-tools-options';
|
|
12
|
-
export * from './modules/shared/docs-tools-supportal.service';
|
|
13
|
-
export * from './modules/source-code/source-code-provider';
|
|
14
|
-
export * from './modules/thumbnail/thumbnail.module';
|
|
15
|
-
export * from './modules/type-definitions/type-definitions-provider';
|
|
16
|
-
export * from './modules/type-definitions/type-definitions.module';
|
|
17
|
-
export * from './modules/type-definitions/type-definitions.service';
|
|
18
|
-
export * from './docs-tools.module';
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bza3l1eC9kb2NzLXRvb2xzLyIsInNvdXJjZXMiOlsicHVibGljX2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyw0Q0FBNEMsQ0FBQztBQUszRCxjQUFjLDRCQUE0QixDQUFDO0FBRTNDLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsY0FBYyxzREFBc0QsQ0FBQztBQUVyRSxjQUFjLGdEQUFnRCxDQUFDO0FBRS9ELGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxjQUFjLDBDQUEwQyxDQUFDO0FBR3pELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywrQ0FBK0MsQ0FBQztBQUU5RCxjQUFjLDRDQUE0QyxDQUFDO0FBRTNELGNBQWMsc0NBQXNDLENBQUM7QUFhckQsY0FBYyxzREFBc0QsQ0FBQztBQUNyRSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMscURBQXFELENBQUM7QUFFcEUsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9hbmF0b215L2FuYXRvbXkubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlLXRoZW1lJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RlbW8vZGVtby1jb250ZW50LWFsaWdubWVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtY2hhbmdlJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9kZW1vL2RlbW8tY29udHJvbC1wYW5lbC1yYWRpby1jaG9pY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2RlbW8vZGVtby5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVtby1wYWdlL2RlbW8tcGFnZS5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvZGVzaWduLWd1aWRlbGluZXMvZGVzaWduLWd1aWRlbGluZXMubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL2hlYWRpbmctYW5jaG9yL2hlYWRpbmctYW5jaG9yLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9tYXJrZG93bi9tYXJrZG93bi5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL21hcmtkb3duL21hcmtkb3duLnBpcGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvbW9kdWxlLWluZm8vbW9kdWxlLWluZm8ubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3NoYXJlZC9kb2NzLXRvb2xzLWNvbXBvbmVudC1pbmZvJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9zaGFyZWQvZG9jcy10b29scy1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9zaGFyZWQvZG9jcy10b29scy1zdXBwb3J0YWwuc2VydmljZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy9zb3VyY2UtY29kZS9zb3VyY2UtY29kZS1wcm92aWRlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90aHVtYm5haWwvdGh1bWJuYWlsLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL2NsYXNzLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvZGlyZWN0aXZlLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvZW51bWVyYXRpb24tZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9pbnRlcmZhY2UtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9pbnRlcmZhY2UtcHJvcGVydHktZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9tZXRob2QtZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9wYXJhbWV0ZXItZGVmaW5pdGlvbic7XG5leHBvcnQgKiBmcm9tICcuL21vZHVsZXMvdHlwZS1kZWZpbml0aW9ucy9waXBlLWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvcHJvcGVydHktZGVjb3JhdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3Byb3BlcnR5LWRlZmluaXRpb24nO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZS1hbGlhcy1kZWZpbml0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kdWxlcy90eXBlLWRlZmluaXRpb25zL3R5cGUtZGVmaW5pdGlvbnMtcHJvdmlkZXInO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZS1kZWZpbml0aW9ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2R1bGVzL3R5cGUtZGVmaW5pdGlvbnMvdHlwZS1kZWZpbml0aW9ucy5zZXJ2aWNlJztcblxuZXhwb3J0ICogZnJvbSAnLi9kb2NzLXRvb2xzLm1vZHVsZSc7XG4iXX0=
|