@skyux/docs-tools 11.1.0 → 12.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/css/docs-tools.css +2 -2
- package/fesm2022/skyux-docs-tools.mjs +260 -248
- package/fesm2022/skyux-docs-tools.mjs.map +1 -1
- package/modules/shared/sky-docs-tools-resources.module.d.ts +0 -4
- package/package.json +19 -21
- package/esm2022/docs-tools.module.mjs +0 -36
- package/esm2022/modules/anatomy/anatomy-item.component.mjs +0 -17
- package/esm2022/modules/anatomy/anatomy-thumbnail.component.mjs +0 -27
- package/esm2022/modules/anatomy/anatomy.component.mjs +0 -25
- package/esm2022/modules/anatomy/anatomy.module.mjs +0 -46
- package/esm2022/modules/code-examples/code-example-module-dependencies.mjs +0 -2
- package/esm2022/modules/code-examples/code-example-theme.mjs +0 -6
- package/esm2022/modules/code-examples/code-example.component.mjs +0 -68
- package/esm2022/modules/code-examples/code-example.mjs +0 -2
- package/esm2022/modules/code-examples/code-examples-editor.service.mjs +0 -341
- package/esm2022/modules/code-examples/code-examples.component.mjs +0 -98
- package/esm2022/modules/code-examples/code-examples.module.mjs +0 -41
- package/esm2022/modules/demo/demo-content-alignment.mjs +0 -2
- package/esm2022/modules/demo/demo-control-panel-change.mjs +0 -2
- package/esm2022/modules/demo/demo-control-panel-checkbox.component.mjs +0 -84
- package/esm2022/modules/demo/demo-control-panel-radio-choice.mjs +0 -2
- package/esm2022/modules/demo/demo-control-panel-radio-group.component.mjs +0 -80
- package/esm2022/modules/demo/demo-control-panel-section.component.mjs +0 -22
- package/esm2022/modules/demo/demo-control-panel.component.mjs +0 -85
- package/esm2022/modules/demo/demo-custom-control-panel.component.mjs +0 -20
- package/esm2022/modules/demo/demo.component.mjs +0 -58
- package/esm2022/modules/demo/demo.module.mjs +0 -72
- package/esm2022/modules/demo-page/demo-page-dom-adapter.service.mjs +0 -75
- package/esm2022/modules/demo-page/demo-page-module-info.component.mjs +0 -14
- package/esm2022/modules/demo-page/demo-page-section.component.mjs +0 -43
- package/esm2022/modules/demo-page/demo-page-summary.component.mjs +0 -21
- package/esm2022/modules/demo-page/demo-page-title.service.mjs +0 -28
- package/esm2022/modules/demo-page/demo-page-type-definitions.component.mjs +0 -24
- package/esm2022/modules/demo-page/demo-page.component.mjs +0 -190
- package/esm2022/modules/demo-page/demo-page.module.mjs +0 -94
- package/esm2022/modules/design-guidelines/design-guideline-thumbnail.component.mjs +0 -27
- package/esm2022/modules/design-guidelines/design-guideline.component.mjs +0 -33
- package/esm2022/modules/design-guidelines/design-guidelines.component.mjs +0 -11
- package/esm2022/modules/design-guidelines/design-guidelines.module.mjs +0 -34
- package/esm2022/modules/heading-anchor/heading-anchor.component.mjs +0 -21
- package/esm2022/modules/heading-anchor/heading-anchor.module.mjs +0 -20
- package/esm2022/modules/markdown/markdown.module.mjs +0 -17
- package/esm2022/modules/markdown/markdown.pipe.mjs +0 -20
- package/esm2022/modules/module-info/module-info.component.mjs +0 -72
- package/esm2022/modules/module-info/module-info.module.mjs +0 -40
- package/esm2022/modules/safe-html/safe-html.component.mjs +0 -20
- package/esm2022/modules/safe-html/safe-html.module.mjs +0 -18
- package/esm2022/modules/shared/docs-tools-component-info.mjs +0 -2
- package/esm2022/modules/shared/docs-tools-options.mjs +0 -3
- package/esm2022/modules/shared/docs-tools-site-options.mjs +0 -3
- package/esm2022/modules/shared/docs-tools-supportal.service.mjs +0 -23
- package/esm2022/modules/shared/sky-docs-tools-resources.module.mjs +0 -55
- package/esm2022/modules/source-code/source-code-file.mjs +0 -2
- package/esm2022/modules/source-code/source-code-provider.mjs +0 -13
- package/esm2022/modules/source-code/source-code.service.mjs +0 -42
- package/esm2022/modules/thumbnail/thumbnail.component.mjs +0 -28
- package/esm2022/modules/thumbnail/thumbnail.module.mjs +0 -19
- package/esm2022/modules/type-definitions/anchor-link-service-config.mjs +0 -2
- package/esm2022/modules/type-definitions/anchor-link-service-format.mjs +0 -2
- package/esm2022/modules/type-definitions/anchor-link.mjs +0 -2
- package/esm2022/modules/type-definitions/anchor-link.service.mjs +0 -106
- package/esm2022/modules/type-definitions/call-signature-definition.component.mjs +0 -45
- package/esm2022/modules/type-definitions/call-signature-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/class-definition.component.mjs +0 -20
- package/esm2022/modules/type-definitions/class-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/comment-tags.mjs +0 -2
- package/esm2022/modules/type-definitions/directive-definition.component.mjs +0 -20
- package/esm2022/modules/type-definitions/directive-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/entry-child-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/entry-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/enumeration-definition.component.mjs +0 -19
- package/esm2022/modules/type-definitions/enumeration-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/enumeration-member-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/index-signature-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/interface-definition.component.mjs +0 -36
- package/esm2022/modules/type-definitions/interface-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/interface-property-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/method-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/method-definitions.component.mjs +0 -72
- package/esm2022/modules/type-definitions/parameter-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/pipe-definition.component.mjs +0 -20
- package/esm2022/modules/type-definitions/pipe-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/preview-feature-indicator.component.mjs +0 -13
- package/esm2022/modules/type-definitions/property-decorator.mjs +0 -2
- package/esm2022/modules/type-definitions/property-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/property-definitions.component.mjs +0 -66
- package/esm2022/modules/type-definitions/type-alias-definition.component.mjs +0 -37
- package/esm2022/modules/type-definitions/type-alias-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/type-anchor-links.pipe.mjs +0 -27
- package/esm2022/modules/type-definitions/type-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/type-definitions-format.service.mjs +0 -254
- package/esm2022/modules/type-definitions/type-definitions-provider.mjs +0 -10
- package/esm2022/modules/type-definitions/type-definitions.mjs +0 -2
- package/esm2022/modules/type-definitions/type-definitions.module.mjs +0 -108
- package/esm2022/modules/type-definitions/type-definitions.service.mjs +0 -121
- package/esm2022/modules/type-definitions/type-parameter-definition.mjs +0 -2
- package/esm2022/modules/type-definitions/typedoc-adapter.service.mjs +0 -614
- package/esm2022/modules/type-definitions/typedoc-types.mjs +0 -32
- package/esm2022/public-api.mjs +0 -69
- package/esm2022/skyux-docs-tools.mjs +0 -5
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
import { VERSION as ANGULAR_VERSION, Injectable } from '@angular/core';
|
|
2
|
-
import { VERSION as SKY_UX_VERSION } from '@skyux/core';
|
|
3
|
-
import { VERSION as SKY_UX_ICONS_VERSION } from '@skyux/icons';
|
|
4
|
-
import StackBlitzSDK from '@stackblitz/sdk';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* @internal
|
|
8
|
-
*/
|
|
9
|
-
export class SkyDocsCodeExamplesEditorService {
|
|
10
|
-
launchEditor(codeExample, template = 'angular-cli') {
|
|
11
|
-
const project = this.#getPayload(codeExample, template);
|
|
12
|
-
const openFile = [];
|
|
13
|
-
if (project.files['src/app/demo.component.html']) {
|
|
14
|
-
openFile.push('src/app/demo.component.html');
|
|
15
|
-
}
|
|
16
|
-
else if (project.files['src/app/demo.component.ts']) {
|
|
17
|
-
openFile.push('src/app/demo.component.ts');
|
|
18
|
-
}
|
|
19
|
-
const options = {
|
|
20
|
-
openFile,
|
|
21
|
-
};
|
|
22
|
-
StackBlitzSDK.openProject(project, options);
|
|
23
|
-
}
|
|
24
|
-
#getPayload(codeExample, template) {
|
|
25
|
-
const angularVersion = `^${ANGULAR_VERSION.major}`;
|
|
26
|
-
const skyuxVersion = `^${SKY_UX_VERSION.full}`;
|
|
27
|
-
const defaultDependencies = {
|
|
28
|
-
'@angular-devkit/build-angular': angularVersion,
|
|
29
|
-
'@angular/animations': angularVersion,
|
|
30
|
-
'@angular/cdk': angularVersion,
|
|
31
|
-
'@angular/cli': angularVersion,
|
|
32
|
-
'@angular/common': angularVersion,
|
|
33
|
-
'@angular/compiler': angularVersion,
|
|
34
|
-
'@angular/compiler-cli': angularVersion,
|
|
35
|
-
'@angular/core': angularVersion,
|
|
36
|
-
'@angular/forms': angularVersion,
|
|
37
|
-
'@angular/platform-browser': angularVersion,
|
|
38
|
-
'@angular/platform-browser-dynamic': angularVersion,
|
|
39
|
-
'@angular/router': angularVersion,
|
|
40
|
-
'@skyux/animations': skyuxVersion,
|
|
41
|
-
'@skyux/assets': skyuxVersion,
|
|
42
|
-
'@skyux/config': skyuxVersion,
|
|
43
|
-
'@skyux/core': skyuxVersion,
|
|
44
|
-
'@skyux/errors': skyuxVersion,
|
|
45
|
-
'@skyux/forms': skyuxVersion,
|
|
46
|
-
'@skyux/help-inline': skyuxVersion,
|
|
47
|
-
'@skyux/i18n': skyuxVersion,
|
|
48
|
-
'@skyux/icon': skyuxVersion,
|
|
49
|
-
'@skyux/indicators': skyuxVersion,
|
|
50
|
-
'@skyux/layout': skyuxVersion,
|
|
51
|
-
'@skyux/modals': skyuxVersion,
|
|
52
|
-
'@skyux/packages': skyuxVersion,
|
|
53
|
-
'@skyux/popovers': skyuxVersion,
|
|
54
|
-
'@skyux/router': skyuxVersion,
|
|
55
|
-
'@skyux/theme': skyuxVersion,
|
|
56
|
-
'@types/jasmine': '~5.1.4',
|
|
57
|
-
'ng2-dragula': '5.1.0',
|
|
58
|
-
rxjs: '^7',
|
|
59
|
-
tslib: '^2.6.2',
|
|
60
|
-
typescript: '~5.5.3',
|
|
61
|
-
'zone.js': '~0.14.4',
|
|
62
|
-
};
|
|
63
|
-
const mergedDependencies = Object.assign({}, defaultDependencies, codeExample.packageDependencies);
|
|
64
|
-
// Ensure any @skyux dependencies list the correct version of SKY UX.
|
|
65
|
-
// e.g. `"@skyux/core": "*"` --> `"@skyux/core": "5.0.0"`
|
|
66
|
-
for (const packageName in mergedDependencies) {
|
|
67
|
-
/*istanbul ignore else*/
|
|
68
|
-
if (mergedDependencies.hasOwnProperty(packageName)) {
|
|
69
|
-
const version = mergedDependencies[packageName];
|
|
70
|
-
if (version === '*' &&
|
|
71
|
-
/^(@blackbaud\/skyux-lib-|@skyux)/.test(packageName)) {
|
|
72
|
-
mergedDependencies[packageName] = skyuxVersion;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
const overrides = template === 'node'
|
|
77
|
-
? {
|
|
78
|
-
'ng2-dragula@5.1.0': {
|
|
79
|
-
'@angular/animations': '>=16.0.0 <19.0.0',
|
|
80
|
-
'@angular/core': '>=16.0.0 <19.0.0',
|
|
81
|
-
'@angular/common': '>=16.0.0 <19.0.0',
|
|
82
|
-
},
|
|
83
|
-
}
|
|
84
|
-
: undefined;
|
|
85
|
-
const files = this.parseStackBlitzFiles(codeExample.sourceCode, mergedDependencies, overrides, {
|
|
86
|
-
target: template === 'node' ? 'ES2022' : 'ES2015',
|
|
87
|
-
}, codeExample.theme, codeExample.stylesheets);
|
|
88
|
-
return {
|
|
89
|
-
files,
|
|
90
|
-
title: 'SKY UX Demo',
|
|
91
|
-
description: 'SKY UX Demo',
|
|
92
|
-
template,
|
|
93
|
-
dependencies: mergedDependencies,
|
|
94
|
-
settings: {
|
|
95
|
-
compile: {
|
|
96
|
-
clearConsole: false,
|
|
97
|
-
},
|
|
98
|
-
},
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
parseStackBlitzFiles(sourceCode, dependencies, overrides, compilerOptions, theme, stylesheets = []) {
|
|
102
|
-
const srcPath = 'src/';
|
|
103
|
-
const appPath = `${srcPath}app/`;
|
|
104
|
-
const banner = `/**
|
|
105
|
-
* This file is needed for the StackBlitz demo only.
|
|
106
|
-
* It is automatically provided when using the Angular CLI.
|
|
107
|
-
**/
|
|
108
|
-
`;
|
|
109
|
-
const moduleImportStatements = [
|
|
110
|
-
`import { FormsModule, ReactiveFormsModule } from '@angular/forms';`,
|
|
111
|
-
];
|
|
112
|
-
const moduleImports = ['FormsModule', 'ReactiveFormsModule'];
|
|
113
|
-
const files = {
|
|
114
|
-
'.stackblitzrc': JSON.stringify({
|
|
115
|
-
env: {
|
|
116
|
-
NG_BUILD_PARALLEL_TS: '0',
|
|
117
|
-
NODE_ENV: 'development',
|
|
118
|
-
},
|
|
119
|
-
}, undefined, 2),
|
|
120
|
-
};
|
|
121
|
-
let appComponentTemplate = '';
|
|
122
|
-
sourceCode.forEach((file) => {
|
|
123
|
-
files[`${appPath}${file.fileName}`] = file.rawContents;
|
|
124
|
-
// Setup module imports and component selectors.
|
|
125
|
-
if (file.fileName.indexOf('.module.ts') > -1) {
|
|
126
|
-
const moduleName = this.getModuleName(file.rawContents);
|
|
127
|
-
const importPath = `./${this.getFilenameNoExtension(file.fileName)}`;
|
|
128
|
-
const exportedComponent = this.getExportedComponent(file.rawContents);
|
|
129
|
-
const componentSelector = this.getComponentSelector(exportedComponent, sourceCode);
|
|
130
|
-
appComponentTemplate += `<${componentSelector}></${componentSelector}>`;
|
|
131
|
-
moduleImports.push(moduleName);
|
|
132
|
-
moduleImportStatements.push(`import { ${moduleName} } from '${importPath}';`);
|
|
133
|
-
}
|
|
134
|
-
// Standalone entry components are named demo.component.ts.
|
|
135
|
-
if (file.fileName === 'demo.component.ts') {
|
|
136
|
-
const componentName = 'DemoComponent';
|
|
137
|
-
const componentSelector = 'app-demo';
|
|
138
|
-
const importPath = `./${this.getFilenameNoExtension(file.fileName)}`;
|
|
139
|
-
appComponentTemplate += `<${componentSelector} />`;
|
|
140
|
-
moduleImports.push(componentName);
|
|
141
|
-
moduleImportStatements.push(`import { ${componentName} } from '${importPath}';`);
|
|
142
|
-
}
|
|
143
|
-
});
|
|
144
|
-
files[`${appPath}app.component.ts`] = `${banner}
|
|
145
|
-
import { Component } from '@angular/core';
|
|
146
|
-
${moduleImportStatements.join('\n\n')}
|
|
147
|
-
|
|
148
|
-
@Component({
|
|
149
|
-
selector: 'sky-demo-app',
|
|
150
|
-
template: '${appComponentTemplate}',
|
|
151
|
-
standalone: true,
|
|
152
|
-
imports: [
|
|
153
|
-
${moduleImports.join(',\n ')},
|
|
154
|
-
],
|
|
155
|
-
})
|
|
156
|
-
export class AppComponent {}
|
|
157
|
-
`;
|
|
158
|
-
files[`${srcPath}index.html`] = `<!doctype html>
|
|
159
|
-
<html lang="en">
|
|
160
|
-
<head>
|
|
161
|
-
<meta charset="utf-8">
|
|
162
|
-
<title>Sky UX Demo</title>
|
|
163
|
-
<base href="/">
|
|
164
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
165
|
-
<!--
|
|
166
|
-
The CSS links are needed for the StackBlitz demo only.
|
|
167
|
-
This is a workaround for a known bug that prevents external imports in CSS.
|
|
168
|
-
https://github.com/stackblitz/core/issues/133
|
|
169
|
-
-->
|
|
170
|
-
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" crossorigin="anonymous">
|
|
171
|
-
<link rel="stylesheet" type="text/css" href="https://sky.blackbaudcdn.net/static/skyux-icons/${SKY_UX_ICONS_VERSION.full}/assets/css/skyux-icons.min.css" crossorigin="anonymous">
|
|
172
|
-
</head>
|
|
173
|
-
<body>
|
|
174
|
-
<sky-demo-app>
|
|
175
|
-
Loading...
|
|
176
|
-
</sky-demo-app>
|
|
177
|
-
</body>
|
|
178
|
-
</html>
|
|
179
|
-
`;
|
|
180
|
-
files[`${srcPath}main.ts`] = `${banner}
|
|
181
|
-
import 'zone.js';
|
|
182
|
-
import '@skyux/packages/polyfills';
|
|
183
|
-
|
|
184
|
-
import { bootstrapApplication } from '@angular/platform-browser';
|
|
185
|
-
import { provideAnimations } from '@angular/platform-browser/animations';
|
|
186
|
-
import { provideRouter } from '@angular/router';
|
|
187
|
-
import { provideInitialTheme } from '@skyux/theme';
|
|
188
|
-
|
|
189
|
-
import { AppComponent } from './app/app.component';
|
|
190
|
-
|
|
191
|
-
void bootstrapApplication(AppComponent, {
|
|
192
|
-
providers: [
|
|
193
|
-
provideAnimations(),
|
|
194
|
-
provideInitialTheme('${theme}'),
|
|
195
|
-
provideRouter([]),
|
|
196
|
-
],
|
|
197
|
-
})
|
|
198
|
-
.catch((err) => console.error(err));
|
|
199
|
-
`;
|
|
200
|
-
files[`${srcPath}styles.scss`] = `@import '@skyux/theme/css/sky';
|
|
201
|
-
@import '@skyux/theme/css/themes/modern/styles';
|
|
202
|
-
|
|
203
|
-
body {
|
|
204
|
-
background-color: #fff;
|
|
205
|
-
margin: 15px;
|
|
206
|
-
}
|
|
207
|
-
`;
|
|
208
|
-
stylesheets.push('src/styles.scss');
|
|
209
|
-
files['angular.json'] = JSON.stringify({
|
|
210
|
-
$schema: './node_modules/@angular/cli/lib/config/schema.json',
|
|
211
|
-
version: 1,
|
|
212
|
-
projects: {
|
|
213
|
-
demo: {
|
|
214
|
-
projectType: 'application',
|
|
215
|
-
root: '',
|
|
216
|
-
sourceRoot: 'src',
|
|
217
|
-
prefix: 'app',
|
|
218
|
-
architect: {
|
|
219
|
-
build: {
|
|
220
|
-
builder: '@angular-devkit/build-angular:application',
|
|
221
|
-
options: {
|
|
222
|
-
index: 'src/index.html',
|
|
223
|
-
browser: 'src/main.ts',
|
|
224
|
-
outputPath: 'dist/demo',
|
|
225
|
-
tsConfig: 'tsconfig.app.json',
|
|
226
|
-
inlineStyleLanguage: 'scss',
|
|
227
|
-
styles: stylesheets,
|
|
228
|
-
},
|
|
229
|
-
configurations: {
|
|
230
|
-
development: {
|
|
231
|
-
optimization: false,
|
|
232
|
-
extractLicenses: false,
|
|
233
|
-
sourceMap: true,
|
|
234
|
-
},
|
|
235
|
-
},
|
|
236
|
-
defaultConfiguration: 'development',
|
|
237
|
-
},
|
|
238
|
-
serve: {
|
|
239
|
-
builder: '@angular-devkit/build-angular:dev-server',
|
|
240
|
-
configurations: {
|
|
241
|
-
development: {
|
|
242
|
-
buildTarget: 'demo:build:development',
|
|
243
|
-
},
|
|
244
|
-
},
|
|
245
|
-
defaultConfiguration: 'development',
|
|
246
|
-
},
|
|
247
|
-
},
|
|
248
|
-
},
|
|
249
|
-
},
|
|
250
|
-
}, undefined, 2);
|
|
251
|
-
files['package.json'] = JSON.stringify({
|
|
252
|
-
name: 'skyux-spa-demo',
|
|
253
|
-
version: '0.0.0',
|
|
254
|
-
dependencies,
|
|
255
|
-
scripts: {
|
|
256
|
-
start: 'ng serve',
|
|
257
|
-
build: 'ng build',
|
|
258
|
-
},
|
|
259
|
-
...(overrides ? { overrides } : {}),
|
|
260
|
-
}, undefined, 2);
|
|
261
|
-
files['tsconfig.app.json'] = JSON.stringify({
|
|
262
|
-
extends: './tsconfig.json',
|
|
263
|
-
compilerOptions: {
|
|
264
|
-
outDir: './out-tsc/app',
|
|
265
|
-
types: [],
|
|
266
|
-
},
|
|
267
|
-
files: ['src/main.ts'],
|
|
268
|
-
include: ['src/**/*.d.ts'],
|
|
269
|
-
}, undefined, 2);
|
|
270
|
-
files['tsconfig.json'] = JSON.stringify({
|
|
271
|
-
compileOnSave: false,
|
|
272
|
-
compilerOptions: {
|
|
273
|
-
strict: true,
|
|
274
|
-
forceConsistentCasingInFileNames: true,
|
|
275
|
-
noImplicitOverride: true,
|
|
276
|
-
noPropertyAccessFromIndexSignature: true,
|
|
277
|
-
noImplicitReturns: true,
|
|
278
|
-
noFallthroughCasesInSwitch: true,
|
|
279
|
-
sourceMap: true,
|
|
280
|
-
declaration: false,
|
|
281
|
-
downlevelIteration: true,
|
|
282
|
-
esModuleInterop: true,
|
|
283
|
-
experimentalDecorators: true,
|
|
284
|
-
moduleResolution: 'node',
|
|
285
|
-
importHelpers: true,
|
|
286
|
-
typeRoots: ['node_modules/@types'],
|
|
287
|
-
target: 'ES2015',
|
|
288
|
-
module: 'ES2022',
|
|
289
|
-
useDefineForClassFields: false,
|
|
290
|
-
lib: ['ES2022', 'dom'],
|
|
291
|
-
...compilerOptions,
|
|
292
|
-
},
|
|
293
|
-
angularCompilerOptions: {
|
|
294
|
-
fullTemplateTypeCheck: true,
|
|
295
|
-
enableI18nLegacyMessageIdFormat: false,
|
|
296
|
-
strictInjectionParameters: true,
|
|
297
|
-
strictInputAccessModifiers: true,
|
|
298
|
-
strictTemplates: true,
|
|
299
|
-
},
|
|
300
|
-
}, undefined, 2);
|
|
301
|
-
return files;
|
|
302
|
-
}
|
|
303
|
-
getModuleName(contents) {
|
|
304
|
-
return contents.split('export class ')[1].split(' {')[0];
|
|
305
|
-
}
|
|
306
|
-
getFilenameNoExtension(fileName) {
|
|
307
|
-
const extension = fileName.split('.').pop();
|
|
308
|
-
return fileName.replace(`.${extension}`, '');
|
|
309
|
-
}
|
|
310
|
-
getExportedComponent(contents) {
|
|
311
|
-
const trimmed = contents.replace(/\s/g, '');
|
|
312
|
-
let fragment = trimmed.split('exports:[')[1];
|
|
313
|
-
if (!fragment) {
|
|
314
|
-
throw 'You must export a component from the code example module!';
|
|
315
|
-
}
|
|
316
|
-
fragment = fragment.split(']')[0];
|
|
317
|
-
const components = fragment.split(',').filter((x) => x);
|
|
318
|
-
if (components.length > 1) {
|
|
319
|
-
throw ('You may only export a single component from the code example module' +
|
|
320
|
-
`(we found ${components.length}: ${components.join(', ')}).` +
|
|
321
|
-
'Is it possible to create a new code example with the extra components?');
|
|
322
|
-
}
|
|
323
|
-
return components[0];
|
|
324
|
-
}
|
|
325
|
-
getComponentSelector(componentClassName, sourceCode) {
|
|
326
|
-
const found = sourceCode.find((file) => {
|
|
327
|
-
return file.rawContents.indexOf(`class ${componentClassName}`) > -1;
|
|
328
|
-
});
|
|
329
|
-
const trimmed = found.rawContents.replace(/\s/g, '');
|
|
330
|
-
return trimmed.split(`selector:'`)[1].split(`'`)[0];
|
|
331
|
-
}
|
|
332
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
333
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesEditorService, providedIn: 'root' }); }
|
|
334
|
-
}
|
|
335
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesEditorService, decorators: [{
|
|
336
|
-
type: Injectable,
|
|
337
|
-
args: [{
|
|
338
|
-
providedIn: 'root',
|
|
339
|
-
}]
|
|
340
|
-
}] });
|
|
341
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvY29kZS1leGFtcGxlcy9jb2RlLWV4YW1wbGVzLWVkaXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLElBQUksZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxJQUFJLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEVBQUUsT0FBTyxJQUFJLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQy9ELE9BQU8sYUFBYSxNQUFNLGlCQUFpQixDQUFDOztBQWM1Qzs7R0FFRztBQUlILE1BQU0sT0FBTyxnQ0FBZ0M7SUFDcEMsWUFBWSxDQUNqQixXQUErQixFQUMvQixXQUErQixhQUFhO1FBRTVDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM5QixJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsNkJBQTZCLENBQUMsRUFBRSxDQUFDO1lBQ2pELFFBQVEsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLDJCQUEyQixDQUFDLEVBQUUsQ0FBQztZQUN0RCxRQUFRLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELE1BQU0sT0FBTyxHQUEwQjtZQUNyQyxRQUFRO1NBQ1QsQ0FBQztRQUVGLGFBQWEsQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxXQUFXLENBQ1QsV0FBK0IsRUFDL0IsUUFBNEI7UUFFNUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkQsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFL0MsTUFBTSxtQkFBbUIsR0FBeUM7WUFDaEUsK0JBQStCLEVBQUUsY0FBYztZQUMvQyxxQkFBcUIsRUFBRSxjQUFjO1lBQ3JDLGNBQWMsRUFBRSxjQUFjO1lBQzlCLGNBQWMsRUFBRSxjQUFjO1lBQzlCLGlCQUFpQixFQUFFLGNBQWM7WUFDakMsbUJBQW1CLEVBQUUsY0FBYztZQUNuQyx1QkFBdUIsRUFBRSxjQUFjO1lBQ3ZDLGVBQWUsRUFBRSxjQUFjO1lBQy9CLGdCQUFnQixFQUFFLGNBQWM7WUFDaEMsMkJBQTJCLEVBQUUsY0FBYztZQUMzQyxtQ0FBbUMsRUFBRSxjQUFjO1lBQ25ELGlCQUFpQixFQUFFLGNBQWM7WUFDakMsbUJBQW1CLEVBQUUsWUFBWTtZQUNqQyxlQUFlLEVBQUUsWUFBWTtZQUM3QixlQUFlLEVBQUUsWUFBWTtZQUM3QixhQUFhLEVBQUUsWUFBWTtZQUMzQixlQUFlLEVBQUUsWUFBWTtZQUM3QixjQUFjLEVBQUUsWUFBWTtZQUM1QixvQkFBb0IsRUFBRSxZQUFZO1lBQ2xDLGFBQWEsRUFBRSxZQUFZO1lBQzNCLGFBQWEsRUFBRSxZQUFZO1lBQzNCLG1CQUFtQixFQUFFLFlBQVk7WUFDakMsZUFBZSxFQUFFLFlBQVk7WUFDN0IsZUFBZSxFQUFFLFlBQVk7WUFDN0IsaUJBQWlCLEVBQUUsWUFBWTtZQUMvQixpQkFBaUIsRUFBRSxZQUFZO1lBQy9CLGVBQWUsRUFBRSxZQUFZO1lBQzdCLGNBQWMsRUFBRSxZQUFZO1lBQzVCLGdCQUFnQixFQUFFLFFBQVE7WUFDMUIsYUFBYSxFQUFFLE9BQU87WUFDdEIsSUFBSSxFQUFFLElBQUk7WUFDVixLQUFLLEVBQUUsUUFBUTtZQUNmLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLFNBQVMsRUFBRSxTQUFTO1NBQ3JCLENBQUM7UUFFRixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQ3RDLEVBQUUsRUFDRixtQkFBbUIsRUFDbkIsV0FBVyxDQUFDLG1CQUFtQixDQUNoQyxDQUFDO1FBRUYscUVBQXFFO1FBQ3JFLHlEQUF5RDtRQUN6RCxLQUFLLE1BQU0sV0FBVyxJQUFJLGtCQUFrQixFQUFFLENBQUM7WUFDN0Msd0JBQXdCO1lBQ3hCLElBQUksa0JBQWtCLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQ25ELE1BQU0sT0FBTyxHQUFHLGtCQUFrQixDQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNoRCxJQUNFLE9BQU8sS0FBSyxHQUFHO29CQUNmLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFDcEQsQ0FBQztvQkFDRCxrQkFBa0IsQ0FBQyxXQUFXLENBQUMsR0FBRyxZQUFZLENBQUM7Z0JBQ2pELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sU0FBUyxHQUNiLFFBQVEsS0FBSyxNQUFNO1lBQ2pCLENBQUMsQ0FBQztnQkFDRSxtQkFBbUIsRUFBRTtvQkFDbkIscUJBQXFCLEVBQUUsa0JBQWtCO29CQUN6QyxlQUFlLEVBQUUsa0JBQWtCO29CQUNuQyxpQkFBaUIsRUFBRSxrQkFBa0I7aUJBQ3RDO2FBQ0Y7WUFDSCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWhCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FDckMsV0FBVyxDQUFDLFVBQVUsRUFDdEIsa0JBQWtCLEVBQ2xCLFNBQVMsRUFDVDtZQUNFLE1BQU0sRUFBRSxRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVE7U0FDbEQsRUFDRCxXQUFXLENBQUMsS0FBSyxFQUNqQixXQUFXLENBQUMsV0FBVyxDQUN4QixDQUFDO1FBRUYsT0FBTztZQUNMLEtBQUs7WUFDTCxLQUFLLEVBQUUsYUFBYTtZQUNwQixXQUFXLEVBQUUsYUFBYTtZQUMxQixRQUFRO1lBQ1IsWUFBWSxFQUFFLGtCQUFrQjtZQUNoQyxRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVksRUFBRSxLQUFLO2lCQUNwQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTyxvQkFBb0IsQ0FDMUIsVUFBbUMsRUFDbkMsWUFBa0QsRUFDbEQsU0FBNkIsRUFDN0IsZUFBdUIsRUFDdkIsS0FBOEIsRUFDOUIsY0FBd0IsRUFBRTtRQUkxQixNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFDdkIsTUFBTSxPQUFPLEdBQUcsR0FBRyxPQUFPLE1BQU0sQ0FBQztRQUVqQyxNQUFNLE1BQU0sR0FBRzs7OztFQUlqQixDQUFDO1FBRUMsTUFBTSxzQkFBc0IsR0FBYTtZQUN2QyxvRUFBb0U7U0FDckUsQ0FBQztRQUVGLE1BQU0sYUFBYSxHQUFhLENBQUMsYUFBYSxFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFFdkUsTUFBTSxLQUFLLEdBQTRCO1lBQ3JDLGVBQWUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUM3QjtnQkFDRSxHQUFHLEVBQUU7b0JBQ0gsb0JBQW9CLEVBQUUsR0FBRztvQkFDekIsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO2FBQ0YsRUFDRCxTQUFTLEVBQ1QsQ0FBQyxDQUNGO1NBQ0YsQ0FBQztRQUVGLElBQUksb0JBQW9CLEdBQUcsRUFBRSxDQUFDO1FBRTlCLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMxQixLQUFLLENBQUMsR0FBRyxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUV2RCxnREFBZ0Q7WUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUM3QyxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEQsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7Z0JBRXJFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDdEUsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQ2pELGlCQUFpQixFQUNqQixVQUFVLENBQ1gsQ0FBQztnQkFFRixvQkFBb0IsSUFBSSxJQUFJLGlCQUFpQixNQUFNLGlCQUFpQixHQUFHLENBQUM7Z0JBRXhFLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQy9CLHNCQUFzQixDQUFDLElBQUksQ0FDekIsWUFBWSxVQUFVLFlBQVksVUFBVSxJQUFJLENBQ2pELENBQUM7WUFDSixDQUFDO1lBRUQsMkRBQTJEO1lBQzNELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxtQkFBbUIsRUFBRSxDQUFDO2dCQUMxQyxNQUFNLGFBQWEsR0FBRyxlQUFlLENBQUM7Z0JBQ3RDLE1BQU0saUJBQWlCLEdBQUcsVUFBVSxDQUFDO2dCQUNyQyxNQUFNLFVBQVUsR0FBRyxLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztnQkFFckUsb0JBQW9CLElBQUksSUFBSSxpQkFBaUIsS0FBSyxDQUFDO2dCQUVuRCxhQUFhLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUNsQyxzQkFBc0IsQ0FBQyxJQUFJLENBQ3pCLFlBQVksYUFBYSxZQUFZLFVBQVUsSUFBSSxDQUNwRCxDQUFDO1lBQ0osQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsS0FBSyxDQUFDLEdBQUcsT0FBTyxrQkFBa0IsQ0FBQyxHQUFHLEdBQUcsTUFBTTs7RUFFakQsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7OztlQUl0QixvQkFBb0I7OztNQUc3QixhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQzs7OztDQUlsQyxDQUFDO1FBRUUsS0FBSyxDQUFDLEdBQUcsT0FBTyxZQUFZLENBQUMsR0FBRzs7Ozs7Ozs7Ozs7OztpR0FhNkQsb0JBQW9CLENBQUMsSUFBSTs7Ozs7Ozs7Q0FRekgsQ0FBQztRQUVFLEtBQUssQ0FBQyxHQUFHLE9BQU8sU0FBUyxDQUFDLEdBQUcsR0FBRyxNQUFNOzs7Ozs7Ozs7Ozs7OzsyQkFjZixLQUFLOzs7OztDQUsvQixDQUFDO1FBRUUsS0FBSyxDQUFDLEdBQUcsT0FBTyxhQUFhLENBQUMsR0FBRzs7Ozs7OztDQU9wQyxDQUFDO1FBRUUsV0FBVyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRXBDLEtBQUssQ0FBQyxjQUFjLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUNwQztZQUNFLE9BQU8sRUFBRSxvREFBb0Q7WUFDN0QsT0FBTyxFQUFFLENBQUM7WUFDVixRQUFRLEVBQUU7Z0JBQ1IsSUFBSSxFQUFFO29CQUNKLFdBQVcsRUFBRSxhQUFhO29CQUMxQixJQUFJLEVBQUUsRUFBRTtvQkFDUixVQUFVLEVBQUUsS0FBSztvQkFDakIsTUFBTSxFQUFFLEtBQUs7b0JBQ2IsU0FBUyxFQUFFO3dCQUNULEtBQUssRUFBRTs0QkFDTCxPQUFPLEVBQUUsMkNBQTJDOzRCQUNwRCxPQUFPLEVBQUU7Z0NBQ1AsS0FBSyxFQUFFLGdCQUFnQjtnQ0FDdkIsT0FBTyxFQUFFLGFBQWE7Z0NBQ3RCLFVBQVUsRUFBRSxXQUFXO2dDQUN2QixRQUFRLEVBQUUsbUJBQW1CO2dDQUM3QixtQkFBbUIsRUFBRSxNQUFNO2dDQUMzQixNQUFNLEVBQUUsV0FBVzs2QkFDcEI7NEJBQ0QsY0FBYyxFQUFFO2dDQUNkLFdBQVcsRUFBRTtvQ0FDWCxZQUFZLEVBQUUsS0FBSztvQ0FDbkIsZUFBZSxFQUFFLEtBQUs7b0NBQ3RCLFNBQVMsRUFBRSxJQUFJO2lDQUNoQjs2QkFDRjs0QkFDRCxvQkFBb0IsRUFBRSxhQUFhO3lCQUNwQzt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsT0FBTyxFQUFFLDBDQUEwQzs0QkFDbkQsY0FBYyxFQUFFO2dDQUNkLFdBQVcsRUFBRTtvQ0FDWCxXQUFXLEVBQUUsd0JBQXdCO2lDQUN0Qzs2QkFDRjs0QkFDRCxvQkFBb0IsRUFBRSxhQUFhO3lCQUNwQztxQkFDRjtpQkFDRjthQUNGO1NBQ0YsRUFDRCxTQUFTLEVBQ1QsQ0FBQyxDQUNGLENBQUM7UUFFRixLQUFLLENBQUMsY0FBYyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDcEM7WUFDRSxJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFlBQVk7WUFDWixPQUFPLEVBQUU7Z0JBQ1AsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLEtBQUssRUFBRSxVQUFVO2FBQ2xCO1lBQ0QsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQ3BDLEVBQ0QsU0FBUyxFQUNULENBQUMsQ0FDRixDQUFDO1FBRUYsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDekM7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLGVBQWUsRUFBRTtnQkFDZixNQUFNLEVBQUUsZUFBZTtnQkFDdkIsS0FBSyxFQUFFLEVBQUU7YUFDVjtZQUNELEtBQUssRUFBRSxDQUFDLGFBQWEsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7U0FDM0IsRUFDRCxTQUFTLEVBQ1QsQ0FBQyxDQUNGLENBQUM7UUFFRixLQUFLLENBQUMsZUFBZSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FDckM7WUFDRSxhQUFhLEVBQUUsS0FBSztZQUNwQixlQUFlLEVBQUU7Z0JBQ2YsTUFBTSxFQUFFLElBQUk7Z0JBQ1osZ0NBQWdDLEVBQUUsSUFBSTtnQkFDdEMsa0JBQWtCLEVBQUUsSUFBSTtnQkFDeEIsa0NBQWtDLEVBQUUsSUFBSTtnQkFDeEMsaUJBQWlCLEVBQUUsSUFBSTtnQkFDdkIsMEJBQTBCLEVBQUUsSUFBSTtnQkFDaEMsU0FBUyxFQUFFLElBQUk7Z0JBQ2YsV0FBVyxFQUFFLEtBQUs7Z0JBQ2xCLGtCQUFrQixFQUFFLElBQUk7Z0JBQ3hCLGVBQWUsRUFBRSxJQUFJO2dCQUNyQixzQkFBc0IsRUFBRSxJQUFJO2dCQUM1QixnQkFBZ0IsRUFBRSxNQUFNO2dCQUN4QixhQUFhLEVBQUUsSUFBSTtnQkFDbkIsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUM7Z0JBQ2xDLE1BQU0sRUFBRSxRQUFRO2dCQUNoQixNQUFNLEVBQUUsUUFBUTtnQkFDaEIsdUJBQXVCLEVBQUUsS0FBSztnQkFDOUIsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQztnQkFDdEIsR0FBRyxlQUFlO2FBQ25CO1lBQ0Qsc0JBQXNCLEVBQUU7Z0JBQ3RCLHFCQUFxQixFQUFFLElBQUk7Z0JBQzNCLCtCQUErQixFQUFFLEtBQUs7Z0JBQ3RDLHlCQUF5QixFQUFFLElBQUk7Z0JBQy9CLDBCQUEwQixFQUFFLElBQUk7Z0JBQ2hDLGVBQWUsRUFBRSxJQUFJO2FBQ3RCO1NBQ0YsRUFDRCxTQUFTLEVBQ1QsQ0FBQyxDQUNGLENBQUM7UUFFRixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBZ0I7UUFDcEMsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsUUFBZ0I7UUFDN0MsTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUM1QyxPQUFPLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxTQUFTLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsUUFBZ0I7UUFDM0MsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFNUMsSUFBSSxRQUFRLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDZCxNQUFNLDJEQUEyRCxDQUFDO1FBQ3BFLENBQUM7UUFFRCxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVsQyxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFeEQsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sQ0FDSixxRUFBcUU7Z0JBQ3JFLGFBQWEsVUFBVSxDQUFDLE1BQU0sS0FBSyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJO2dCQUM1RCx3RUFBd0UsQ0FDekUsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBRU8sb0JBQW9CLENBQzFCLGtCQUEwQixFQUMxQixVQUFtQztRQUVuQyxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDckMsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxTQUFTLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN0RSxDQUFDLENBQUMsQ0FBQztRQUVILE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVyRCxPQUFPLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBemFVLGdDQUFnQzttSEFBaEMsZ0NBQWdDLGNBRi9CLE1BQU07OzRGQUVQLGdDQUFnQztrQkFINUMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWRVJTSU9OIGFzIEFOR1VMQVJfVkVSU0lPTiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVkVSU0lPTiBhcyBTS1lfVVhfVkVSU0lPTiB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFZFUlNJT04gYXMgU0tZX1VYX0lDT05TX1ZFUlNJT04gfSBmcm9tICdAc2t5dXgvaWNvbnMnO1xuaW1wb3J0IFN0YWNrQmxpdHpTREsgZnJvbSAnQHN0YWNrYmxpdHovc2RrJztcbmltcG9ydCB7XG4gIE9wZW5PcHRpb25zIGFzIFN0YWNrQmxpdHpPcGVuT3B0aW9ucyxcbiAgUHJvamVjdCBhcyBTdGFja0JsaXR6UHJvamVjdCxcbn0gZnJvbSAnQHN0YWNrYmxpdHovc2RrJztcblxuaW1wb3J0IHsgU2t5RG9jc1NvdXJjZUNvZGVGaWxlIH0gZnJvbSAnLi4vc291cmNlLWNvZGUvc291cmNlLWNvZGUtZmlsZSc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZSB9IGZyb20gJy4vY29kZS1leGFtcGxlJztcbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyB9IGZyb20gJy4vY29kZS1leGFtcGxlLW1vZHVsZS1kZXBlbmRlbmNpZXMnO1xuaW1wb3J0IHsgU2t5RG9jc0NvZGVFeGFtcGxlVGhlbWUgfSBmcm9tICcuL2NvZGUtZXhhbXBsZS10aGVtZSc7XG5cbnR5cGUgU3RhY2tibGl0elRlbXBsYXRlID0gJ2FuZ3VsYXItY2xpJyB8ICdub2RlJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreURvY3NDb2RlRXhhbXBsZXNFZGl0b3JTZXJ2aWNlIHtcbiAgcHVibGljIGxhdW5jaEVkaXRvcihcbiAgICBjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlLFxuICAgIHRlbXBsYXRlOiBTdGFja2JsaXR6VGVtcGxhdGUgPSAnYW5ndWxhci1jbGknLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBwcm9qZWN0ID0gdGhpcy4jZ2V0UGF5bG9hZChjb2RlRXhhbXBsZSwgdGVtcGxhdGUpO1xuICAgIGNvbnN0IG9wZW5GaWxlOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChwcm9qZWN0LmZpbGVzWydzcmMvYXBwL2RlbW8uY29tcG9uZW50Lmh0bWwnXSkge1xuICAgICAgb3BlbkZpbGUucHVzaCgnc3JjL2FwcC9kZW1vLmNvbXBvbmVudC5odG1sJyk7XG4gICAgfSBlbHNlIGlmIChwcm9qZWN0LmZpbGVzWydzcmMvYXBwL2RlbW8uY29tcG9uZW50LnRzJ10pIHtcbiAgICAgIG9wZW5GaWxlLnB1c2goJ3NyYy9hcHAvZGVtby5jb21wb25lbnQudHMnKTtcbiAgICB9XG4gICAgY29uc3Qgb3B0aW9uczogU3RhY2tCbGl0ek9wZW5PcHRpb25zID0ge1xuICAgICAgb3BlbkZpbGUsXG4gICAgfTtcblxuICAgIFN0YWNrQmxpdHpTREsub3BlblByb2plY3QocHJvamVjdCwgb3B0aW9ucyk7XG4gIH1cblxuICAjZ2V0UGF5bG9hZChcbiAgICBjb2RlRXhhbXBsZTogU2t5RG9jc0NvZGVFeGFtcGxlLFxuICAgIHRlbXBsYXRlOiBTdGFja2JsaXR6VGVtcGxhdGUsXG4gICk6IFN0YWNrQmxpdHpQcm9qZWN0IHtcbiAgICBjb25zdCBhbmd1bGFyVmVyc2lvbiA9IGBeJHtBTkdVTEFSX1ZFUlNJT04ubWFqb3J9YDtcbiAgICBjb25zdCBza3l1eFZlcnNpb24gPSBgXiR7U0tZX1VYX1ZFUlNJT04uZnVsbH1gO1xuXG4gICAgY29uc3QgZGVmYXVsdERlcGVuZGVuY2llczogU2t5RG9jc0NvZGVFeGFtcGxlTW9kdWxlRGVwZW5kZW5jaWVzID0ge1xuICAgICAgJ0Bhbmd1bGFyLWRldmtpdC9idWlsZC1hbmd1bGFyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2Nkayc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NsaSc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvbW1vbic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2NvbXBpbGVyJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29tcGlsZXItY2xpJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvY29yZSc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL2Zvcm1zJzogYW5ndWxhclZlcnNpb24sXG4gICAgICAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXItZHluYW1pYyc6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bhbmd1bGFyL3JvdXRlcic6IGFuZ3VsYXJWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9hbmltYXRpb25zJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9hc3NldHMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2NvbmZpZyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvY29yZSc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvZXJyb3JzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9mb3Jtcyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvaGVscC1pbmxpbmUnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2kxOG4nOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2ljb24nOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2luZGljYXRvcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L2xheW91dCc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvbW9kYWxzJzogc2t5dXhWZXJzaW9uLFxuICAgICAgJ0Bza3l1eC9wYWNrYWdlcyc6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvcG9wb3ZlcnMnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHNreXV4L3JvdXRlcic6IHNreXV4VmVyc2lvbixcbiAgICAgICdAc2t5dXgvdGhlbWUnOiBza3l1eFZlcnNpb24sXG4gICAgICAnQHR5cGVzL2phc21pbmUnOiAnfjUuMS40JyxcbiAgICAgICduZzItZHJhZ3VsYSc6ICc1LjEuMCcsXG4gICAgICByeGpzOiAnXjcnLFxuICAgICAgdHNsaWI6ICdeMi42LjInLFxuICAgICAgdHlwZXNjcmlwdDogJ341LjUuMycsXG4gICAgICAnem9uZS5qcyc6ICd+MC4xNC40JyxcbiAgICB9O1xuXG4gICAgY29uc3QgbWVyZ2VkRGVwZW5kZW5jaWVzID0gT2JqZWN0LmFzc2lnbihcbiAgICAgIHt9LFxuICAgICAgZGVmYXVsdERlcGVuZGVuY2llcyxcbiAgICAgIGNvZGVFeGFtcGxlLnBhY2thZ2VEZXBlbmRlbmNpZXMsXG4gICAgKTtcblxuICAgIC8vIEVuc3VyZSBhbnkgQHNreXV4IGRlcGVuZGVuY2llcyBsaXN0IHRoZSBjb3JyZWN0IHZlcnNpb24gb2YgU0tZIFVYLlxuICAgIC8vIGUuZy4gYFwiQHNreXV4L2NvcmVcIjogXCIqXCJgIC0tPiBgXCJAc2t5dXgvY29yZVwiOiBcIjUuMC4wXCJgXG4gICAgZm9yIChjb25zdCBwYWNrYWdlTmFtZSBpbiBtZXJnZWREZXBlbmRlbmNpZXMpIHtcbiAgICAgIC8qaXN0YW5idWwgaWdub3JlIGVsc2UqL1xuICAgICAgaWYgKG1lcmdlZERlcGVuZGVuY2llcy5oYXNPd25Qcm9wZXJ0eShwYWNrYWdlTmFtZSkpIHtcbiAgICAgICAgY29uc3QgdmVyc2lvbiA9IG1lcmdlZERlcGVuZGVuY2llc1twYWNrYWdlTmFtZV07XG4gICAgICAgIGlmIChcbiAgICAgICAgICB2ZXJzaW9uID09PSAnKicgJiZcbiAgICAgICAgICAvXihAYmxhY2tiYXVkXFwvc2t5dXgtbGliLXxAc2t5dXgpLy50ZXN0KHBhY2thZ2VOYW1lKVxuICAgICAgICApIHtcbiAgICAgICAgICBtZXJnZWREZXBlbmRlbmNpZXNbcGFja2FnZU5hbWVdID0gc2t5dXhWZXJzaW9uO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3ZlcnJpZGVzID1cbiAgICAgIHRlbXBsYXRlID09PSAnbm9kZSdcbiAgICAgICAgPyB7XG4gICAgICAgICAgICAnbmcyLWRyYWd1bGFANS4xLjAnOiB7XG4gICAgICAgICAgICAgICdAYW5ndWxhci9hbmltYXRpb25zJzogJz49MTYuMC4wIDwxOS4wLjAnLFxuICAgICAgICAgICAgICAnQGFuZ3VsYXIvY29yZSc6ICc+PTE2LjAuMCA8MTkuMC4wJyxcbiAgICAgICAgICAgICAgJ0Bhbmd1bGFyL2NvbW1vbic6ICc+PTE2LjAuMCA8MTkuMC4wJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZpbGVzID0gdGhpcy5wYXJzZVN0YWNrQmxpdHpGaWxlcyhcbiAgICAgIGNvZGVFeGFtcGxlLnNvdXJjZUNvZGUsXG4gICAgICBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBvdmVycmlkZXMsXG4gICAgICB7XG4gICAgICAgIHRhcmdldDogdGVtcGxhdGUgPT09ICdub2RlJyA/ICdFUzIwMjInIDogJ0VTMjAxNScsXG4gICAgICB9LFxuICAgICAgY29kZUV4YW1wbGUudGhlbWUsXG4gICAgICBjb2RlRXhhbXBsZS5zdHlsZXNoZWV0cyxcbiAgICApO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIGZpbGVzLFxuICAgICAgdGl0bGU6ICdTS1kgVVggRGVtbycsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NLWSBVWCBEZW1vJyxcbiAgICAgIHRlbXBsYXRlLFxuICAgICAgZGVwZW5kZW5jaWVzOiBtZXJnZWREZXBlbmRlbmNpZXMsXG4gICAgICBzZXR0aW5nczoge1xuICAgICAgICBjb21waWxlOiB7XG4gICAgICAgICAgY2xlYXJDb25zb2xlOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VTdGFja0JsaXR6RmlsZXMoXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICAgZGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMsXG4gICAgb3ZlcnJpZGVzOiBvYmplY3QgfCB1bmRlZmluZWQsXG4gICAgY29tcGlsZXJPcHRpb25zOiBvYmplY3QsXG4gICAgdGhlbWU6IFNreURvY3NDb2RlRXhhbXBsZVRoZW1lLFxuICAgIHN0eWxlc2hlZXRzOiBzdHJpbmdbXSA9IFtdLFxuICApOiB7XG4gICAgW3BhdGg6IHN0cmluZ106IHN0cmluZztcbiAgfSB7XG4gICAgY29uc3Qgc3JjUGF0aCA9ICdzcmMvJztcbiAgICBjb25zdCBhcHBQYXRoID0gYCR7c3JjUGF0aH1hcHAvYDtcblxuICAgIGNvbnN0IGJhbm5lciA9IGAvKipcbiAqIFRoaXMgZmlsZSBpcyBuZWVkZWQgZm9yIHRoZSBTdGFja0JsaXR6IGRlbW8gb25seS5cbiAqIEl0IGlzIGF1dG9tYXRpY2FsbHkgcHJvdmlkZWQgd2hlbiB1c2luZyB0aGUgQW5ndWxhciBDTEkuXG4gKiovXG4gYDtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydFN0YXRlbWVudHM6IHN0cmluZ1tdID0gW1xuICAgICAgYGltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO2AsXG4gICAgXTtcblxuICAgIGNvbnN0IG1vZHVsZUltcG9ydHM6IHN0cmluZ1tdID0gWydGb3Jtc01vZHVsZScsICdSZWFjdGl2ZUZvcm1zTW9kdWxlJ107XG5cbiAgICBjb25zdCBmaWxlczogeyBbXzogc3RyaW5nXTogc3RyaW5nIH0gPSB7XG4gICAgICAnLnN0YWNrYmxpdHpyYyc6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICB7XG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICBOR19CVUlMRF9QQVJBTExFTF9UUzogJzAnLFxuICAgICAgICAgICAgTk9ERV9FTlY6ICdkZXZlbG9wbWVudCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAyLFxuICAgICAgKSxcbiAgICB9O1xuXG4gICAgbGV0IGFwcENvbXBvbmVudFRlbXBsYXRlID0gJyc7XG5cbiAgICBzb3VyY2VDb2RlLmZvckVhY2goKGZpbGUpID0+IHtcbiAgICAgIGZpbGVzW2Ake2FwcFBhdGh9JHtmaWxlLmZpbGVOYW1lfWBdID0gZmlsZS5yYXdDb250ZW50cztcblxuICAgICAgLy8gU2V0dXAgbW9kdWxlIGltcG9ydHMgYW5kIGNvbXBvbmVudCBzZWxlY3RvcnMuXG4gICAgICBpZiAoZmlsZS5maWxlTmFtZS5pbmRleE9mKCcubW9kdWxlLnRzJykgPiAtMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gdGhpcy5nZXRNb2R1bGVOYW1lKGZpbGUucmF3Q29udGVudHMpO1xuICAgICAgICBjb25zdCBpbXBvcnRQYXRoID0gYC4vJHt0aGlzLmdldEZpbGVuYW1lTm9FeHRlbnNpb24oZmlsZS5maWxlTmFtZSl9YDtcblxuICAgICAgICBjb25zdCBleHBvcnRlZENvbXBvbmVudCA9IHRoaXMuZ2V0RXhwb3J0ZWRDb21wb25lbnQoZmlsZS5yYXdDb250ZW50cyk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFNlbGVjdG9yID0gdGhpcy5nZXRDb21wb25lbnRTZWxlY3RvcihcbiAgICAgICAgICBleHBvcnRlZENvbXBvbmVudCxcbiAgICAgICAgICBzb3VyY2VDb2RlLFxuICAgICAgICApO1xuXG4gICAgICAgIGFwcENvbXBvbmVudFRlbXBsYXRlICs9IGA8JHtjb21wb25lbnRTZWxlY3Rvcn0+PC8ke2NvbXBvbmVudFNlbGVjdG9yfT5gO1xuXG4gICAgICAgIG1vZHVsZUltcG9ydHMucHVzaChtb2R1bGVOYW1lKTtcbiAgICAgICAgbW9kdWxlSW1wb3J0U3RhdGVtZW50cy5wdXNoKFxuICAgICAgICAgIGBpbXBvcnQgeyAke21vZHVsZU5hbWV9IH0gZnJvbSAnJHtpbXBvcnRQYXRofSc7YCxcbiAgICAgICAgKTtcbiAgICAgIH1cblxuICAgICAgLy8gU3RhbmRhbG9uZSBlbnRyeSBjb21wb25lbnRzIGFyZSBuYW1lZCBkZW1vLmNvbXBvbmVudC50cy5cbiAgICAgIGlmIChmaWxlLmZpbGVOYW1lID09PSAnZGVtby5jb21wb25lbnQudHMnKSB7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudE5hbWUgPSAnRGVtb0NvbXBvbmVudCc7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFNlbGVjdG9yID0gJ2FwcC1kZW1vJztcbiAgICAgICAgY29uc3QgaW1wb3J0UGF0aCA9IGAuLyR7dGhpcy5nZXRGaWxlbmFtZU5vRXh0ZW5zaW9uKGZpbGUuZmlsZU5hbWUpfWA7XG5cbiAgICAgICAgYXBwQ29tcG9uZW50VGVtcGxhdGUgKz0gYDwke2NvbXBvbmVudFNlbGVjdG9yfSAvPmA7XG5cbiAgICAgICAgbW9kdWxlSW1wb3J0cy5wdXNoKGNvbXBvbmVudE5hbWUpO1xuICAgICAgICBtb2R1bGVJbXBvcnRTdGF0ZW1lbnRzLnB1c2goXG4gICAgICAgICAgYGltcG9ydCB7ICR7Y29tcG9uZW50TmFtZX0gfSBmcm9tICcke2ltcG9ydFBhdGh9JztgLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZmlsZXNbYCR7YXBwUGF0aH1hcHAuY29tcG9uZW50LnRzYF0gPSBgJHtiYW5uZXJ9XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbiR7bW9kdWxlSW1wb3J0U3RhdGVtZW50cy5qb2luKCdcXG5cXG4nKX1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRlbW8tYXBwJyxcbiAgdGVtcGxhdGU6ICcke2FwcENvbXBvbmVudFRlbXBsYXRlfScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICAke21vZHVsZUltcG9ydHMuam9pbignLFxcbiAgICAnKX0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbXBvbmVudCB7fVxuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9aW5kZXguaHRtbGBdID0gYDwhZG9jdHlwZSBodG1sPlxuPGh0bWwgbGFuZz1cImVuXCI+XG48aGVhZD5cbiAgPG1ldGEgY2hhcnNldD1cInV0Zi04XCI+XG4gIDx0aXRsZT5Ta3kgVVggRGVtbzwvdGl0bGU+XG4gIDxiYXNlIGhyZWY9XCIvXCI+XG4gIDxtZXRhIG5hbWU9XCJ2aWV3cG9ydFwiIGNvbnRlbnQ9XCJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MVwiPlxuICA8IS0tXG4gICAgVGhlIENTUyBsaW5rcyBhcmUgbmVlZGVkIGZvciB0aGUgU3RhY2tCbGl0eiBkZW1vIG9ubHkuXG4gICAgVGhpcyBpcyBhIHdvcmthcm91bmQgZm9yIGEga25vd24gYnVnIHRoYXQgcHJldmVudHMgZXh0ZXJuYWwgaW1wb3J0cyBpbiBDU1MuXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL3N0YWNrYmxpdHovY29yZS9pc3N1ZXMvMTMzXG4gIC0tPlxuICA8bGluayByZWw9XCJzdHlsZXNoZWV0XCIgdHlwZT1cInRleHQvY3NzXCIgaHJlZj1cImh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNy4wL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzc1wiIGNyb3Nzb3JpZ2luPVwiYW5vbnltb3VzXCI+XG4gIDxsaW5rIHJlbD1cInN0eWxlc2hlZXRcIiB0eXBlPVwidGV4dC9jc3NcIiBocmVmPVwiaHR0cHM6Ly9za3kuYmxhY2tiYXVkY2RuLm5ldC9zdGF0aWMvc2t5dXgtaWNvbnMvJHtTS1lfVVhfSUNPTlNfVkVSU0lPTi5mdWxsfS9hc3NldHMvY3NzL3NreXV4LWljb25zLm1pbi5jc3NcIiBjcm9zc29yaWdpbj1cImFub255bW91c1wiPlxuPC9oZWFkPlxuPGJvZHk+XG4gIDxza3ktZGVtby1hcHA+XG4gICAgTG9hZGluZy4uLlxuICA8L3NreS1kZW1vLWFwcD5cbjwvYm9keT5cbjwvaHRtbD5cbmA7XG5cbiAgICBmaWxlc1tgJHtzcmNQYXRofW1haW4udHNgXSA9IGAke2Jhbm5lcn1cbmltcG9ydCAnem9uZS5qcyc7XG5pbXBvcnQgJ0Bza3l1eC9wYWNrYWdlcy9wb2x5ZmlsbHMnO1xuXG5pbXBvcnQgeyBib290c3RyYXBBcHBsaWNhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgcHJvdmlkZUFuaW1hdGlvbnMgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHsgcHJvdmlkZVJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBwcm92aWRlSW5pdGlhbFRoZW1lIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgQXBwQ29tcG9uZW50IH0gZnJvbSAnLi9hcHAvYXBwLmNvbXBvbmVudCc7XG5cbnZvaWQgYm9vdHN0cmFwQXBwbGljYXRpb24oQXBwQ29tcG9uZW50LCB7XG4gIHByb3ZpZGVyczogW1xuICAgIHByb3ZpZGVBbmltYXRpb25zKCksXG4gICAgcHJvdmlkZUluaXRpYWxUaGVtZSgnJHt0aGVtZX0nKSxcbiAgICBwcm92aWRlUm91dGVyKFtdKSxcbiAgXSxcbn0pXG4gIC5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuYDtcblxuICAgIGZpbGVzW2Ake3NyY1BhdGh9c3R5bGVzLnNjc3NgXSA9IGBAaW1wb3J0ICdAc2t5dXgvdGhlbWUvY3NzL3NreSc7XG5AaW1wb3J0ICdAc2t5dXgvdGhlbWUvY3NzL3RoZW1lcy9tb2Rlcm4vc3R5bGVzJztcblxuYm9keSB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmZmY7XG4gIG1hcmdpbjogMTVweDtcbn1cbmA7XG5cbiAgICBzdHlsZXNoZWV0cy5wdXNoKCdzcmMvc3R5bGVzLnNjc3MnKTtcblxuICAgIGZpbGVzWydhbmd1bGFyLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICAkc2NoZW1hOiAnLi9ub2RlX21vZHVsZXMvQGFuZ3VsYXIvY2xpL2xpYi9jb25maWcvc2NoZW1hLmpzb24nLFxuICAgICAgICB2ZXJzaW9uOiAxLFxuICAgICAgICBwcm9qZWN0czoge1xuICAgICAgICAgIGRlbW86IHtcbiAgICAgICAgICAgIHByb2plY3RUeXBlOiAnYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgcm9vdDogJycsXG4gICAgICAgICAgICBzb3VyY2VSb290OiAnc3JjJyxcbiAgICAgICAgICAgIHByZWZpeDogJ2FwcCcsXG4gICAgICAgICAgICBhcmNoaXRlY3Q6IHtcbiAgICAgICAgICAgICAgYnVpbGQ6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6YXBwbGljYXRpb24nLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGluZGV4OiAnc3JjL2luZGV4Lmh0bWwnLFxuICAgICAgICAgICAgICAgICAgYnJvd3NlcjogJ3NyYy9tYWluLnRzJyxcbiAgICAgICAgICAgICAgICAgIG91dHB1dFBhdGg6ICdkaXN0L2RlbW8nLFxuICAgICAgICAgICAgICAgICAgdHNDb25maWc6ICd0c2NvbmZpZy5hcHAuanNvbicsXG4gICAgICAgICAgICAgICAgICBpbmxpbmVTdHlsZUxhbmd1YWdlOiAnc2NzcycsXG4gICAgICAgICAgICAgICAgICBzdHlsZXM6IHN0eWxlc2hlZXRzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIG9wdGltaXphdGlvbjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGV4dHJhY3RMaWNlbnNlczogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIHNvdXJjZU1hcDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBkZWZhdWx0Q29uZmlndXJhdGlvbjogJ2RldmVsb3BtZW50JyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgc2VydmU6IHtcbiAgICAgICAgICAgICAgICBidWlsZGVyOiAnQGFuZ3VsYXItZGV2a2l0L2J1aWxkLWFuZ3VsYXI6ZGV2LXNlcnZlcicsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGRldmVsb3BtZW50OiB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkVGFyZ2V0OiAnZGVtbzpidWlsZDpkZXZlbG9wbWVudCcsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGVmYXVsdENvbmZpZ3VyYXRpb246ICdkZXZlbG9wbWVudCcsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgMixcbiAgICApO1xuXG4gICAgZmlsZXNbJ3BhY2thZ2UuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdza3l1eC1zcGEtZGVtbycsXG4gICAgICAgIHZlcnNpb246ICcwLjAuMCcsXG4gICAgICAgIGRlcGVuZGVuY2llcyxcbiAgICAgICAgc2NyaXB0czoge1xuICAgICAgICAgIHN0YXJ0OiAnbmcgc2VydmUnLFxuICAgICAgICAgIGJ1aWxkOiAnbmcgYnVpbGQnLFxuICAgICAgICB9LFxuICAgICAgICAuLi4ob3ZlcnJpZGVzID8geyBvdmVycmlkZXMgfSA6IHt9KSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyLFxuICAgICk7XG5cbiAgICBmaWxlc1sndHNjb25maWcuYXBwLmpzb24nXSA9IEpTT04uc3RyaW5naWZ5KFxuICAgICAge1xuICAgICAgICBleHRlbmRzOiAnLi90c2NvbmZpZy5qc29uJyxcbiAgICAgICAgY29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgb3V0RGlyOiAnLi9vdXQtdHNjL2FwcCcsXG4gICAgICAgICAgdHlwZXM6IFtdLFxuICAgICAgICB9LFxuICAgICAgICBmaWxlczogWydzcmMvbWFpbi50cyddLFxuICAgICAgICBpbmNsdWRlOiBbJ3NyYy8qKi8qLmQudHMnXSxcbiAgICAgIH0sXG4gICAgICB1bmRlZmluZWQsXG4gICAgICAyLFxuICAgICk7XG5cbiAgICBmaWxlc1sndHNjb25maWcuanNvbiddID0gSlNPTi5zdHJpbmdpZnkoXG4gICAgICB7XG4gICAgICAgIGNvbXBpbGVPblNhdmU6IGZhbHNlLFxuICAgICAgICBjb21waWxlck9wdGlvbnM6IHtcbiAgICAgICAgICBzdHJpY3Q6IHRydWUsXG4gICAgICAgICAgZm9yY2VDb25zaXN0ZW50Q2FzaW5nSW5GaWxlTmFtZXM6IHRydWUsXG4gICAgICAgICAgbm9JbXBsaWNpdE92ZXJyaWRlOiB0cnVlLFxuICAgICAgICAgIG5vUHJvcGVydHlBY2Nlc3NGcm9tSW5kZXhTaWduYXR1cmU6IHRydWUsXG4gICAgICAgICAgbm9JbXBsaWNpdFJldHVybnM6IHRydWUsXG4gICAgICAgICAgbm9GYWxsdGhyb3VnaENhc2VzSW5Td2l0Y2g6IHRydWUsXG4gICAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICAgIGRlY2xhcmF0aW9uOiBmYWxzZSxcbiAgICAgICAgICBkb3dubGV2ZWxJdGVyYXRpb246IHRydWUsXG4gICAgICAgICAgZXNNb2R1bGVJbnRlcm9wOiB0cnVlLFxuICAgICAgICAgIGV4cGVyaW1lbnRhbERlY29yYXRvcnM6IHRydWUsXG4gICAgICAgICAgbW9kdWxlUmVzb2x1dGlvbjogJ25vZGUnLFxuICAgICAgICAgIGltcG9ydEhlbHBlcnM6IHRydWUsXG4gICAgICAgICAgdHlwZVJvb3RzOiBbJ25vZGVfbW9kdWxlcy9AdHlwZXMnXSxcbiAgICAgICAgICB0YXJnZXQ6ICdFUzIwMTUnLFxuICAgICAgICAgIG1vZHVsZTogJ0VTMjAyMicsXG4gICAgICAgICAgdXNlRGVmaW5lRm9yQ2xhc3NGaWVsZHM6IGZhbHNlLFxuICAgICAgICAgIGxpYjogWydFUzIwMjInLCAnZG9tJ10sXG4gICAgICAgICAgLi4uY29tcGlsZXJPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICBhbmd1bGFyQ29tcGlsZXJPcHRpb25zOiB7XG4gICAgICAgICAgZnVsbFRlbXBsYXRlVHlwZUNoZWNrOiB0cnVlLFxuICAgICAgICAgIGVuYWJsZUkxOG5MZWdhY3lNZXNzYWdlSWRGb3JtYXQ6IGZhbHNlLFxuICAgICAgICAgIHN0cmljdEluamVjdGlvblBhcmFtZXRlcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0SW5wdXRBY2Nlc3NNb2RpZmllcnM6IHRydWUsXG4gICAgICAgICAgc3RyaWN0VGVtcGxhdGVzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVuZGVmaW5lZCxcbiAgICAgIDIsXG4gICAgKTtcblxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlTmFtZShjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29udGVudHMuc3BsaXQoJ2V4cG9ydCBjbGFzcyAnKVsxXS5zcGxpdCgnIHsnKVswXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RmlsZW5hbWVOb0V4dGVuc2lvbihmaWxlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBleHRlbnNpb24gPSBmaWxlTmFtZS5zcGxpdCgnLicpLnBvcCgpO1xuICAgIHJldHVybiBmaWxlTmFtZS5yZXBsYWNlKGAuJHtleHRlbnNpb259YCwgJycpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFeHBvcnRlZENvbXBvbmVudChjb250ZW50czogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmltbWVkID0gY29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIGxldCBmcmFnbWVudCA9IHRyaW1tZWQuc3BsaXQoJ2V4cG9ydHM6WycpWzFdO1xuICAgIGlmICghZnJhZ21lbnQpIHtcbiAgICAgIHRocm93ICdZb3UgbXVzdCBleHBvcnQgYSBjb21wb25lbnQgZnJvbSB0aGUgY29kZSBleGFtcGxlIG1vZHVsZSEnO1xuICAgIH1cblxuICAgIGZyYWdtZW50ID0gZnJhZ21lbnQuc3BsaXQoJ10nKVswXTtcblxuICAgIGNvbnN0IGNvbXBvbmVudHMgPSBmcmFnbWVudC5zcGxpdCgnLCcpLmZpbHRlcigoeCkgPT4geCk7XG5cbiAgICBpZiAoY29tcG9uZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICB0aHJvdyAoXG4gICAgICAgICdZb3UgbWF5IG9ubHkgZXhwb3J0IGEgc2luZ2xlIGNvbXBvbmVudCBmcm9tIHRoZSBjb2RlIGV4YW1wbGUgbW9kdWxlJyArXG4gICAgICAgIGAod2UgZm91bmQgJHtjb21wb25lbnRzLmxlbmd0aH06ICR7Y29tcG9uZW50cy5qb2luKCcsICcpfSkuYCArXG4gICAgICAgICdJcyBpdCBwb3NzaWJsZSB0byBjcmVhdGUgYSBuZXcgY29kZSBleGFtcGxlIHdpdGggdGhlIGV4dHJhIGNvbXBvbmVudHM/J1xuICAgICAgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29tcG9uZW50c1swXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29tcG9uZW50U2VsZWN0b3IoXG4gICAgY29tcG9uZW50Q2xhc3NOYW1lOiBzdHJpbmcsXG4gICAgc291cmNlQ29kZTogU2t5RG9jc1NvdXJjZUNvZGVGaWxlW10sXG4gICk6IHN0cmluZyB7XG4gICAgY29uc3QgZm91bmQgPSBzb3VyY2VDb2RlLmZpbmQoKGZpbGUpID0+IHtcbiAgICAgIHJldHVybiBmaWxlLnJhd0NvbnRlbnRzLmluZGV4T2YoYGNsYXNzICR7Y29tcG9uZW50Q2xhc3NOYW1lfWApID4gLTE7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0cmltbWVkID0gZm91bmQucmF3Q29udGVudHMucmVwbGFjZSgvXFxzL2csICcnKTtcblxuICAgIHJldHVybiB0cmltbWVkLnNwbGl0KGBzZWxlY3RvcjonYClbMV0uc3BsaXQoYCdgKVswXTtcbiAgfVxufVxuIl19
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, Input, } from '@angular/core';
|
|
2
|
-
import { SkyDocsCodeExampleComponent } from './code-example.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
import * as i1 from "./code-examples-editor.service";
|
|
5
|
-
import * as i2 from "../source-code/source-code.service";
|
|
6
|
-
import * as i3 from "@angular/common";
|
|
7
|
-
import * as i4 from "@blackbaud/skyux-lib-code-block";
|
|
8
|
-
import * as i5 from "@skyux/icon";
|
|
9
|
-
import * as i6 from "@skyux/lists";
|
|
10
|
-
import * as i7 from "@skyux/tabs";
|
|
11
|
-
import * as i8 from "@skyux/i18n";
|
|
12
|
-
/**
|
|
13
|
-
* Wraps all code examples and handles their configuration and styles.
|
|
14
|
-
* @example
|
|
15
|
-
* ```
|
|
16
|
-
* <sky-docs-code-examples
|
|
17
|
-
* [packageDependencies]="{
|
|
18
|
-
* "foobar": "*",
|
|
19
|
-
* "baz": "1.2.3"
|
|
20
|
-
* }"
|
|
21
|
-
* >
|
|
22
|
-
* <sky-docs-code-example>
|
|
23
|
-
* </sky-docs-code-example>
|
|
24
|
-
* </sky-docs-code-examples>
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export class SkyDocsCodeExamplesComponent {
|
|
28
|
-
/**
|
|
29
|
-
* Any extra NPM package dependencies that are needed for the editor to run the code example.
|
|
30
|
-
* @default {}
|
|
31
|
-
*/
|
|
32
|
-
set packageDependencies(value) {
|
|
33
|
-
this._packageDependencies = value;
|
|
34
|
-
}
|
|
35
|
-
get packageDependencies() {
|
|
36
|
-
return this._packageDependencies || {};
|
|
37
|
-
}
|
|
38
|
-
constructor(editorService, sourceCodeService) {
|
|
39
|
-
this.editorService = editorService;
|
|
40
|
-
this.sourceCodeService = sourceCodeService;
|
|
41
|
-
this.stylesheets = [];
|
|
42
|
-
this.codeExamples = [];
|
|
43
|
-
}
|
|
44
|
-
ngAfterContentInit() {
|
|
45
|
-
this.codeExampleComponents.forEach((component) => {
|
|
46
|
-
// Make sure the source code path ends in a slash, so that similarly named directories aren't included.
|
|
47
|
-
let sourceCodePath = component.sourceCodePath;
|
|
48
|
-
if (sourceCodePath.slice(-1) !== '/') {
|
|
49
|
-
sourceCodePath += '/';
|
|
50
|
-
}
|
|
51
|
-
const sourceCode = this.sourceCodeService.getSourceCode(sourceCodePath);
|
|
52
|
-
if (!sourceCode.length) {
|
|
53
|
-
console.warn(`Source code not found at location "${sourceCodePath}" for "${component.heading}"!`);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
this.codeExamples.push({
|
|
57
|
-
heading: component.heading,
|
|
58
|
-
packageDependencies: this.packageDependencies,
|
|
59
|
-
sourceCode,
|
|
60
|
-
stylesheets: this.stylesheets,
|
|
61
|
-
theme: component.theme,
|
|
62
|
-
});
|
|
63
|
-
});
|
|
64
|
-
}
|
|
65
|
-
launchEditor(codeExample, event) {
|
|
66
|
-
event.stopPropagation();
|
|
67
|
-
this.editorService.launchEditor(codeExample, event.metaKey || event.ctrlKey ? 'node' : 'angular-cli');
|
|
68
|
-
}
|
|
69
|
-
/**
|
|
70
|
-
* Returns a string representing one of PrismJS's supported language types.
|
|
71
|
-
* See: https://prismjs.com/#supported-languages
|
|
72
|
-
*/
|
|
73
|
-
parseCodeLanguageType(fileName) {
|
|
74
|
-
const extension = fileName.split('.').pop().toLowerCase();
|
|
75
|
-
switch (extension) {
|
|
76
|
-
case 'ts':
|
|
77
|
-
return 'typescript';
|
|
78
|
-
case 'html':
|
|
79
|
-
return 'markup';
|
|
80
|
-
default:
|
|
81
|
-
return extension;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesComponent, deps: [{ token: i1.SkyDocsCodeExamplesEditorService }, { token: i2.SkyDocsSourceCodeService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
85
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.12", type: SkyDocsCodeExamplesComponent, selector: "sky-docs-code-examples", inputs: { packageDependencies: "packageDependencies", stylesheets: "stylesheets" }, queries: [{ propertyName: "codeExampleComponents", predicate: SkyDocsCodeExampleComponent }], ngImport: i0, template: "<div *ngIf=\"codeExamples && codeExamples.length\" class=\"sky-docs-code-examples\">\n <sky-repeater\n *ngIf=\"codeExamples.length > 1; else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item\n *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content select=\"sky-docs-code-example\"> </ng-content>\n</ng-template>\n\n<ng-template let-item #codeExampleTemplate>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab\n *ngFor=\"let file of item.sourceCode; let i = index\"\n [active]=\"i === 0\"\n [tabHeading]=\"file.fileName\"\n >\n <sky-code-block\n [code]=\"file.rawContents\"\n [languageType]=\"parseCodeLanguageType(file.fileName)\"\n >\n </sky-code-block>\n </sky-vertical-tab>\n </sky-vertical-tabset>\n </div>\n</ng-template>\n\n<ng-template #singleCodeExample>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template let-codeExample #codeExampleHeaderTemplate>\n <div class=\"sky-docs-code-example-header\">\n <div class=\"sky-docs-code-example-header-title sky-emphasized\">\n {{ codeExample.heading }}\n </div>\n <div class=\"sky-docs-code-example-header-controls\">\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample, $event)\"\n >\n <sky-icon icon=\"pencil\"></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-docs-code-examples{margin-top:30px}.sky-docs-code-example-header{display:flex;align-items:baseline}.sky-docs-code-example-header-title{flex-grow:1}.sky-docs-code-example-header-controls{flex-grow:0}.sky-docs-code-example-header-controls .sky-btn{font-weight:400}.sky-docs-code-example-wrapper{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;margin-top:10px}.sky-docs-code-example-wrapper ::ng-deep .sky-vertical-tabset-content{margin:0}.sky-docs-code-example-wrapper ::ng-deep sky-code-block{margin:0!important}.sky-docs-code-example-wrapper ::ng-deep .sky-code-block-header{border:0}.sky-docs-code-example-wrapper ::ng-deep .sky-code-output{border-left:0;border-right:0;border-bottom:0}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.λ2, selector: "sky-code-block", inputs: ["code", "fileName", "languageType", "hideCopyToClipboard", "hideHeader"] }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i6.λ11, selector: "sky-repeater", inputs: ["activeIndex", "ariaLabel", "reorderable", "expandMode"], outputs: ["activeIndexChange", "orderChange"] }, { kind: "component", type: i6.λ10, selector: "sky-repeater-item", inputs: ["disabled", "itemName", "inlineFormConfig", "inlineFormTemplate", "isExpanded", "isSelected", "reorderable", "selectable", "showInlineForm", "tag"], outputs: ["collapse", "expand", "inlineFormClose", "isSelectedChange"] }, { kind: "component", type: i6.λ8, selector: "sky-repeater-item-content" }, { kind: "component", type: i6.λ12, selector: "sky-repeater-item-title" }, { kind: "component", type: i7.λ6, selector: "sky-vertical-tabset", inputs: ["showTabsText", "ariaLabel", "ariaLabelledBy", "ariaRole", "maintainTabContent"], outputs: ["activeChange"] }, { kind: "component", type: i7.λ4, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaRole", "disabled", "errorIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
86
|
-
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesComponent, decorators: [{
|
|
88
|
-
type: Component,
|
|
89
|
-
args: [{ selector: 'sky-docs-code-examples', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *ngIf=\"codeExamples && codeExamples.length\" class=\"sky-docs-code-examples\">\n <sky-repeater\n *ngIf=\"codeExamples.length > 1; else singleCodeExample\"\n expandMode=\"multiple\"\n >\n <sky-repeater-item\n *ngFor=\"let codeExample of codeExamples\"\n [isExpanded]=\"false\"\n >\n <sky-repeater-item-title>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-title>\n <sky-repeater-item-content>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExample }\n \"\n >\n </ng-container>\n </sky-repeater-item-content>\n </sky-repeater-item>\n </sky-repeater>\n</div>\n\n<ng-template>\n <ng-content select=\"sky-docs-code-example\"> </ng-content>\n</ng-template>\n\n<ng-template let-item #codeExampleTemplate>\n <div class=\"sky-docs-code-example-wrapper\">\n <sky-vertical-tabset *ngIf=\"item.sourceCode && item.sourceCode.length\">\n <sky-vertical-tab\n *ngFor=\"let file of item.sourceCode; let i = index\"\n [active]=\"i === 0\"\n [tabHeading]=\"file.fileName\"\n >\n <sky-code-block\n [code]=\"file.rawContents\"\n [languageType]=\"parseCodeLanguageType(file.fileName)\"\n >\n </sky-code-block>\n </sky-vertical-tab>\n </sky-vertical-tabset>\n </div>\n</ng-template>\n\n<ng-template #singleCodeExample>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleHeaderTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n <ng-container\n *ngTemplateOutlet=\"\n codeExampleTemplate;\n context: { $implicit: codeExamples[0] }\n \"\n >\n </ng-container>\n</ng-template>\n\n<ng-template let-codeExample #codeExampleHeaderTemplate>\n <div class=\"sky-docs-code-example-header\">\n <div class=\"sky-docs-code-example-header-title sky-emphasized\">\n {{ codeExample.heading }}\n </div>\n <div class=\"sky-docs-code-example-header-controls\">\n <button\n class=\"sky-btn sky-btn-default\"\n type=\"button\"\n (click)=\"launchEditor(codeExample, $event)\"\n >\n <sky-icon icon=\"pencil\"></sky-icon>\n {{ 'sky-docs-code-example-launch-button-label' | skyLibResources }}\n </button>\n </div>\n </div>\n</ng-template>\n", styles: [".sky-docs-code-examples{margin-top:30px}.sky-docs-code-example-header{display:flex;align-items:baseline}.sky-docs-code-example-header-title{flex-grow:1}.sky-docs-code-example-header-controls{flex-grow:0}.sky-docs-code-example-header-controls .sky-btn{font-weight:400}.sky-docs-code-example-wrapper{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;margin-top:10px}.sky-docs-code-example-wrapper ::ng-deep .sky-vertical-tabset-content{margin:0}.sky-docs-code-example-wrapper ::ng-deep sky-code-block{margin:0!important}.sky-docs-code-example-wrapper ::ng-deep .sky-code-block-header{border:0}.sky-docs-code-example-wrapper ::ng-deep .sky-code-output{border-left:0;border-right:0;border-bottom:0}\n"] }]
|
|
90
|
-
}], ctorParameters: () => [{ type: i1.SkyDocsCodeExamplesEditorService }, { type: i2.SkyDocsSourceCodeService }], propDecorators: { packageDependencies: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], stylesheets: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], codeExampleComponents: [{
|
|
95
|
-
type: ContentChildren,
|
|
96
|
-
args: [SkyDocsCodeExampleComponent]
|
|
97
|
-
}] } });
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDO0FBTXZCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7Ozs7O0FBTXZFOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBT0gsTUFBTSxPQUFPLDRCQUE0QjtJQUN2Qzs7O09BR0c7SUFDSCxJQUNXLG1CQUFtQixDQUFDLEtBQTJDO1FBQ3hFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsbUJBQW1CO1FBQzVCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBWUQsWUFDVSxhQUErQyxFQUMvQyxpQkFBMkM7UUFEM0Msa0JBQWEsR0FBYixhQUFhLENBQWtDO1FBQy9DLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMEI7UUFYOUMsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFFM0IsaUJBQVksR0FBeUIsRUFBRSxDQUFDO0lBVTVDLENBQUM7SUFFRyxrQkFBa0I7UUFDdkIsSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQy9DLHVHQUF1RztZQUN2RyxJQUFJLGNBQWMsR0FBRyxTQUFTLENBQUMsY0FBYyxDQUFDO1lBQzlDLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNyQyxjQUFjLElBQUksR0FBRyxDQUFDO1lBQ3hCLENBQUM7WUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRXhFLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ3ZCLE9BQU8sQ0FBQyxJQUFJLENBQ1Ysc0NBQXNDLGNBQWMsVUFBVSxTQUFTLENBQUMsT0FBTyxJQUFJLENBQ3BGLENBQUM7Z0JBQ0YsT0FBTztZQUNULENBQUM7WUFFRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQztnQkFDckIsT0FBTyxFQUFFLFNBQVMsQ0FBQyxPQUFPO2dCQUMxQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM3QyxVQUFVO2dCQUNWLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFlBQVksQ0FDakIsV0FBK0IsRUFDL0IsS0FBaUI7UUFFakIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUM3QixXQUFXLEVBQ1gsS0FBSyxDQUFDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7O09BR0c7SUFDSSxxQkFBcUIsQ0FBQyxRQUFnQjtRQUMzQyxNQUFNLFNBQVMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTFELFFBQVEsU0FBUyxFQUFFLENBQUM7WUFDbEIsS0FBSyxJQUFJO2dCQUNQLE9BQU8sWUFBWSxDQUFDO1lBQ3RCLEtBQUssTUFBTTtnQkFDVCxPQUFPLFFBQVEsQ0FBQztZQUNsQjtnQkFDRSxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0gsQ0FBQzsrR0FsRlUsNEJBQTRCO21HQUE1Qiw0QkFBNEIsd0xBbUJ0QiwyQkFBMkIsNkJDM0Q5Qyw2K0VBdUZBOzs0RkQvQ2EsNEJBQTRCO2tCQU54QyxTQUFTOytCQUNFLHdCQUF3QixtQkFHakIsdUJBQXVCLENBQUMsTUFBTTs0SUFRcEMsbUJBQW1CO3NCQUQ3QixLQUFLO2dCQVVDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBTUUscUJBQXFCO3NCQUQ1QixlQUFlO3VCQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreURvY3NTb3VyY2VDb2RlU2VydmljZSB9IGZyb20gJy4uL3NvdXJjZS1jb2RlL3NvdXJjZS1jb2RlLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGVzRWRpdG9yU2VydmljZSB9IGZyb20gJy4vY29kZS1leGFtcGxlcy1lZGl0b3Iuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4vY29kZS1leGFtcGxlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcyB9IGZyb20gJy4vY29kZS1leGFtcGxlLW1vZHVsZS1kZXBlbmRlbmNpZXMnO1xuXG5pbXBvcnQgeyBTa3lEb2NzQ29kZUV4YW1wbGUgfSBmcm9tICcuL2NvZGUtZXhhbXBsZSc7XG5cbi8qKlxuICogV3JhcHMgYWxsIGNvZGUgZXhhbXBsZXMgYW5kIGhhbmRsZXMgdGhlaXIgY29uZmlndXJhdGlvbiBhbmQgc3R5bGVzLlxuICogQGV4YW1wbGVcbiAqIGBgYFxuICogPHNreS1kb2NzLWNvZGUtZXhhbXBsZXNcbiAqICAgW3BhY2thZ2VEZXBlbmRlbmNpZXNdPVwie1xuICogICAgIFwiZm9vYmFyXCI6IFwiKlwiLFxuICogICAgIFwiYmF6XCI6IFwiMS4yLjNcIlxuICogICB9XCJcbiAqID5cbiAqICAgPHNreS1kb2NzLWNvZGUtZXhhbXBsZT5cbiAqICAgPC9za3ktZG9jcy1jb2RlLWV4YW1wbGU+XG4gKiA8L3NreS1kb2NzLWNvZGUtZXhhbXBsZXM+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LWRvY3MtY29kZS1leGFtcGxlcycsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2RlLWV4YW1wbGVzLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29kZS1leGFtcGxlcy5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RG9jc0NvZGVFeGFtcGxlc0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAvKipcbiAgICogQW55IGV4dHJhIE5QTSBwYWNrYWdlIGRlcGVuZGVuY2llcyB0aGF0IGFyZSBuZWVkZWQgZm9yIHRoZSBlZGl0b3IgdG8gcnVuIHRoZSBjb2RlIGV4YW1wbGUuXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHBhY2thZ2VEZXBlbmRlbmNpZXModmFsdWU6IFNreURvY3NDb2RlRXhhbXBsZU1vZHVsZURlcGVuZGVuY2llcykge1xuICAgIHRoaXMuX3BhY2thZ2VEZXBlbmRlbmNpZXMgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgcGFja2FnZURlcGVuZGVuY2llcygpOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXMge1xuICAgIHJldHVybiB0aGlzLl9wYWNrYWdlRGVwZW5kZW5jaWVzIHx8IHt9O1xuICB9XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0eWxlc2hlZXRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIHB1YmxpYyBjb2RlRXhhbXBsZXM6IFNreURvY3NDb2RlRXhhbXBsZVtdID0gW107XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTa3lEb2NzQ29kZUV4YW1wbGVDb21wb25lbnQpXG4gIHByaXZhdGUgY29kZUV4YW1wbGVDb21wb25lbnRzOiBRdWVyeUxpc3Q8U2t5RG9jc0NvZGVFeGFtcGxlQ29tcG9uZW50PjtcblxuICBwcml2YXRlIF9wYWNrYWdlRGVwZW5kZW5jaWVzOiBTa3lEb2NzQ29kZUV4YW1wbGVNb2R1bGVEZXBlbmRlbmNpZXM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBlZGl0b3JTZXJ2aWNlOiBTa3lEb2NzQ29kZUV4YW1wbGVzRWRpdG9yU2VydmljZSxcbiAgICBwcml2YXRlIHNvdXJjZUNvZGVTZXJ2aWNlOiBTa3lEb2NzU291cmNlQ29kZVNlcnZpY2UsXG4gICkge31cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY29kZUV4YW1wbGVDb21wb25lbnRzLmZvckVhY2goKGNvbXBvbmVudCkgPT4ge1xuICAgICAgLy8gTWFrZSBzdXJlIHRoZSBzb3VyY2UgY29kZSBwYXRoIGVuZHMgaW4gYSBzbGFzaCwgc28gdGhhdCBzaW1pbGFybHkgbmFtZWQgZGlyZWN0b3JpZXMgYXJlbid0IGluY2x1ZGVkLlxuICAgICAgbGV0IHNvdXJjZUNvZGVQYXRoID0gY29tcG9uZW50LnNvdXJjZUNvZGVQYXRoO1xuICAgICAgaWYgKHNvdXJjZUNvZGVQYXRoLnNsaWNlKC0xKSAhPT0gJy8nKSB7XG4gICAgICAgIHNvdXJjZUNvZGVQYXRoICs9ICcvJztcbiAgICAgIH1cblxuICAgICAgY29uc3Qgc291cmNlQ29kZSA9IHRoaXMuc291cmNlQ29kZVNlcnZpY2UuZ2V0U291cmNlQ29kZShzb3VyY2VDb2RlUGF0aCk7XG5cbiAgICAgIGlmICghc291cmNlQ29kZS5sZW5ndGgpIHtcbiAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgIGBTb3VyY2UgY29kZSBub3QgZm91bmQgYXQgbG9jYXRpb24gXCIke3NvdXJjZUNvZGVQYXRofVwiIGZvciBcIiR7Y29tcG9uZW50LmhlYWRpbmd9XCIhYCxcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmNvZGVFeGFtcGxlcy5wdXNoKHtcbiAgICAgICAgaGVhZGluZzogY29tcG9uZW50LmhlYWRpbmcsXG4gICAgICAgIHBhY2thZ2VEZXBlbmRlbmNpZXM6IHRoaXMucGFja2FnZURlcGVuZGVuY2llcyxcbiAgICAgICAgc291cmNlQ29kZSxcbiAgICAgICAgc3R5bGVzaGVldHM6IHRoaXMuc3R5bGVzaGVldHMsXG4gICAgICAgIHRoZW1lOiBjb21wb25lbnQudGhlbWUsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBsYXVuY2hFZGl0b3IoXG4gICAgY29kZUV4YW1wbGU6IFNreURvY3NDb2RlRXhhbXBsZSxcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgKTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5lZGl0b3JTZXJ2aWNlLmxhdW5jaEVkaXRvcihcbiAgICAgIGNvZGVFeGFtcGxlLFxuICAgICAgZXZlbnQubWV0YUtleSB8fCBldmVudC5jdHJsS2V5ID8gJ25vZGUnIDogJ2FuZ3VsYXItY2xpJyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYSBzdHJpbmcgcmVwcmVzZW50aW5nIG9uZSBvZiBQcmlzbUpTJ3Mgc3VwcG9ydGVkIGxhbmd1YWdlIHR5cGVzLlxuICAgKiBTZWU6IGh0dHBzOi8vcHJpc21qcy5jb20vI3N1cHBvcnRlZC1sYW5ndWFnZXNcbiAgICovXG4gIHB1YmxpYyBwYXJzZUNvZGVMYW5ndWFnZVR5cGUoZmlsZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgZXh0ZW5zaW9uID0gZmlsZU5hbWUuc3BsaXQoJy4nKS5wb3AoKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChleHRlbnNpb24pIHtcbiAgICAgIGNhc2UgJ3RzJzpcbiAgICAgICAgcmV0dXJuICd0eXBlc2NyaXB0JztcbiAgICAgIGNhc2UgJ2h0bWwnOlxuICAgICAgICByZXR1cm4gJ21hcmt1cCc7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZXh0ZW5zaW9uO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImNvZGVFeGFtcGxlcyAmJiBjb2RlRXhhbXBsZXMubGVuZ3RoXCIgY2xhc3M9XCJza3ktZG9jcy1jb2RlLWV4YW1wbGVzXCI+XG4gIDxza3ktcmVwZWF0ZXJcbiAgICAqbmdJZj1cImNvZGVFeGFtcGxlcy5sZW5ndGggPiAxOyBlbHNlIHNpbmdsZUNvZGVFeGFtcGxlXCJcbiAgICBleHBhbmRNb2RlPVwibXVsdGlwbGVcIlxuICA+XG4gICAgPHNreS1yZXBlYXRlci1pdGVtXG4gICAgICAqbmdGb3I9XCJsZXQgY29kZUV4YW1wbGUgb2YgY29kZUV4YW1wbGVzXCJcbiAgICAgIFtpc0V4cGFuZGVkXT1cImZhbHNlXCJcbiAgICA+XG4gICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGU+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgY29kZUV4YW1wbGVIZWFkZXJUZW1wbGF0ZTtcbiAgICAgICAgICAgIGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2RlRXhhbXBsZSB9XG4gICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0tdGl0bGU+XG4gICAgICA8c2t5LXJlcGVhdGVyLWl0ZW0tY29udGVudD5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBjb2RlRXhhbXBsZVRlbXBsYXRlO1xuICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IGNvZGVFeGFtcGxlIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9za3ktcmVwZWF0ZXItaXRlbS1jb250ZW50PlxuICAgIDwvc2t5LXJlcGVhdGVyLWl0ZW0+XG4gIDwvc2t5LXJlcGVhdGVyPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZT5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LWRvY3MtY29kZS1leGFtcGxlXCI+IDwvbmctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSBsZXQtaXRlbSAjY29kZUV4YW1wbGVUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInNreS1kb2NzLWNvZGUtZXhhbXBsZS13cmFwcGVyXCI+XG4gICAgPHNreS12ZXJ0aWNhbC10YWJzZXQgKm5nSWY9XCJpdGVtLnNvdXJjZUNvZGUgJiYgaXRlbS5zb3VyY2VDb2RlLmxlbmd0aFwiPlxuICAgICAgPHNreS12ZXJ0aWNhbC10YWJcbiAgICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgaXRlbS5zb3VyY2VDb2RlOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgICAgW2FjdGl2ZV09XCJpID09PSAwXCJcbiAgICAgICAgW3RhYkhlYWRpbmddPVwiZmlsZS5maWxlTmFtZVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktY29kZS1ibG9ja1xuICAgICAgICAgIFtjb2RlXT1cImZpbGUucmF3Q29udGVudHNcIlxuICAgICAgICAgIFtsYW5ndWFnZVR5cGVdPVwicGFyc2VDb2RlTGFuZ3VhZ2VUeXBlKGZpbGUuZmlsZU5hbWUpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3NreS1jb2RlLWJsb2NrPlxuICAgICAgPC9za3ktdmVydGljYWwtdGFiPlxuICAgIDwvc2t5LXZlcnRpY2FsLXRhYnNldD5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI3NpbmdsZUNvZGVFeGFtcGxlPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIGNvZGVFeGFtcGxlSGVhZGVyVGVtcGxhdGU7XG4gICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29kZUV4YW1wbGVzWzBdIH1cbiAgICBcIlxuICA+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyXG4gICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgIGNvZGVFeGFtcGxlVGVtcGxhdGU7XG4gICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogY29kZUV4YW1wbGVzWzBdIH1cbiAgICBcIlxuICA+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlIGxldC1jb2RlRXhhbXBsZSAjY29kZUV4YW1wbGVIZWFkZXJUZW1wbGF0ZT5cbiAgPGRpdiBjbGFzcz1cInNreS1kb2NzLWNvZGUtZXhhbXBsZS1oZWFkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2t5LWRvY3MtY29kZS1leGFtcGxlLWhlYWRlci10aXRsZSBza3ktZW1waGFzaXplZFwiPlxuICAgICAge3sgY29kZUV4YW1wbGUuaGVhZGluZyB9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJza3ktZG9jcy1jb2RlLWV4YW1wbGUtaGVhZGVyLWNvbnRyb2xzXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHRcIlxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgKGNsaWNrKT1cImxhdW5jaEVkaXRvcihjb2RlRXhhbXBsZSwgJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIDxza3ktaWNvbiBpY29uPVwicGVuY2lsXCI+PC9za3ktaWNvbj5cbiAgICAgICAge3sgJ3NreS1kb2NzLWNvZGUtZXhhbXBsZS1sYXVuY2gtYnV0dG9uLWxhYmVsJyB8IHNreUxpYlJlc291cmNlcyB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { SkyCodeBlockModule } from '@blackbaud/skyux-lib-code-block';
|
|
4
|
-
import { SkyIconModule } from '@skyux/icon';
|
|
5
|
-
import { SkyRepeaterModule } from '@skyux/lists';
|
|
6
|
-
import { SkyVerticalTabsetModule } from '@skyux/tabs';
|
|
7
|
-
import { SkyDocsToolsResourcesModule } from '../shared/sky-docs-tools-resources.module';
|
|
8
|
-
import { SkyDocsCodeExampleComponent } from './code-example.component';
|
|
9
|
-
import { SkyDocsCodeExamplesComponent } from './code-examples.component';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
export class SkyDocsCodeExamplesModule {
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesModule, declarations: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent], imports: [CommonModule,
|
|
14
|
-
SkyCodeBlockModule,
|
|
15
|
-
SkyDocsToolsResourcesModule,
|
|
16
|
-
SkyIconModule,
|
|
17
|
-
SkyRepeaterModule,
|
|
18
|
-
SkyVerticalTabsetModule], exports: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent] }); }
|
|
19
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesModule, imports: [CommonModule,
|
|
20
|
-
SkyCodeBlockModule,
|
|
21
|
-
SkyDocsToolsResourcesModule,
|
|
22
|
-
SkyIconModule,
|
|
23
|
-
SkyRepeaterModule,
|
|
24
|
-
SkyVerticalTabsetModule] }); }
|
|
25
|
-
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: SkyDocsCodeExamplesModule, decorators: [{
|
|
27
|
-
type: NgModule,
|
|
28
|
-
args: [{
|
|
29
|
-
imports: [
|
|
30
|
-
CommonModule,
|
|
31
|
-
SkyCodeBlockModule,
|
|
32
|
-
SkyDocsToolsResourcesModule,
|
|
33
|
-
SkyIconModule,
|
|
34
|
-
SkyRepeaterModule,
|
|
35
|
-
SkyVerticalTabsetModule,
|
|
36
|
-
],
|
|
37
|
-
declarations: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent],
|
|
38
|
-
exports: [SkyDocsCodeExampleComponent, SkyDocsCodeExamplesComponent],
|
|
39
|
-
}]
|
|
40
|
-
}] });
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1leGFtcGxlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kb2NzLXRvb2xzL3NyYy9tb2R1bGVzL2NvZGUtZXhhbXBsZXMvY29kZS1leGFtcGxlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFakQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXRELE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRXZFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQWN6RSxNQUFNLE9BQU8seUJBQXlCOytHQUF6Qix5QkFBeUI7Z0hBQXpCLHlCQUF5QixpQkFIckIsMkJBQTJCLEVBQUUsNEJBQTRCLGFBUHRFLFlBQVk7WUFDWixrQkFBa0I7WUFDbEIsMkJBQTJCO1lBQzNCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsdUJBQXVCLGFBR2YsMkJBQTJCLEVBQUUsNEJBQTRCO2dIQUV4RCx5QkFBeUIsWUFWbEMsWUFBWTtZQUNaLGtCQUFrQjtZQUNsQiwyQkFBMkI7WUFDM0IsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQix1QkFBdUI7OzRGQUtkLHlCQUF5QjtrQkFackMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWixrQkFBa0I7d0JBQ2xCLDJCQUEyQjt3QkFDM0IsYUFBYTt3QkFDYixpQkFBaUI7d0JBQ2pCLHVCQUF1QjtxQkFDeEI7b0JBQ0QsWUFBWSxFQUFFLENBQUMsMkJBQTJCLEVBQUUsNEJBQTRCLENBQUM7b0JBQ3pFLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixFQUFFLDRCQUE0QixDQUFDO2lCQUNyRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFNreUNvZGVCbG9ja01vZHVsZSB9IGZyb20gJ0BibGFja2JhdWQvc2t5dXgtbGliLWNvZGUtYmxvY2snO1xuXG5pbXBvcnQgeyBTa3lJY29uTW9kdWxlIH0gZnJvbSAnQHNreXV4L2ljb24nO1xuXG5pbXBvcnQgeyBTa3lSZXBlYXRlck1vZHVsZSB9IGZyb20gJ0Bza3l1eC9saXN0cyc7XG5cbmltcG9ydCB7IFNreVZlcnRpY2FsVGFic2V0TW9kdWxlIH0gZnJvbSAnQHNreXV4L3RhYnMnO1xuXG5pbXBvcnQgeyBTa3lEb2NzVG9vbHNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LWRvY3MtdG9vbHMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudCB9IGZyb20gJy4vY29kZS1leGFtcGxlLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNreURvY3NDb2RlRXhhbXBsZXNDb21wb25lbnQgfSBmcm9tICcuL2NvZGUtZXhhbXBsZXMuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBTa3lDb2RlQmxvY2tNb2R1bGUsXG4gICAgU2t5RG9jc1Rvb2xzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5UmVwZWF0ZXJNb2R1bGUsXG4gICAgU2t5VmVydGljYWxUYWJzZXRNb2R1bGUsXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1NreURvY3NDb2RlRXhhbXBsZUNvbXBvbmVudCwgU2t5RG9jc0NvZGVFeGFtcGxlc0NvbXBvbmVudF0sXG4gIGV4cG9ydHM6IFtTa3lEb2NzQ29kZUV4YW1wbGVDb21wb25lbnQsIFNreURvY3NDb2RlRXhhbXBsZXNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEb2NzQ29kZUV4YW1wbGVzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby1jb250ZW50LWFsaWdubWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvZGVtby9kZW1vLWNvbnRlbnQtYWxpZ25tZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTa3lEb2NzRGVtb0NvbnRlbnRBbGlnbm1lbnQgPSAnbGVmdCcgfCAnY2VudGVyJztcbiJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVtby1jb250cm9sLXBhbmVsLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RvY3MtdG9vbHMvc3JjL21vZHVsZXMvZGVtby9kZW1vLWNvbnRyb2wtcGFuZWwtY2hhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgYW55IGNvbnRyb2wgcGFuZWwgc2VsZWN0aW9ucyB0aGF0IGhhdmUgY2hhbmdlZCBkdWUgdG8gdXNlciBpbnRlcmFjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTa3lEb2NzRGVtb0NvbnRyb2xQYW5lbENoYW5nZSB7XG4gIC8qKlxuICAgKiBUaGUga2V5L3ZhbHVlIHBhaXIgcmVwcmVzZW50aW5nIHRoZSBjb250cm9sIHBhbmVsIHNlbGVjdGlvbiB0aGF0IGNoYW5nZWQuXG4gICAqL1xuICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG4iXX0=
|