@libs-ui/components-preview-text-data 0.2.350-0 → 0.2.351-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.
@@ -1,7 +1,11 @@
1
1
  import { signal } from '@angular/core';
2
2
  import { returnListObject } from '@libs-ui/services-http-request';
3
3
  import { UtilsHttpParamsRequest } from '@libs-ui/utils';
4
- export const optionsLang = () => [
4
+ /**
5
+ * Danh sách các ngôn ngữ được hỗ trợ
6
+ * Sử dụng const array để tránh tạo mới mỗi lần truy cập
7
+ */
8
+ export const optionsLangData = [
5
9
  { id: 'text', label: 'Plain Text' },
6
10
  { id: 'javascript', label: 'JavaScript/TypeScript' },
7
11
  { id: 'html', label: 'HTML' },
@@ -21,7 +25,7 @@ export const httpRequestConfigGetOptionsLang = () => {
21
25
  return {
22
26
  type: 'text',
23
27
  httpRequestData: signal({
24
- objectInstance: returnListObject(optionsLang()),
28
+ objectInstance: returnListObject([...optionsLangData]),
25
29
  functionName: 'list',
26
30
  argumentsValue: [new UtilsHttpParamsRequest({ fromObject: { page: 1, per_page: 40 } })],
27
31
  }),
@@ -31,4 +35,100 @@ export const httpRequestConfigGetOptionsLang = () => {
31
35
  }),
32
36
  };
33
37
  };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy10ZXh0LWRhdGEuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3ByZXZpZXctdGV4dC1kYXRhL3NyYy9wcmV2aWV3LXRleHQtZGF0YS5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQy9CLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ25DLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7SUFDcEQsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7SUFDakMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQW9CLEVBQUU7SUFDbkUsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLE1BQU0sQ0FBcUI7WUFDMUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9DLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGNBQWMsRUFBRSxDQUFDLElBQUksc0JBQXNCLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDeEYsQ0FBQztRQUNGLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztZQUN6QixRQUFRLEVBQUUsSUFBSTtZQUNkLG1CQUFtQixFQUFFLElBQUk7U0FDMUIsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaXN0Q29uZmlnSXRlbSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGlzdCc7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcsIHJldHVybkxpc3RPYmplY3QgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IG9wdGlvbnNMYW5nID0gKCkgPT4gW1xuICB7IGlkOiAndGV4dCcsIGxhYmVsOiAnUGxhaW4gVGV4dCcgfSxcbiAgeyBpZDogJ2phdmFzY3JpcHQnLCBsYWJlbDogJ0phdmFTY3JpcHQvVHlwZVNjcmlwdCcgfSxcbiAgeyBpZDogJ2h0bWwnLCBsYWJlbDogJ0hUTUwnIH0sXG4gIHsgaWQ6ICdjc3MnLCBsYWJlbDogJ0NTUy9TQ1NTL1NBU1MnIH0sXG4gIHsgaWQ6ICdtYXJrZG93bicsIGxhYmVsOiAnTWFya2Rvd24nIH0sXG4gIHsgaWQ6ICdqc29uJywgbGFiZWw6ICdKU09OJyB9LFxuICB7IGlkOiAnc3FsJywgbGFiZWw6ICdTUUwnIH0sXG4gIHsgaWQ6ICd4bWwnLCBsYWJlbDogJ1hNTCcgfSxcbiAgeyBpZDogJ3lhbWwnLCBsYWJlbDogJ1lBTUwnIH0sXG4gIHsgaWQ6ICdweXRob24nLCBsYWJlbDogJ1B5dGhvbicgfSxcbiAgeyBpZDogJ2phdmEnLCBsYWJlbDogJ0phdmEnIH0sXG4gIHsgaWQ6ICdjcHAnLCBsYWJlbDogJ0MvQysrJyB9LFxuICB7IGlkOiAncGhwJywgbGFiZWw6ICdQSFAnIH0sXG4gIHsgaWQ6ICdnbycsIGxhYmVsOiAnR28nIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgaHR0cFJlcXVlc3RDb25maWdHZXRPcHRpb25zTGFuZyA9ICgpOiBJTGlzdENvbmZpZ0l0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBodHRwUmVxdWVzdERhdGE6IHNpZ25hbDxJSHR0cFJlcXVlc3RDb25maWc+KHtcbiAgICAgIG9iamVjdEluc3RhbmNlOiByZXR1cm5MaXN0T2JqZWN0KG9wdGlvbnNMYW5nKCkpLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW25ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KHsgZnJvbU9iamVjdDogeyBwYWdlOiAxLCBwZXJfcGFnZTogNDAgfSB9KV0sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBub3RVc2VWaXJ0dWFsU2Nyb2xsOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcbiJdfQ==
38
+ export const languageRegistry = {
39
+ javascript: {
40
+ loader: async () => {
41
+ const { javascript } = await import('@codemirror/lang-javascript');
42
+ return javascript({ jsx: true, typescript: true });
43
+ },
44
+ linter: async (component) => component.createJsLinter(),
45
+ },
46
+ html: {
47
+ loader: async () => {
48
+ const { html } = await import('@codemirror/lang-html');
49
+ return html();
50
+ },
51
+ },
52
+ css: {
53
+ loader: async () => {
54
+ const { css } = await import('@codemirror/lang-css');
55
+ return css();
56
+ },
57
+ },
58
+ markdown: {
59
+ loader: async () => {
60
+ const { markdown } = await import('@codemirror/lang-markdown');
61
+ return markdown();
62
+ },
63
+ },
64
+ json: {
65
+ loader: async () => {
66
+ const { json } = await import('@codemirror/lang-json');
67
+ return json();
68
+ },
69
+ linter: async (component) => component.createJsonLinter(),
70
+ },
71
+ sql: {
72
+ loader: async () => {
73
+ const { sql } = await import('@codemirror/lang-sql');
74
+ return sql();
75
+ },
76
+ linter: async (component) => component.createSqlLinter(),
77
+ },
78
+ xml: {
79
+ loader: async () => {
80
+ const { xml } = await import('@codemirror/lang-xml');
81
+ return xml();
82
+ },
83
+ },
84
+ yaml: {
85
+ loader: async () => {
86
+ const { yaml } = await import('@codemirror/lang-yaml');
87
+ return yaml();
88
+ },
89
+ },
90
+ python: {
91
+ loader: async () => {
92
+ const { python } = await import('@codemirror/lang-python');
93
+ return python();
94
+ },
95
+ },
96
+ java: {
97
+ loader: async () => {
98
+ const { java } = await import('@codemirror/lang-java');
99
+ return java();
100
+ },
101
+ },
102
+ cpp: {
103
+ loader: async () => {
104
+ const { cpp } = await import('@codemirror/lang-cpp');
105
+ return cpp();
106
+ },
107
+ },
108
+ php: {
109
+ loader: async () => {
110
+ const { php } = await import('@codemirror/lang-php');
111
+ return php();
112
+ },
113
+ },
114
+ go: {
115
+ loader: async () => {
116
+ const { go } = await import('@codemirror/lang-go');
117
+ return go();
118
+ },
119
+ },
120
+ };
121
+ /**
122
+ * Tạo default language extension cho plain text
123
+ * Sử dụng khi ngôn ngữ không được hỗ trợ
124
+ */
125
+ export const createDefaultLanguage = async () => {
126
+ const { StreamLanguage } = await import('@codemirror/language');
127
+ return StreamLanguage.define({
128
+ token(stream) {
129
+ stream.skipToEnd();
130
+ return null;
131
+ },
132
+ });
133
+ };
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy10ZXh0LWRhdGEuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3ByZXZpZXctdGV4dC1kYXRhL3NyYy9wcmV2aWV3LXRleHQtZGF0YS5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2QyxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHeEQ7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ25DLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7SUFDcEQsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7SUFDakMsRUFBRSxFQUFFLEVBQUUsTUFBTSxF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LEtBQUssSUFBSSxFQUFFO1lBQ2pCLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1lBQ25ELE9BQU8sRUFBRSxFQUFFLENBQUM7UUFDZCxDQUFDO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsS0FBSyxJQUF3QixFQUFFO0lBQ2xFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUMzQixLQUFLLENBQUMsTUFBTTtZQUNWLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FDRixDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEV4dGVuc2lvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB7IElMaXN0Q29uZmlnSXRlbSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGlzdCc7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcsIHJldHVybkxpc3RPYmplY3QgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNQcmV2aWV3VGV4dERhdGFDb21wb25lbnQgfSBmcm9tICcuL3ByZXZpZXctdGV4dC1kYXRhLmNvbXBvbmVudCc7XG5cbi8qKlxuICogRGFuaCBzw6FjaCBjw6FjIG5nw7RuIG5n4buvIMSRxrDhu6NjIGjhu5cgdHLhu6NcbiAqIFPhu60gZOG7pW5nIGNvbnN0IGFycmF5IMSR4buDIHRyw6FuaCB04bqhbyBt4bubaSBt4buXaSBs4bqnbiB0cnV5IGPhuq1wXG4gKi9cbmV4cG9ydCBjb25zdCBvcHRpb25zTGFuZ0RhdGEgPSBbXG4gIHsgaWQ6ICd0ZXh0JywgbGFiZWw6ICdQbGFpbiBUZXh0JyB9LFxuICB7IGlkOiAnamF2YXNjcmlwdCcsIGxhYmVsOiAnSmF2YVNjcmlwdC9UeXBlU2NyaXB0JyB9LFxuICB7IGlkOiAnaHRtbCcsIGxhYmVsOiAnSFRNTCcgfSxcbiAgeyBpZDogJ2NzcycsIGxhYmVsOiAnQ1NTL1NDU1MvU0FTUycgfSxcbiAgeyBpZDogJ21hcmtkb3duJywgbGFiZWw6ICdNYXJrZG93bicgfSxcbiAgeyBpZDogJ2pzb24nLCBsYWJlbDogJ0pTT04nIH0sXG4gIHsgaWQ6ICdzcWwnLCBsYWJlbDogJ1NRTCcgfSxcbiAgeyBpZDogJ3htbCcsIGxhYmVsOiAnWE1MJyB9LFxuICB7IGlkOiAneWFtbCcsIGxhYmVsOiAnWUFNTCcgfSxcbiAgeyBpZDogJ3B5dGhvbicsIGxhYmVsOiAnUHl0aG9uJyB9LFxuICB7IGlkOiAnamF2YScsIGxhYmVsOiAnSmF2YScgfSxcbiAgeyBpZDogJ2NwcCcsIGxhYmVsOiAnQy9DKysnIH0sXG4gIHsgaWQ6ICdwaHAnLCBsYWJlbDogJ1BIUCcgfSxcbiAgeyBpZDogJ2dvJywgbGFiZWw6ICdHbycgfSxcbl0gYXMgY29uc3Q7XG5cbmV4cG9ydCBjb25zdCBodHRwUmVxdWVzdENvbmZpZ0dldE9wdGlvbnNMYW5nID0gKCk6IElMaXN0Q29uZmlnSXRlbSA9PiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogJ3RleHQnLFxuICAgIGh0dHBSZXF1ZXN0RGF0YTogc2lnbmFsPElIdHRwUmVxdWVzdENvbmZpZz4oe1xuICAgICAgb2JqZWN0SW5zdGFuY2U6IHJldHVybkxpc3RPYmplY3QoWy4uLm9wdGlvbnNMYW5nRGF0YV0pLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW25ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KHsgZnJvbU9iamVjdDogeyBwYWdlOiAxLCBwZXJfcGFnZTogNDAgfSB9KV0sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBub3RVc2VWaXJ0dWFsU2Nyb2xsOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcblxudHlwZSBUX0xhbmd1YWdlTG9hZGVyID0gKCkgPT4gUHJvbWlzZTxFeHRlbnNpb24+O1xudHlwZSBUX0xpbnRlckxvYWRlciA9IChjb21wb25lbnQ6IExpYnNVaUNvbXBvbmVudHNQcmV2aWV3VGV4dERhdGFDb21wb25lbnQpID0+IFByb21pc2U8RXh0ZW5zaW9uPjtcbmludGVyZmFjZSBJX0xhbmd1YWdlUmVnaXN0cnlJdGVtIHtcbiAgbG9hZGVyOiBUX0xhbmd1YWdlTG9hZGVyO1xuICBsaW50ZXI/OiBUX0xpbnRlckxvYWRlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGxhbmd1YWdlUmVnaXN0cnk6IFJlY29yZDxzdHJpbmcsIElfTGFuZ3VhZ2VSZWdpc3RyeUl0ZW0+ID0ge1xuICBqYXZhc2NyaXB0OiB7XG4gICAgbG9hZGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGphdmFzY3JpcHQgfSA9IGF3YWl0IGltcG9ydCgnQGNvZGVtaXJyb3IvbGFuZy1qYXZhc2NyaXB0Jyk7XG4gICAgICByZXR1cm4gamF2YXNjcmlwdCh7IGpzeDogdHJ1ZSwgdHlwZXNjcmlwdDogdHJ1ZSB9KTtcbiAgICB9LFxuICAgIGxpbnRlcjogYXN5bmMgKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmNyZWF0ZUpzTGludGVyKCksXG4gIH0sXG4gIGh0bWw6IHtcbiAgICBsb2FkZXI6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgaHRtbCB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLWh0bWwnKTtcbiAgICAgIHJldHVybiBodG1sKCk7XG4gICAgfSxcbiAgfSxcbiAgY3NzOiB7XG4gICAgbG9hZGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGNzcyB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLWNzcycpO1xuICAgICAgcmV0dXJuIGNzcygpO1xuICAgIH0sXG4gIH0sXG4gIG1hcmtkb3duOiB7XG4gICAgbG9hZGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IG1hcmtkb3duIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctbWFya2Rvd24nKTtcbiAgICAgIHJldHVybiBtYXJrZG93bigpO1xuICAgIH0sXG4gIH0sXG4gIGpzb246IHtcbiAgICBsb2FkZXI6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsganNvbiB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLWpzb24nKTtcbiAgICAgIHJldHVybiBqc29uKCk7XG4gICAgfSxcbiAgICBsaW50ZXI6IGFzeW5jIChjb21wb25lbnQpID0+IGNvbXBvbmVudC5jcmVhdGVKc29uTGludGVyKCksXG4gIH0sXG4gIHNxbDoge1xuICAgIGxvYWRlcjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBzcWwgfSA9IGF3YWl0IGltcG9ydCgnQGNvZGVtaXJyb3IvbGFuZy1zcWwnKTtcbiAgICAgIHJldHVybiBzcWwoKTtcbiAgICB9LFxuICAgIGxpbnRlcjogYXN5bmMgKGNvbXBvbmVudCkgPT4gY29tcG9uZW50LmNyZWF0ZVNxbExpbnRlcigpLFxuICB9LFxuICB4bWw6IHtcbiAgICBsb2FkZXI6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgeG1sIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmcteG1sJyk7XG4gICAgICByZXR1cm4geG1sKCk7XG4gICAgfSxcbiAgfSxcbiAgeWFtbDoge1xuICAgIGxvYWRlcjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyB5YW1sIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmcteWFtbCcpO1xuICAgICAgcmV0dXJuIHlhbWwoKTtcbiAgICB9LFxuICB9LFxuICBweXRob246IHtcbiAgICBsb2FkZXI6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgcHl0aG9uIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctcHl0aG9uJyk7XG4gICAgICByZXR1cm4gcHl0aG9uKCk7XG4gICAgfSxcbiAgfSxcbiAgamF2YToge1xuICAgIGxvYWRlcjogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgeyBqYXZhIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctamF2YScpO1xuICAgICAgcmV0dXJuIGphdmEoKTtcbiAgICB9LFxuICB9LFxuICBjcHA6IHtcbiAgICBsb2FkZXI6IGFzeW5jICgpID0+IHtcbiAgICAgIGNvbnN0IHsgY3BwIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctY3BwJyk7XG4gICAgICByZXR1cm4gY3BwKCk7XG4gICAgfSxcbiAgfSxcbiAgcGhwOiB7XG4gICAgbG9hZGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IHBocCB9ID0gYXdhaXQgaW1wb3J0KCdAY29kZW1pcnJvci9sYW5nLXBocCcpO1xuICAgICAgcmV0dXJuIHBocCgpO1xuICAgIH0sXG4gIH0sXG4gIGdvOiB7XG4gICAgbG9hZGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICBjb25zdCB7IGdvIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmctZ28nKTtcbiAgICAgIHJldHVybiBnbygpO1xuICAgIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIFThuqFvIGRlZmF1bHQgbGFuZ3VhZ2UgZXh0ZW5zaW9uIGNobyBwbGFpbiB0ZXh0XG4gKiBT4butIGThu6VuZyBraGkgbmfDtG4gbmfhu68ga2jDtG5nIMSRxrDhu6NjIGjhu5cgdHLhu6NcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZURlZmF1bHRMYW5ndWFnZSA9IGFzeW5jICgpOiBQcm9taXNlPEV4dGVuc2lvbj4gPT4ge1xuICBjb25zdCB7IFN0cmVhbUxhbmd1YWdlIH0gPSBhd2FpdCBpbXBvcnQoJ0Bjb2RlbWlycm9yL2xhbmd1YWdlJyk7XG4gIHJldHVybiBTdHJlYW1MYW5ndWFnZS5kZWZpbmUoe1xuICAgIHRva2VuKHN0cmVhbSkge1xuICAgICAgc3RyZWFtLnNraXBUb0VuZCgpO1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfSxcbiAgfSk7XG59O1xuIl19