@libs-ui/components-preview-text-data 0.2.350-1 → 0.2.352-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/esm2022/preview-text-data.component.mjs +210 -131
- package/esm2022/preview-text-data.define.mjs +103 -3
- package/fesm2022/libs-ui-components-preview-text-data.mjs +312 -133
- package/fesm2022/libs-ui-components-preview-text-data.mjs.map +1 -1
- package/package.json +5 -5
- package/preview-text-data.component.d.ts +54 -16
- package/preview-text-data.define.d.ts +62 -4
|
@@ -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
|
-
|
|
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(
|
|
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
|
-
|
|
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
|