@libs-ui/components-preview-text-data 0.2.337-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/README.md +3 -0
- package/esm2022/index.mjs +4 -0
- package/esm2022/libs-ui-components-preview-text-data.mjs +5 -0
- package/esm2022/preview-text-data.component.mjs +255 -0
- package/esm2022/preview-text-data.define.mjs +34 -0
- package/esm2022/preview-text-data.interfaces.mjs +2 -0
- package/fesm2022/libs-ui-components-preview-text-data.mjs +293 -0
- package/fesm2022/libs-ui-components-preview-text-data.mjs.map +1 -0
- package/index.d.ts +3 -0
- package/package.json +43 -0
- package/preview-text-data.component.d.ts +36 -0
- package/preview-text-data.define.d.ts +6 -0
- package/preview-text-data.interfaces.d.ts +7 -0
package/README.md
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './preview-text-data.component';
|
|
2
|
+
export * from './preview-text-data.interfaces';
|
|
3
|
+
export * from './preview-text-data.define';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcHJldmlldy10ZXh0LWRhdGEvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDRCQUE0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wcmV2aWV3LXRleHQtZGF0YS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9wcmV2aWV3LXRleHQtZGF0YS5pbnRlcmZhY2VzJztcbmV4cG9ydCAqIGZyb20gJy4vcHJldmlldy10ZXh0LWRhdGEuZGVmaW5lJztcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './index';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlicy11aS1jb21wb25lbnRzLXByZXZpZXctdGV4dC1kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3ByZXZpZXctdGV4dC1kYXRhL3NyYy9saWJzLXVpLWNvbXBvbmVudHMtcHJldmlldy10ZXh0LWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input, model, output, signal, viewChild } from '@angular/core';
|
|
3
|
+
import { cpp } from '@codemirror/lang-cpp';
|
|
4
|
+
import { css } from '@codemirror/lang-css';
|
|
5
|
+
import { go } from '@codemirror/lang-go';
|
|
6
|
+
import { html } from '@codemirror/lang-html';
|
|
7
|
+
import { java } from '@codemirror/lang-java';
|
|
8
|
+
import { javascript } from '@codemirror/lang-javascript';
|
|
9
|
+
import { json } from '@codemirror/lang-json';
|
|
10
|
+
import { markdown } from '@codemirror/lang-markdown';
|
|
11
|
+
import { php } from '@codemirror/lang-php';
|
|
12
|
+
import { python } from '@codemirror/lang-python';
|
|
13
|
+
import { sql } from '@codemirror/lang-sql';
|
|
14
|
+
import { xml } from '@codemirror/lang-xml';
|
|
15
|
+
import { yaml } from '@codemirror/lang-yaml';
|
|
16
|
+
import { StreamLanguage } from '@codemirror/language';
|
|
17
|
+
import { linter, lintGutter } from '@codemirror/lint';
|
|
18
|
+
import { Compartment, EditorState } from '@codemirror/state';
|
|
19
|
+
import { lineNumbers } from '@codemirror/view';
|
|
20
|
+
import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
|
|
21
|
+
import { LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';
|
|
22
|
+
import { LibsUiNotificationService } from '@libs-ui/services-notification';
|
|
23
|
+
import { get } from '@libs-ui/utils';
|
|
24
|
+
import { basicSetup, EditorView } from 'codemirror';
|
|
25
|
+
import { Parser } from 'node-sql-parser';
|
|
26
|
+
import { httpRequestConfigGetOptionsLang, optionsLang } from './preview-text-data.define';
|
|
27
|
+
import * as i0 from "@angular/core";
|
|
28
|
+
const sqlParser = new Parser();
|
|
29
|
+
export class LibsUiComponentsPreviewTextDataComponent {
|
|
30
|
+
editorViewInstance;
|
|
31
|
+
wrapCompartment = new Compartment();
|
|
32
|
+
languageCompartment = new Compartment();
|
|
33
|
+
lineNumberCompartment = new Compartment();
|
|
34
|
+
isWrap = signal(true);
|
|
35
|
+
configLoadDataIsHttpConfig = httpRequestConfigGetOptionsLang();
|
|
36
|
+
labelLang = computed(() => optionsLang().find((item) => item.id === this.langSelected())?.label);
|
|
37
|
+
content = input('', { transform: (value) => value ?? '' });
|
|
38
|
+
langSelected = model.required();
|
|
39
|
+
editable = input(false, { transform: (value) => value ?? false });
|
|
40
|
+
hiddenAction = input(false, { transform: (value) => value ?? false });
|
|
41
|
+
lintIgnorePatterns = input(['Cannot use import statement outside a module', 'Unexpected token export', 'import ', '@angular/core'], {
|
|
42
|
+
transform: (value) => value ?? ['Cannot use import statement outside a module', 'Unexpected token export', 'import ', '@angular/core'],
|
|
43
|
+
});
|
|
44
|
+
background = input('#f8f9fa', { transform: (value) => value ?? '#f8f9fa' });
|
|
45
|
+
outChange = output();
|
|
46
|
+
syntaxErrors = output();
|
|
47
|
+
containerPreview = viewChild.required('containerPreview');
|
|
48
|
+
notificationService = inject(LibsUiNotificationService);
|
|
49
|
+
ngAfterViewInit() {
|
|
50
|
+
this.editorViewInstance = new EditorView({ ...this.getExtensionsByLanguage(this.langSelected()), doc: this.content(), parent: this.containerPreview().nativeElement });
|
|
51
|
+
}
|
|
52
|
+
getExtensionsByLanguage(lang) {
|
|
53
|
+
let formatByLangFunction = StreamLanguage.define({
|
|
54
|
+
token(stream) {
|
|
55
|
+
stream.skipToEnd();
|
|
56
|
+
return null;
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
let lintFunction = linter(() => []);
|
|
60
|
+
const lowerLang = lang.toLowerCase();
|
|
61
|
+
switch (lowerLang) {
|
|
62
|
+
case 'javascript':
|
|
63
|
+
formatByLangFunction = javascript({ jsx: true, typescript: true });
|
|
64
|
+
lintFunction = this.jsLinterFn();
|
|
65
|
+
break;
|
|
66
|
+
case 'html':
|
|
67
|
+
formatByLangFunction = html();
|
|
68
|
+
break;
|
|
69
|
+
case 'css':
|
|
70
|
+
formatByLangFunction = css();
|
|
71
|
+
break;
|
|
72
|
+
case 'markdown':
|
|
73
|
+
formatByLangFunction = markdown();
|
|
74
|
+
break;
|
|
75
|
+
case 'json':
|
|
76
|
+
formatByLangFunction = json();
|
|
77
|
+
lintFunction = this.jsonLinterFn();
|
|
78
|
+
break;
|
|
79
|
+
case 'sql':
|
|
80
|
+
formatByLangFunction = sql();
|
|
81
|
+
lintFunction = this.sqlLinterFn();
|
|
82
|
+
break;
|
|
83
|
+
case 'xml':
|
|
84
|
+
formatByLangFunction = xml();
|
|
85
|
+
break;
|
|
86
|
+
case 'yaml':
|
|
87
|
+
formatByLangFunction = yaml();
|
|
88
|
+
break;
|
|
89
|
+
case 'python':
|
|
90
|
+
formatByLangFunction = python();
|
|
91
|
+
break;
|
|
92
|
+
case 'java':
|
|
93
|
+
formatByLangFunction = java();
|
|
94
|
+
break;
|
|
95
|
+
case 'cpp':
|
|
96
|
+
formatByLangFunction = cpp();
|
|
97
|
+
break;
|
|
98
|
+
case 'php':
|
|
99
|
+
formatByLangFunction = php();
|
|
100
|
+
break;
|
|
101
|
+
case 'go':
|
|
102
|
+
formatByLangFunction = go();
|
|
103
|
+
break;
|
|
104
|
+
}
|
|
105
|
+
return {
|
|
106
|
+
extensions: [
|
|
107
|
+
basicSetup,
|
|
108
|
+
this.languageCompartment.of(formatByLangFunction),
|
|
109
|
+
this.lightTheme(),
|
|
110
|
+
EditorView.editable.of(this.editable()),
|
|
111
|
+
this.wrapCompartment.of(EditorView.lineWrapping),
|
|
112
|
+
this.lineNumberCompartment.of(lineNumbers()),
|
|
113
|
+
lintGutter(),
|
|
114
|
+
this.customBracketTheme(),
|
|
115
|
+
lintFunction,
|
|
116
|
+
EditorView.updateListener.of((update) => {
|
|
117
|
+
if (update.docChanged && this.editable()) {
|
|
118
|
+
const newValue = update.state.doc.toString();
|
|
119
|
+
this.outChange.emit({
|
|
120
|
+
content: newValue,
|
|
121
|
+
isWrap: this.isWrap(),
|
|
122
|
+
language: this.langSelected(),
|
|
123
|
+
contextChange: 'content',
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}),
|
|
127
|
+
],
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
lightTheme() {
|
|
131
|
+
return EditorView.theme({
|
|
132
|
+
'&': { backgroundColor: this.background(), color: '#333' },
|
|
133
|
+
'.cm-content': { caretColor: '#111' },
|
|
134
|
+
'.cm-activeLine': { backgroundColor: '#f0f0f0' },
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
customBracketTheme() {
|
|
138
|
+
return EditorView.theme({
|
|
139
|
+
'.cm-matchingBracket': {
|
|
140
|
+
backgroundColor: 'rgba(100, 200, 255, 0.15)', // xanh nhẹ trong suốt
|
|
141
|
+
border: '1px solid rgba(100, 200, 255, 0.4)',
|
|
142
|
+
borderRadius: '3px',
|
|
143
|
+
transition: 'all 0.2s ease',
|
|
144
|
+
},
|
|
145
|
+
'.cm-nonmatchingBracket': {
|
|
146
|
+
backgroundColor: 'rgba(255, 100, 100, 0.15)', // đỏ nhẹ
|
|
147
|
+
border: '1px solid rgba(255, 100, 100, 0.3)',
|
|
148
|
+
borderRadius: '3px',
|
|
149
|
+
},
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
jsLinterFn() {
|
|
153
|
+
return linter((view) => {
|
|
154
|
+
const text = view.state.doc.toString();
|
|
155
|
+
const diagnostics = [];
|
|
156
|
+
try {
|
|
157
|
+
new Function(text); // test parse code
|
|
158
|
+
}
|
|
159
|
+
catch (err) {
|
|
160
|
+
if (!this.lintIgnorePatterns().some((pattern) => err.message.includes(pattern))) {
|
|
161
|
+
diagnostics.push({
|
|
162
|
+
from: 0,
|
|
163
|
+
to: text.length,
|
|
164
|
+
severity: 'error',
|
|
165
|
+
message: err.message,
|
|
166
|
+
});
|
|
167
|
+
this.syntaxErrors.emit(diagnostics);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return diagnostics;
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
jsonLinterFn() {
|
|
174
|
+
return linter((view) => {
|
|
175
|
+
const text = view.state.doc.toString();
|
|
176
|
+
const diagnostics = [];
|
|
177
|
+
try {
|
|
178
|
+
JSON.parse(text);
|
|
179
|
+
}
|
|
180
|
+
catch (err) {
|
|
181
|
+
diagnostics.push({
|
|
182
|
+
from: 0,
|
|
183
|
+
to: text.length,
|
|
184
|
+
severity: 'error',
|
|
185
|
+
message: get(err, 'message', ''),
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
this.syntaxErrors.emit(diagnostics);
|
|
189
|
+
return diagnostics;
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
sqlLinterFn() {
|
|
193
|
+
return linter((view) => {
|
|
194
|
+
const text = view.state.doc.toString();
|
|
195
|
+
const diagnostics = [];
|
|
196
|
+
try {
|
|
197
|
+
sqlParser.astify(text);
|
|
198
|
+
}
|
|
199
|
+
catch (err) {
|
|
200
|
+
diagnostics.push({
|
|
201
|
+
from: 0,
|
|
202
|
+
to: text.length,
|
|
203
|
+
severity: 'error',
|
|
204
|
+
message: get(err, 'message', ''),
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
this.syntaxErrors.emit(diagnostics);
|
|
208
|
+
return diagnostics;
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
handlerCopy() {
|
|
212
|
+
navigator.clipboard.writeText(this.content() || '');
|
|
213
|
+
this.notificationService.showCompTypeTextInfo('Sao chép thành công');
|
|
214
|
+
}
|
|
215
|
+
handlerLineWrap() {
|
|
216
|
+
this.isWrap.update((val) => !val);
|
|
217
|
+
this.editorViewInstance?.dispatch({
|
|
218
|
+
effects: this.wrapCompartment.reconfigure(this.isWrap() ? EditorView.lineWrapping : []),
|
|
219
|
+
});
|
|
220
|
+
this.editorViewInstance?.dispatch({
|
|
221
|
+
effects: this.lineNumberCompartment.reconfigure(this.isWrap() ? lineNumbers() : [] // 👈 nếu tắt thì remove extension
|
|
222
|
+
),
|
|
223
|
+
});
|
|
224
|
+
this.outChange.emit({
|
|
225
|
+
content: this.content(),
|
|
226
|
+
isWrap: this.isWrap(),
|
|
227
|
+
language: this.langSelected(),
|
|
228
|
+
contextChange: 'isWrap',
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
handlerSelectKey(data) {
|
|
232
|
+
if (!data || !data.key) {
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
this.langSelected.set(data.key);
|
|
236
|
+
const extensions = this.getExtensionsByLanguage(this.langSelected());
|
|
237
|
+
this.editorViewInstance?.setState(EditorState.create({
|
|
238
|
+
doc: this.editorViewInstance?.state.doc.toString(),
|
|
239
|
+
...extensions,
|
|
240
|
+
}));
|
|
241
|
+
this.outChange.emit({
|
|
242
|
+
content: this.content(),
|
|
243
|
+
isWrap: this.isWrap(),
|
|
244
|
+
language: this.langSelected(),
|
|
245
|
+
contextChange: 'language',
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewTextDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
249
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPreviewTextDataComponent, isStandalone: true, selector: "libs_ui-components-preview_text_data", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, langSelected: { classPropertyName: "langSelected", publicName: "langSelected", isSignal: true, isRequired: true, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, hiddenAction: { classPropertyName: "hiddenAction", publicName: "hiddenAction", isSignal: true, isRequired: false, transformFunction: null }, lintIgnorePatterns: { classPropertyName: "lintIgnorePatterns", publicName: "lintIgnorePatterns", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { langSelected: "langSelectedChange", outChange: "outChange", syntaxErrors: "syntaxErrors" }, viewQueries: [{ propertyName: "containerPreview", first: true, predicate: ["containerPreview"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"libs-ui-preview-data-container flex flex-col w-full h-auto rounded-[8px] libs-ui-border-general px-[8px]\"\n [style.--background-color]=\"background()\"\n [class.pt-[8px]]=\"!hiddenAction()\">\n @if (!hiddenAction()) {\n <div class=\"flex items-center content-between color-[#6a7383]\">\n <libs_ui-components-dropdown\n classInclude=\"w-[200px]\"\n [listConfig]=\"configLoadDataIsHttpConfig\"\n [listMaxItemShow]=\"5\"\n [isNgContent]=\"true\"\n [readonly]=\"!editable()\"\n [listHasButtonUnSelectOption]=\"false\"\n (outSelectKey)=\"handlerSelectKey($event)\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"labelLang() || ''\"\n [sizeButton]=\"'small'\"\n [classIconRight]=\"editable() ? 'libs-ui-icon-move-right rotate-90' : ''\"\n [classInclude]=\"'!p-[0px]' + (editable() ? '' : '!pointer-events-none !cursor-default hover:!text-[#6A7383]')\" />\n </libs_ui-components-dropdown>\n <div class=\"flex items-center\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"isWrap() ? 'i18n_remove_line_wrap' : 'i18n_line_wrap'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"isWrap() ? 'libs-ui-icon-unwrap' : 'libs-ui-icon-wrap'\"\n [classInclude]=\"'mo-lib-p-0px mo-lib-mr-16px'\"\n (outClick)=\"handlerLineWrap()\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"'i18n_copy'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"'libs-ui-icon-copy'\"\n [classInclude]=\"'mo-lib-p-0px'\"\n (outClick)=\"handlerCopy()\" />\n </div>\n </div>\n }\n <div #containerPreview></div>\n</div>\n", styles: [":host ::ng-deep .libs-ui-preview-data-container{background-color:var(--background-color)!important}:host ::ng-deep .libs-ui-preview-data-container .cm-line{white-space:pre-wrap}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-error{background-color:#ff323233;border-bottom:2px solid red}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-warning{background-color:#ffc80026}:host ::ng-deep .libs-ui-preview-data-container .cm-tooltip-lint{background:#fff8f8;color:#d32f2f;border:1px solid #f44336;padding:8px 10px;font-size:13px;font-family:Inter,sans-serif;border-radius:6px;box-shadow:0 2px 8px #ff000026}:host ::ng-deep .libs-ui-preview-data-container .cm-focused{outline:none!important}:host ::ng-deep .libs-ui-preview-data-container .cm-gutters{background-color:var(--background-color)!important}\n"], dependencies: [{ kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
250
|
+
}
|
|
251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewTextDataComponent, decorators: [{
|
|
252
|
+
type: Component,
|
|
253
|
+
args: [{ selector: 'libs_ui-components-preview_text_data', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiComponentsDropdownComponent, LibsUiComponentsButtonsButtonComponent], template: "<div\n class=\"libs-ui-preview-data-container flex flex-col w-full h-auto rounded-[8px] libs-ui-border-general px-[8px]\"\n [style.--background-color]=\"background()\"\n [class.pt-[8px]]=\"!hiddenAction()\">\n @if (!hiddenAction()) {\n <div class=\"flex items-center content-between color-[#6a7383]\">\n <libs_ui-components-dropdown\n classInclude=\"w-[200px]\"\n [listConfig]=\"configLoadDataIsHttpConfig\"\n [listMaxItemShow]=\"5\"\n [isNgContent]=\"true\"\n [readonly]=\"!editable()\"\n [listHasButtonUnSelectOption]=\"false\"\n (outSelectKey)=\"handlerSelectKey($event)\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"labelLang() || ''\"\n [sizeButton]=\"'small'\"\n [classIconRight]=\"editable() ? 'libs-ui-icon-move-right rotate-90' : ''\"\n [classInclude]=\"'!p-[0px]' + (editable() ? '' : '!pointer-events-none !cursor-default hover:!text-[#6A7383]')\" />\n </libs_ui-components-dropdown>\n <div class=\"flex items-center\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"isWrap() ? 'i18n_remove_line_wrap' : 'i18n_line_wrap'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"isWrap() ? 'libs-ui-icon-unwrap' : 'libs-ui-icon-wrap'\"\n [classInclude]=\"'mo-lib-p-0px mo-lib-mr-16px'\"\n (outClick)=\"handlerLineWrap()\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"'i18n_copy'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"'libs-ui-icon-copy'\"\n [classInclude]=\"'mo-lib-p-0px'\"\n (outClick)=\"handlerCopy()\" />\n </div>\n </div>\n }\n <div #containerPreview></div>\n</div>\n", styles: [":host ::ng-deep .libs-ui-preview-data-container{background-color:var(--background-color)!important}:host ::ng-deep .libs-ui-preview-data-container .cm-line{white-space:pre-wrap}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-error{background-color:#ff323233;border-bottom:2px solid red}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-warning{background-color:#ffc80026}:host ::ng-deep .libs-ui-preview-data-container .cm-tooltip-lint{background:#fff8f8;color:#d32f2f;border:1px solid #f44336;padding:8px 10px;font-size:13px;font-family:Inter,sans-serif;border-radius:6px;box-shadow:0 2px 8px #ff000026}:host ::ng-deep .libs-ui-preview-data-container .cm-focused{outline:none!important}:host ::ng-deep .libs-ui-preview-data-container .cm-gutters{background-color:var(--background-color)!important}\n"] }]
|
|
254
|
+
}] });
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy10ZXh0LWRhdGEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3ByZXZpZXctdGV4dC1kYXRhL3NyYy9wcmV2aWV3LXRleHQtZGF0YS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvcHJldmlldy10ZXh0LWRhdGEvc3JjL3ByZXZpZXctdGV4dC1kYXRhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekosT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMzQyxP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Q0FBQztZQUN2QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUF5QyxDQUFDLENBQUM7UUFDdEUsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLENBQy9CLFdBQVcsQ0FBQyxNQUFNLENBQUM7WUFDakIsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRTtZQUNsRCxHQUFHLFVBQVU7U0FDZCxDQUFDLENBQ0gsQ0FBQztRQUNGLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3ZCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ3JCLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzdCLGFBQWEsRUFBRSxVQUFVO1NBQzFCLENBQUMsQ0FBQztJQUNMLENBQUM7d0dBMVBVLHdDQUF3Qzs0RkFBeEMsd0NBQXdDLHVwQ0N2Q3JELGcwREF5Q0EsbzNCREpZLGlDQUFpQyxpMURBQUUsc0NBQXNDOzs0RkFFeEUsd0NBQXdDO2tCQVRwRCxTQUFTOytCQUVFLHNDQUFzQyxjQUdwQyxJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEMsQ0FBQyxpQ0FBaUMsRUFBRSxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbmplY3QsIGlucHV0LCBtb2RlbCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3BwIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1jcHAnO1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1jc3MnO1xuaW1wb3J0IHsgZ28gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWdvJztcbmltcG9ydCB7IGh0bWwgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWh0bWwnO1xuaW1wb3J0IHsgamF2YSB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctamF2YSc7XG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1qYXZhc2NyaXB0JztcbmltcG9ydCB7IGpzb24gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xuaW1wb3J0IHsgbWFya2Rvd24gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLW1hcmtkb3duJztcbmltcG9ydCB7IHBocCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctcGhwJztcbmltcG9ydCB7IHB5dGhvbiB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctcHl0aG9uJztcbmltcG9ydCB7IHNxbCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctc3FsJztcbmltcG9ydCB7IHhtbCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmcteG1sJztcbmltcG9ydCB7IHlhbWwgfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLXlhbWwnO1xuaW1wb3J0IHsgU3RyZWFtTGFuZ3VhZ2UgfSBmcm9tICdAY29kZW1pcnJvci9sYW5ndWFnZSc7XG5pbXBvcnQgeyBEaWFnbm9zdGljLCBsaW50ZXIsIGxpbnRHdXR0ZXIgfSBmcm9tICdAY29kZW1pcnJvci9saW50JztcbmltcG9ydCB7IENvbXBhcnRtZW50LCBFZGl0b3JTdGF0ZSB9IGZyb20gJ0Bjb2RlbWlycm9yL3N0YXRlJztcbmltcG9ydCB7IGxpbmVOdW1iZXJzIH0gZnJvbSAnQGNvZGVtaXJyb3Ivdmlldyc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQnV0dG9uc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b24nO1xuaW1wb3J0IHsgSUVtaXRTZWxlY3RLZXksIExpYnNVaUNvbXBvbmVudHNEcm9wZG93bkNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtZHJvcGRvd24nO1xuaW1wb3J0IHsgTGlic1VpTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ0BsaWJzLXVpL3NlcnZpY2VzLW5vdGlmaWNhdGlvbic7XG5pbXBvcnQgeyBnZXQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBiYXNpY1NldHVwLCBFZGl0b3JWaWV3IH0gZnJvbSAnY29kZW1pcnJvcic7XG5pbXBvcnQgeyBQYXJzZXIgfSBmcm9tICdub2RlLXNxbC1wYXJzZXInO1xuaW1wb3J0IHsgaHR0cFJlcXVlc3RDb25maWdHZXRPcHRpb25zTGFuZywgb3B0aW9uc0xhbmcgfSBmcm9tICcuL3ByZXZpZXctdGV4dC1kYXRhLmRlZmluZSc7XG5pbXBvcnQgeyBJUHJldmlld1RleHREYXRhQ2hhbmdlLCBQUkVWSUVXX1RFWFRfREFUQV9MQU5HVUFHRV9TVVBQT1JUIH0gZnJvbSAnLi9wcmV2aWV3LXRleHQtZGF0YS5pbnRlcmZhY2VzJztcblxuY29uc3Qgc3FsUGFyc2VyID0gbmV3IFBhcnNlcigpO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtcHJldmlld190ZXh0X2RhdGEnLFxuICB0ZW1wbGF0ZVVybDogJy4vcHJldmlldy10ZXh0LWRhdGEuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9wcmV2aWV3LXRleHQtZGF0YS5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaW1wb3J0czogW0xpYnNVaUNvbXBvbmVudHNEcm9wZG93bkNvbXBvbmVudCwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzUHJldmlld1RleHREYXRhQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByaXZhdGUgZWRpdG9yVmlld0luc3RhbmNlPzogRWRpdG9yVmlldztcbiAgcHJpdmF0ZSB3cmFwQ29tcGFydG1lbnQgPSBuZXcgQ29tcGFydG1lbnQoKTtcbiAgcHJpdmF0ZSBsYW5ndWFnZUNvbXBhcnRtZW50ID0gbmV3IENvbXBhcnRtZW50KCk7XG4gIHByaXZhdGUgbGluZU51bWJlckNvbXBhcnRtZW50ID0gbmV3IENvbXBhcnRtZW50KCk7XG5cbiAgcHJvdGVjdGVkIGlzV3JhcCA9IHNpZ25hbDxib29sZWFuPih0cnVlKTtcbiAgcHJvdGVjdGVkIGNvbmZpZ0xvYWREYXRhSXNIdHRwQ29uZmlnID0gaHR0cFJlcXVlc3RDb25maWdHZXRPcHRpb25zTGFuZygpO1xuICBwcm90ZWN0ZWQgbGFiZWxMYW5nID0gY29tcHV0ZWQoKCkgPT4gb3B0aW9uc0xhbmcoKS5maW5kKChpdGVtKSA9PiBpdGVtLmlkID09PSB0aGlzLmxhbmdTZWxlY3RlZCgpKT8ubGFiZWwpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnQgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiAodmFsdWU/OiBzdHJpbmcpID0+IHZhbHVlID8/ICcnIH0pO1xuICByZWFkb25seSBsYW5nU2VsZWN0ZWQgPSBtb2RlbC5yZXF1aXJlZDxQUkVWSUVXX1RFWFRfREFUQV9MQU5HVUFHRV9TVVBQT1JUPigpO1xuICByZWFkb25seSBlZGl0YWJsZSA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4gfCB1bmRlZmluZWQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlPzogYm9vbGVhbikgPT4gdmFsdWUgPz8gZmFsc2UgfSk7XG4gIHJlYWRvbmx5IGhpZGRlbkFjdGlvbiA9IGlucHV0PGJvb2xlYW4sIGJvb2xlYW4gfCB1bmRlZmluZWQ+KGZhbHNlLCB7IHRyYW5zZm9ybTogKHZhbHVlPzogYm9vbGVhbikgPT4gdmFsdWUgPz8gZmFsc2UgfSk7XG4gIHJlYWRvbmx5IGxpbnRJZ25vcmVQYXR0ZXJucyA9IGlucHV0PEFycmF5PHN0cmluZz4sIEFycmF5PHN0cmluZz4gfCB1bmRlZmluZWQ+KFsnQ2Fubm90IHVzZSBpbXBvcnQgc3RhdGVtZW50IG91dHNpZGUgYSBtb2R1bGUnLCAnVW5leHBlY3RlZCB0b2tlbiBleHBvcnQnLCAnaW1wb3J0ICcsICdAYW5ndWxhci9jb3JlJ10sIHtcbiAgICB0cmFuc2Zvcm06ICh2YWx1ZT86IEFycmF5PHN0cmluZz4pID0+IHZhbHVlID8/IFsnQ2Fubm90IHVzZSBpbXBvcnQgc3RhdGVtZW50IG91dHNpZGUgYSBtb2R1bGUnLCAnVW5leHBlY3RlZCB0b2tlbiBleHBvcnQnLCAnaW1wb3J0ICcsICdAYW5ndWxhci9jb3JlJ10sXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGJhY2tncm91bmQgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJyNmOGY5ZmEnLCB7IHRyYW5zZm9ybTogKHZhbHVlPzogc3RyaW5nKSA9PiB2YWx1ZSA/PyAnI2Y4ZjlmYScgfSk7XG5cbiAgcmVhZG9ubHkgb3V0Q2hhbmdlID0gb3V0cHV0PElQcmV2aWV3VGV4dERhdGFDaGFuZ2U+KCk7XG4gIHJlYWRvbmx5IHN5bnRheEVycm9ycyA9IG91dHB1dDxEaWFnbm9zdGljW10+KCk7XG5cbiAgcHJpdmF0ZSBjb250YWluZXJQcmV2aWV3ID0gdmlld0NoaWxkLnJlcXVpcmVkPEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+PignY29udGFpbmVyUHJldmlldycpO1xuXG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZSA9IGluamVjdChMaWJzVWlOb3RpZmljYXRpb25TZXJ2aWNlKTtcbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZWRpdG9yVmlld0luc3RhbmNlID0gbmV3IEVkaXRvclZpZXcoeyAuLi50aGlzLmdldEV4dGVuc2lvbnNCeUxhbmd1YWdlKHRoaXMubGFuZ1NlbGVjdGVkKCkpLCBkb2M6IHRoaXMuY29udGVudCgpLCBwYXJlbnQ6IHRoaXMuY29udGFpbmVyUHJldmlldygpLm5hdGl2ZUVsZW1lbnQgfSk7XG4gIH1cblxuICBwcml2YXRlIGdldEV4dGVuc2lvbnNCeUxhbmd1YWdlKGxhbmc6IFBSRVZJRVdfVEVYVF9EQVRBX0xBTkdVQUdFX1NVUFBPUlQpOiBhbnkge1xuICAgIGxldCBmb3JtYXRCeUxhbmdGdW5jdGlvbjogYW55ID0gU3RyZWFtTGFuZ3VhZ2UuZGVmaW5lKHtcbiAgICAgIHRva2VuKHN0cmVhbTogYW55KSB7XG4gICAgICAgIHN0cmVhbS5za2lwVG9FbmQoKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9LFxuICAgIH0pO1xuICAgIGxldCBsaW50RnVuY3Rpb24gPSBsaW50ZXIoKCkgPT4gW10pO1xuXG4gICAgY29uc3QgbG93ZXJMYW5nID0gbGFuZy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChsb3dlckxhbmcpIHtcbiAgICAgIGNhc2UgJ2phdmFzY3JpcHQnOlxuICAgICAgICBmb3JtYXRCeUxhbmdGdW5jdGlvbiA9IGphdmFzY3JpcHQoeyBqc3g6IHRydWUsIHR5cGVzY3JpcHQ6IHRydWUgfSk7XG4gICAgICAgIGxpbnRGdW5jdGlvbiA9IHRoaXMuanNMaW50ZXJGbigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnaHRtbCc6XG4gICAgICAgIGZvcm1hdEJ5TGFuZ0Z1bmN0aW9uID0gaHRtbCgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnY3NzJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSBjc3MoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ21hcmtkb3duJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSBtYXJrZG93bigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnanNvbic6XG4gICAgICAgIGZvcm1hdEJ5TGFuZ0Z1bmN0aW9uID0ganNvbigpO1xuICAgICAgICBsaW50RnVuY3Rpb24gPSB0aGlzLmpzb25MaW50ZXJGbigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnc3FsJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSBzcWwoKTtcbiAgICAgICAgbGludEZ1bmN0aW9uID0gdGhpcy5zcWxMaW50ZXJGbigpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAneG1sJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSB4bWwoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3lhbWwnOlxuICAgICAgICBmb3JtYXRCeUxhbmdGdW5jdGlvbiA9IHlhbWwoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3B5dGhvbic6XG4gICAgICAgIGZvcm1hdEJ5TGFuZ0Z1bmN0aW9uID0gcHl0aG9uKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdqYXZhJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSBqYXZhKCk7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBjYXNlICdjcHAnOlxuICAgICAgICBmb3JtYXRCeUxhbmdGdW5jdGlvbiA9IGNwcCgpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncGhwJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSBwaHAoKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2dvJzpcbiAgICAgICAgZm9ybWF0QnlMYW5nRnVuY3Rpb24gPSBnbygpO1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICBiYXNpY1NldHVwLFxuICAgICAgICB0aGlzLmxhbmd1YWdlQ29tcGFydG1lbnQub2YoZm9ybWF0QnlMYW5nRnVuY3Rpb24pLFxuICAgICAgICB0aGlzLmxpZ2h0VGhlbWUoKSxcbiAgICAgICAgRWRpdG9yVmlldy5lZGl0YWJsZS5vZih0aGlzLmVkaXRhYmxlKCkpLFxuICAgICAgICB0aGlzLndyYXBDb21wYXJ0bWVudC5vZihFZGl0b3JWaWV3LmxpbmVXcmFwcGluZyksXG4gICAgICAgIHRoaXMubGluZU51bWJlckNvbXBhcnRtZW50Lm9mKGxpbmVOdW1iZXJzKCkpLFxuICAgICAgICBsaW50R3V0dGVyKCksXG4gICAgICAgIHRoaXMuY3VzdG9tQnJhY2tldFRoZW1lKCksXG4gICAgICAgIGxpbnRGdW5jdGlvbixcbiAgICAgICAgRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodXBkYXRlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAodXBkYXRlLmRvY0NoYW5nZWQgJiYgdGhpcy5lZGl0YWJsZSgpKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHVwZGF0ZS5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcblxuICAgICAgICAgICAgdGhpcy5vdXRDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IG5ld1ZhbHVlLFxuICAgICAgICAgICAgICBpc1dyYXA6IHRoaXMuaXNXcmFwKCksXG4gICAgICAgICAgICAgIGxhbmd1YWdlOiB0aGlzLmxhbmdTZWxlY3RlZCgpLFxuICAgICAgICAgICAgICBjb250ZXh0Q2hhbmdlOiAnY29udGVudCcsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBsaWdodFRoZW1lKCkge1xuICAgIHJldHVybiBFZGl0b3JWaWV3LnRoZW1lKHtcbiAgICAgICcmJzogeyBiYWNrZ3JvdW5kQ29sb3I6IHRoaXMuYmFja2dyb3VuZCgpLCBjb2xvcjogJyMzMzMnIH0sXG4gICAgICAnLmNtLWNvbnRlbnQnOiB7IGNhcmV0Q29sb3I6ICcjMTExJyB9LFxuICAgICAgJy5jbS1hY3RpdmVMaW5lJzogeyBiYWNrZ3JvdW5kQ29sb3I6ICcjZjBmMGYwJyB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXN0b21CcmFja2V0VGhlbWUoKSB7XG4gICAgcmV0dXJuIEVkaXRvclZpZXcudGhlbWUoe1xuICAgICAgJy5jbS1tYXRjaGluZ0JyYWNrZXQnOiB7XG4gICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMTAwLCAyMDAsIDI1NSwgMC4xNSknLCAvLyB4YW5oIG5o4bq5IHRyb25nIHN14buRdFxuICAgICAgICBib3JkZXI6ICcxcHggc29saWQgcmdiYSgxMDAsIDIwMCwgMjU1LCAwLjQpJyxcbiAgICAgICAgYm9yZGVyUmFkaXVzOiAnM3B4JyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ2FsbCAwLjJzIGVhc2UnLFxuICAgICAgfSxcbiAgICAgICcuY20tbm9ubWF0Y2hpbmdCcmFja2V0Jzoge1xuICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICdyZ2JhKDI1NSwgMTAwLCAxMDAsIDAuMTUpJywgLy8gxJHhu48gbmjhurlcbiAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkIHJnYmEoMjU1LCAxMDAsIDEwMCwgMC4zKScsXG4gICAgICAgIGJvcmRlclJhZGl1czogJzNweCcsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBqc0xpbnRlckZuKCkge1xuICAgIHJldHVybiBsaW50ZXIoKHZpZXc6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9IHZpZXcuc3RhdGUuZG9jLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdID0gW107XG4gICAgICB0cnkge1xuICAgICAgICBuZXcgRnVuY3Rpb24odGV4dCk7IC8vIHRlc3QgcGFyc2UgY29kZVxuICAgICAgfSBjYXRjaCAoZXJyOiBhbnkpIHtcbiAgICAgICAgaWYgKCF0aGlzLmxpbnRJZ25vcmVQYXR0ZXJucygpLnNvbWUoKHBhdHRlcm46IGFueSkgPT4gZXJyLm1lc3NhZ2UuaW5jbHVkZXMocGF0dGVybikpKSB7XG4gICAgICAgICAgZGlhZ25vc3RpY3MucHVzaCh7XG4gICAgICAgICAgICBmcm9tOiAwLFxuICAgICAgICAgICAgdG86IHRleHQubGVuZ3RoLFxuICAgICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgICBtZXNzYWdlOiBlcnIubWVzc2FnZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICB0aGlzLnN5bnRheEVycm9ycy5lbWl0KGRpYWdub3N0aWNzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIGRpYWdub3N0aWNzO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBqc29uTGludGVyRm4oKSB7XG4gICAgcmV0dXJuIGxpbnRlcigodmlldzogYW55KSA9PiB7XG4gICAgICBjb25zdCB0ZXh0ID0gdmlldy5zdGF0ZS5kb2MudG9TdHJpbmcoKTtcbiAgICAgIGNvbnN0IGRpYWdub3N0aWNzOiBEaWFnbm9zdGljW10gPSBbXTtcbiAgICAgIHRyeSB7XG4gICAgICAgIEpTT04ucGFyc2UodGV4dCk7XG4gICAgICB9IGNhdGNoIChlcnI6IHVua25vd24pIHtcbiAgICAgICAgZGlhZ25vc3RpY3MucHVzaCh7XG4gICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICB0bzogdGV4dC5sZW5ndGgsXG4gICAgICAgICAgc2V2ZXJpdHk6ICdlcnJvcicsXG4gICAgICAgICAgbWVzc2FnZTogZ2V0KGVyciwgJ21lc3NhZ2UnLCAnJyksXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgdGhpcy5zeW50YXhFcnJvcnMuZW1pdChkaWFnbm9zdGljcyk7XG4gICAgICByZXR1cm4gZGlhZ25vc3RpY3M7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNxbExpbnRlckZuKCkge1xuICAgIHJldHVybiBsaW50ZXIoKHZpZXc6IGFueSkgPT4ge1xuICAgICAgY29uc3QgdGV4dCA9IHZpZXcuc3RhdGUuZG9jLnRvU3RyaW5nKCk7XG4gICAgICBjb25zdCBkaWFnbm9zdGljczogRGlhZ25vc3RpY1tdID0gW107XG4gICAgICB0cnkge1xuICAgICAgICBzcWxQYXJzZXIuYXN0aWZ5KHRleHQpO1xuICAgICAgfSBjYXRjaCAoZXJyOiB1bmtub3duKSB7XG4gICAgICAgIGRpYWdub3N0aWNzLnB1c2goe1xuICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgdG86IHRleHQubGVuZ3RoLFxuICAgICAgICAgIHNldmVyaXR5OiAnZXJyb3InLFxuICAgICAgICAgIG1lc3NhZ2U6IGdldChlcnIsICdtZXNzYWdlJywgJycpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3ludGF4RXJyb3JzLmVtaXQoZGlhZ25vc3RpY3MpO1xuICAgICAgcmV0dXJuIGRpYWdub3N0aWNzO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDb3B5KCkge1xuICAgIG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KHRoaXMuY29udGVudCgpIHx8ICcnKTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc2hvd0NvbXBUeXBlVGV4dEluZm8oJ1NhbyBjaMOpcCB0aMOgbmggY8O0bmcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyTGluZVdyYXAoKSB7XG4gICAgdGhpcy5pc1dyYXAudXBkYXRlKCh2YWw6IGFueSkgPT4gIXZhbCk7XG4gICAgdGhpcy5lZGl0b3JWaWV3SW5zdGFuY2U/LmRpc3BhdGNoKHtcbiAgICAgIGVmZmVjdHM6IHRoaXMud3JhcENvbXBhcnRtZW50LnJlY29uZmlndXJlKHRoaXMuaXNXcmFwKCkgPyBFZGl0b3JWaWV3LmxpbmVXcmFwcGluZyA6IFtdKSxcbiAgICB9KTtcblxuICAgIHRoaXMuZWRpdG9yVmlld0luc3RhbmNlPy5kaXNwYXRjaCh7XG4gICAgICBlZmZlY3RzOiB0aGlzLmxpbmVOdW1iZXJDb21wYXJ0bWVudC5yZWNvbmZpZ3VyZShcbiAgICAgICAgdGhpcy5pc1dyYXAoKSA/IGxpbmVOdW1iZXJzKCkgOiBbXSAvLyDwn5GIIG7hur91IHThuq90IHRow6wgcmVtb3ZlIGV4dGVuc2lvblxuICAgICAgKSxcbiAgICB9KTtcbiAgICB0aGlzLm91dENoYW5nZS5lbWl0KHtcbiAgICAgIGNvbnRlbnQ6IHRoaXMuY29udGVudCgpLFxuICAgICAgaXNXcmFwOiB0aGlzLmlzV3JhcCgpLFxuICAgICAgbGFuZ3VhZ2U6IHRoaXMubGFuZ1NlbGVjdGVkKCksXG4gICAgICBjb250ZXh0Q2hhbmdlOiAnaXNXcmFwJyxcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0S2V5KGRhdGE/OiBJRW1pdFNlbGVjdEtleSkge1xuICAgIGlmICghZGF0YSB8fCAhZGF0YS5rZXkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5sYW5nU2VsZWN0ZWQuc2V0KGRhdGEua2V5IGFzIFBSRVZJRVdfVEVYVF9EQVRBX0xBTkdVQUdFX1NVUFBPUlQpO1xuICAgIGNvbnN0IGV4dGVuc2lvbnMgPSB0aGlzLmdldEV4dGVuc2lvbnNCeUxhbmd1YWdlKHRoaXMubGFuZ1NlbGVjdGVkKCkpO1xuICAgIHRoaXMuZWRpdG9yVmlld0luc3RhbmNlPy5zZXRTdGF0ZShcbiAgICAgIEVkaXRvclN0YXRlLmNyZWF0ZSh7XG4gICAgICAgIGRvYzogdGhpcy5lZGl0b3JWaWV3SW5zdGFuY2U/LnN0YXRlLmRvYy50b1N0cmluZygpLFxuICAgICAgICAuLi5leHRlbnNpb25zLFxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMub3V0Q2hhbmdlLmVtaXQoe1xuICAgICAgY29udGVudDogdGhpcy5jb250ZW50KCksXG4gICAgICBpc1dyYXA6IHRoaXMuaXNXcmFwKCksXG4gICAgICBsYW5ndWFnZTogdGhpcy5sYW5nU2VsZWN0ZWQoKSxcbiAgICAgIGNvbnRleHRDaGFuZ2U6ICdsYW5ndWFnZScsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJsaWJzLXVpLXByZXZpZXctZGF0YS1jb250YWluZXIgZmxleCBmbGV4LWNvbCB3LWZ1bGwgaC1hdXRvIHJvdW5kZWQtWzhweF0gbGlicy11aS1ib3JkZXItZ2VuZXJhbCBweC1bOHB4XVwiXG4gIFtzdHlsZS4tLWJhY2tncm91bmQtY29sb3JdPVwiYmFja2dyb3VuZCgpXCJcbiAgW2NsYXNzLnB0LVs4cHhdXT1cIiFoaWRkZW5BY3Rpb24oKVwiPlxuICBAaWYgKCFoaWRkZW5BY3Rpb24oKSkge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBjb250ZW50LWJldHdlZW4gY29sb3ItWyM2YTczODNdXCI+XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWRyb3Bkb3duXG4gICAgICAgIGNsYXNzSW5jbHVkZT1cInctWzIwMHB4XVwiXG4gICAgICAgIFtsaXN0Q29uZmlnXT1cImNvbmZpZ0xvYWREYXRhSXNIdHRwQ29uZmlnXCJcbiAgICAgICAgW2xpc3RNYXhJdGVtU2hvd109XCI1XCJcbiAgICAgICAgW2lzTmdDb250ZW50XT1cInRydWVcIlxuICAgICAgICBbcmVhZG9ubHldPVwiIWVkaXRhYmxlKClcIlxuICAgICAgICBbbGlzdEhhc0J1dHRvblVuU2VsZWN0T3B0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgKG91dFNlbGVjdEtleSk9XCJoYW5kbGVyU2VsZWN0S2V5KCRldmVudClcIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblxuICAgICAgICAgIFt0eXBlXT1cIididXR0b24tbGluay10aGlyZCdcIlxuICAgICAgICAgIFtsYWJlbF09XCJsYWJlbExhbmcoKSB8fCAnJ1wiXG4gICAgICAgICAgW3NpemVCdXR0b25dPVwiJ3NtYWxsJ1wiXG4gICAgICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cImVkaXRhYmxlKCkgPyAnbGlicy11aS1pY29uLW1vdmUtcmlnaHQgcm90YXRlLTkwJyA6ICcnXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichcC1bMHB4XScgKyAoZWRpdGFibGUoKSA/ICcnIDogJyFwb2ludGVyLWV2ZW50cy1ub25lICFjdXJzb3ItZGVmYXVsdCBob3ZlcjohdGV4dC1bIzZBNzM4M10nKVwiIC8+XG4gICAgICA8L2xpYnNfdWktY29tcG9uZW50cy1kcm9wZG93bj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXG4gICAgICAgICAgW3R5cGVdPVwiJ2J1dHRvbi1saW5rLXRoaXJkJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cImlzV3JhcCgpID8gJ2kxOG5fcmVtb3ZlX2xpbmVfd3JhcCcgOiAnaTE4bl9saW5lX3dyYXAnXCJcbiAgICAgICAgICBbc2l6ZUJ1dHRvbl09XCInc21hbGwnXCJcbiAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJpc1dyYXAoKSA/ICdsaWJzLXVpLWljb24tdW53cmFwJyA6ICdsaWJzLXVpLWljb24td3JhcCdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ21vLWxpYi1wLTBweCBtby1saWItbXItMTZweCdcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyTGluZVdyYXAoKVwiIC8+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b25cbiAgICAgICAgICBbdHlwZV09XCInYnV0dG9uLWxpbmstdGhpcmQnXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ2kxOG5fY29weSdcIlxuICAgICAgICAgIFtzaXplQnV0dG9uXT1cIidzbWFsbCdcIlxuICAgICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cIidsaWJzLXVpLWljb24tY29weSdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ21vLWxpYi1wLTBweCdcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ29weSgpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG4gIDxkaXYgI2NvbnRhaW5lclByZXZpZXc+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { signal } from '@angular/core';
|
|
2
|
+
import { returnListObject } from '@libs-ui/services-http-request';
|
|
3
|
+
import { UtilsHttpParamsRequest } from '@libs-ui/utils';
|
|
4
|
+
export const optionsLang = () => [
|
|
5
|
+
{ id: 'text', label: 'Plain Text' },
|
|
6
|
+
{ id: 'javascript', label: 'JavaScript/TypeScript' },
|
|
7
|
+
{ id: 'html', label: 'HTML' },
|
|
8
|
+
{ id: 'css', label: 'CSS/SCSS/SASS' },
|
|
9
|
+
{ id: 'markdown', label: 'Markdown' },
|
|
10
|
+
{ id: 'json', label: 'JSON' },
|
|
11
|
+
{ id: 'sql', label: 'SQL' },
|
|
12
|
+
{ id: 'xml', label: 'XML' },
|
|
13
|
+
{ id: 'yaml', label: 'YAML' },
|
|
14
|
+
{ id: 'python', label: 'Python' },
|
|
15
|
+
{ id: 'java', label: 'Java' },
|
|
16
|
+
{ id: 'cpp', label: 'C/C++' },
|
|
17
|
+
{ id: 'php', label: 'PHP' },
|
|
18
|
+
{ id: 'go', label: 'Go' },
|
|
19
|
+
];
|
|
20
|
+
export const httpRequestConfigGetOptionsLang = () => {
|
|
21
|
+
return {
|
|
22
|
+
type: 'text',
|
|
23
|
+
httpRequestData: signal({
|
|
24
|
+
objectInstance: returnListObject(optionsLang()),
|
|
25
|
+
functionName: 'list',
|
|
26
|
+
argumentsValue: [new UtilsHttpParamsRequest({ fromObject: { page: 1, per_page: 40 } })],
|
|
27
|
+
}),
|
|
28
|
+
configTemplateText: signal({
|
|
29
|
+
fieldKey: 'id',
|
|
30
|
+
notUseVirtualScroll: true,
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy10ZXh0LWRhdGEuZGVmaW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL3ByZXZpZXctdGV4dC1kYXRhL3NyYy9wcmV2aWV3LXRleHQtZGF0YS5kZWZpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQXNCLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxDQUFDO0lBQy9CLEVBQUUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO0lBQ25DLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7SUFDcEQsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUU7SUFDckMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7SUFDakMsRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDN0IsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDM0IsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUU7Q0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLEdBQW9CLEVBQUU7SUFDbkUsT0FBTztRQUNMLElBQUksRUFBRSxNQUFNO1FBQ1osZUFBZSxFQUFFLE1BQU0sQ0FBcUI7WUFDMUMsY0FBYyxFQUFFLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9DLFlBQVksRUFBRSxNQUFNO1lBQ3BCLGNBQWMsRUFBRSxDQUFDLElBQUksc0JBQXNCLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDeEYsQ0FBQztRQUNGLGtCQUFrQixFQUFFLE1BQU0sQ0FBQztZQUN6QixRQUFRLEVBQUUsSUFBSTtZQUNkLG1CQUFtQixFQUFFLElBQUk7U0FDMUIsQ0FBQztLQUNILENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElMaXN0Q29uZmlnSXRlbSB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGlzdCc7XG5pbXBvcnQgeyBJSHR0cFJlcXVlc3RDb25maWcsIHJldHVybkxpc3RPYmplY3QgfSBmcm9tICdAbGlicy11aS9zZXJ2aWNlcy1odHRwLXJlcXVlc3QnO1xuaW1wb3J0IHsgVXRpbHNIdHRwUGFyYW1zUmVxdWVzdCB9IGZyb20gJ0BsaWJzLXVpL3V0aWxzJztcblxuZXhwb3J0IGNvbnN0IG9wdGlvbnNMYW5nID0gKCkgPT4gW1xuICB7IGlkOiAndGV4dCcsIGxhYmVsOiAnUGxhaW4gVGV4dCcgfSxcbiAgeyBpZDogJ2phdmFzY3JpcHQnLCBsYWJlbDogJ0phdmFTY3JpcHQvVHlwZVNjcmlwdCcgfSxcbiAgeyBpZDogJ2h0bWwnLCBsYWJlbDogJ0hUTUwnIH0sXG4gIHsgaWQ6ICdjc3MnLCBsYWJlbDogJ0NTUy9TQ1NTL1NBU1MnIH0sXG4gIHsgaWQ6ICdtYXJrZG93bicsIGxhYmVsOiAnTWFya2Rvd24nIH0sXG4gIHsgaWQ6ICdqc29uJywgbGFiZWw6ICdKU09OJyB9LFxuICB7IGlkOiAnc3FsJywgbGFiZWw6ICdTUUwnIH0sXG4gIHsgaWQ6ICd4bWwnLCBsYWJlbDogJ1hNTCcgfSxcbiAgeyBpZDogJ3lhbWwnLCBsYWJlbDogJ1lBTUwnIH0sXG4gIHsgaWQ6ICdweXRob24nLCBsYWJlbDogJ1B5dGhvbicgfSxcbiAgeyBpZDogJ2phdmEnLCBsYWJlbDogJ0phdmEnIH0sXG4gIHsgaWQ6ICdjcHAnLCBsYWJlbDogJ0MvQysrJyB9LFxuICB7IGlkOiAncGhwJywgbGFiZWw6ICdQSFAnIH0sXG4gIHsgaWQ6ICdnbycsIGxhYmVsOiAnR28nIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgaHR0cFJlcXVlc3RDb25maWdHZXRPcHRpb25zTGFuZyA9ICgpOiBJTGlzdENvbmZpZ0l0ZW0gPT4ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBodHRwUmVxdWVzdERhdGE6IHNpZ25hbDxJSHR0cFJlcXVlc3RDb25maWc+KHtcbiAgICAgIG9iamVjdEluc3RhbmNlOiByZXR1cm5MaXN0T2JqZWN0KG9wdGlvbnNMYW5nKCkpLFxuICAgICAgZnVuY3Rpb25OYW1lOiAnbGlzdCcsXG4gICAgICBhcmd1bWVudHNWYWx1ZTogW25ldyBVdGlsc0h0dHBQYXJhbXNSZXF1ZXN0KHsgZnJvbU9iamVjdDogeyBwYWdlOiAxLCBwZXJfcGFnZTogNDAgfSB9KV0sXG4gICAgfSksXG4gICAgY29uZmlnVGVtcGxhdGVUZXh0OiBzaWduYWwoe1xuICAgICAgZmllbGRLZXk6ICdpZCcsXG4gICAgICBub3RVc2VWaXJ0dWFsU2Nyb2xsOiB0cnVlLFxuICAgIH0pLFxuICB9O1xufTtcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy10ZXh0LWRhdGEuaW50ZXJmYWNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9wcmV2aWV3LXRleHQtZGF0YS9zcmMvcHJldmlldy10ZXh0LWRhdGEuaW50ZXJmYWNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgUFJFVklFV19URVhUX0RBVEFfTEFOR1VBR0VfU1VQUE9SVCA9ICdqYXZhc2NyaXB0JyB8ICdodG1sJyB8ICdjc3MnIHwgJ21hcmtkb3duJyB8ICdqc29uJyB8ICdzcWwnIHwgJ3htbCcgfCAneWFtbCcgfCAncHl0aG9uJyB8ICdqYXZhJyB8ICdjcHAnIHwgJ3BocCcgfCAnZ28nIHwgJ3RleHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQcmV2aWV3VGV4dERhdGFDaGFuZ2Uge1xuICBjb250ZW50OiBzdHJpbmc7XG4gIGlzV3JhcDogYm9vbGVhbjtcbiAgbGFuZ3VhZ2U6IFBSRVZJRVdfVEVYVF9EQVRBX0xBTkdVQUdFX1NVUFBPUlQ7XG4gIGNvbnRleHRDaGFuZ2U6ICdjb250ZW50JyB8ICdsYW5ndWFnZScgfCAnaXNXcmFwJztcbn1cbiJdfQ==
|
|
@@ -0,0 +1,293 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { signal, computed, input, model, output, viewChild, inject, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
3
|
+
import { cpp } from '@codemirror/lang-cpp';
|
|
4
|
+
import { css } from '@codemirror/lang-css';
|
|
5
|
+
import { go } from '@codemirror/lang-go';
|
|
6
|
+
import { html } from '@codemirror/lang-html';
|
|
7
|
+
import { java } from '@codemirror/lang-java';
|
|
8
|
+
import { javascript } from '@codemirror/lang-javascript';
|
|
9
|
+
import { json } from '@codemirror/lang-json';
|
|
10
|
+
import { markdown } from '@codemirror/lang-markdown';
|
|
11
|
+
import { php } from '@codemirror/lang-php';
|
|
12
|
+
import { python } from '@codemirror/lang-python';
|
|
13
|
+
import { sql } from '@codemirror/lang-sql';
|
|
14
|
+
import { xml } from '@codemirror/lang-xml';
|
|
15
|
+
import { yaml } from '@codemirror/lang-yaml';
|
|
16
|
+
import { StreamLanguage } from '@codemirror/language';
|
|
17
|
+
import { linter, lintGutter } from '@codemirror/lint';
|
|
18
|
+
import { Compartment, EditorState } from '@codemirror/state';
|
|
19
|
+
import { lineNumbers } from '@codemirror/view';
|
|
20
|
+
import { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';
|
|
21
|
+
import { LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';
|
|
22
|
+
import { LibsUiNotificationService } from '@libs-ui/services-notification';
|
|
23
|
+
import { UtilsHttpParamsRequest, get } from '@libs-ui/utils';
|
|
24
|
+
import { EditorView, basicSetup } from 'codemirror';
|
|
25
|
+
import { Parser } from 'node-sql-parser';
|
|
26
|
+
import { returnListObject } from '@libs-ui/services-http-request';
|
|
27
|
+
|
|
28
|
+
const optionsLang = () => [
|
|
29
|
+
{ id: 'text', label: 'Plain Text' },
|
|
30
|
+
{ id: 'javascript', label: 'JavaScript/TypeScript' },
|
|
31
|
+
{ id: 'html', label: 'HTML' },
|
|
32
|
+
{ id: 'css', label: 'CSS/SCSS/SASS' },
|
|
33
|
+
{ id: 'markdown', label: 'Markdown' },
|
|
34
|
+
{ id: 'json', label: 'JSON' },
|
|
35
|
+
{ id: 'sql', label: 'SQL' },
|
|
36
|
+
{ id: 'xml', label: 'XML' },
|
|
37
|
+
{ id: 'yaml', label: 'YAML' },
|
|
38
|
+
{ id: 'python', label: 'Python' },
|
|
39
|
+
{ id: 'java', label: 'Java' },
|
|
40
|
+
{ id: 'cpp', label: 'C/C++' },
|
|
41
|
+
{ id: 'php', label: 'PHP' },
|
|
42
|
+
{ id: 'go', label: 'Go' },
|
|
43
|
+
];
|
|
44
|
+
const httpRequestConfigGetOptionsLang = () => {
|
|
45
|
+
return {
|
|
46
|
+
type: 'text',
|
|
47
|
+
httpRequestData: signal({
|
|
48
|
+
objectInstance: returnListObject(optionsLang()),
|
|
49
|
+
functionName: 'list',
|
|
50
|
+
argumentsValue: [new UtilsHttpParamsRequest({ fromObject: { page: 1, per_page: 40 } })],
|
|
51
|
+
}),
|
|
52
|
+
configTemplateText: signal({
|
|
53
|
+
fieldKey: 'id',
|
|
54
|
+
notUseVirtualScroll: true,
|
|
55
|
+
}),
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
60
|
+
const sqlParser = new Parser();
|
|
61
|
+
class LibsUiComponentsPreviewTextDataComponent {
|
|
62
|
+
editorViewInstance;
|
|
63
|
+
wrapCompartment = new Compartment();
|
|
64
|
+
languageCompartment = new Compartment();
|
|
65
|
+
lineNumberCompartment = new Compartment();
|
|
66
|
+
isWrap = signal(true);
|
|
67
|
+
configLoadDataIsHttpConfig = httpRequestConfigGetOptionsLang();
|
|
68
|
+
labelLang = computed(() => optionsLang().find((item) => item.id === this.langSelected())?.label);
|
|
69
|
+
content = input('', { transform: (value) => value ?? '' });
|
|
70
|
+
langSelected = model.required();
|
|
71
|
+
editable = input(false, { transform: (value) => value ?? false });
|
|
72
|
+
hiddenAction = input(false, { transform: (value) => value ?? false });
|
|
73
|
+
lintIgnorePatterns = input(['Cannot use import statement outside a module', 'Unexpected token export', 'import ', '@angular/core'], {
|
|
74
|
+
transform: (value) => value ?? ['Cannot use import statement outside a module', 'Unexpected token export', 'import ', '@angular/core'],
|
|
75
|
+
});
|
|
76
|
+
background = input('#f8f9fa', { transform: (value) => value ?? '#f8f9fa' });
|
|
77
|
+
outChange = output();
|
|
78
|
+
syntaxErrors = output();
|
|
79
|
+
containerPreview = viewChild.required('containerPreview');
|
|
80
|
+
notificationService = inject(LibsUiNotificationService);
|
|
81
|
+
ngAfterViewInit() {
|
|
82
|
+
this.editorViewInstance = new EditorView({ ...this.getExtensionsByLanguage(this.langSelected()), doc: this.content(), parent: this.containerPreview().nativeElement });
|
|
83
|
+
}
|
|
84
|
+
getExtensionsByLanguage(lang) {
|
|
85
|
+
let formatByLangFunction = StreamLanguage.define({
|
|
86
|
+
token(stream) {
|
|
87
|
+
stream.skipToEnd();
|
|
88
|
+
return null;
|
|
89
|
+
},
|
|
90
|
+
});
|
|
91
|
+
let lintFunction = linter(() => []);
|
|
92
|
+
const lowerLang = lang.toLowerCase();
|
|
93
|
+
switch (lowerLang) {
|
|
94
|
+
case 'javascript':
|
|
95
|
+
formatByLangFunction = javascript({ jsx: true, typescript: true });
|
|
96
|
+
lintFunction = this.jsLinterFn();
|
|
97
|
+
break;
|
|
98
|
+
case 'html':
|
|
99
|
+
formatByLangFunction = html();
|
|
100
|
+
break;
|
|
101
|
+
case 'css':
|
|
102
|
+
formatByLangFunction = css();
|
|
103
|
+
break;
|
|
104
|
+
case 'markdown':
|
|
105
|
+
formatByLangFunction = markdown();
|
|
106
|
+
break;
|
|
107
|
+
case 'json':
|
|
108
|
+
formatByLangFunction = json();
|
|
109
|
+
lintFunction = this.jsonLinterFn();
|
|
110
|
+
break;
|
|
111
|
+
case 'sql':
|
|
112
|
+
formatByLangFunction = sql();
|
|
113
|
+
lintFunction = this.sqlLinterFn();
|
|
114
|
+
break;
|
|
115
|
+
case 'xml':
|
|
116
|
+
formatByLangFunction = xml();
|
|
117
|
+
break;
|
|
118
|
+
case 'yaml':
|
|
119
|
+
formatByLangFunction = yaml();
|
|
120
|
+
break;
|
|
121
|
+
case 'python':
|
|
122
|
+
formatByLangFunction = python();
|
|
123
|
+
break;
|
|
124
|
+
case 'java':
|
|
125
|
+
formatByLangFunction = java();
|
|
126
|
+
break;
|
|
127
|
+
case 'cpp':
|
|
128
|
+
formatByLangFunction = cpp();
|
|
129
|
+
break;
|
|
130
|
+
case 'php':
|
|
131
|
+
formatByLangFunction = php();
|
|
132
|
+
break;
|
|
133
|
+
case 'go':
|
|
134
|
+
formatByLangFunction = go();
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
extensions: [
|
|
139
|
+
basicSetup,
|
|
140
|
+
this.languageCompartment.of(formatByLangFunction),
|
|
141
|
+
this.lightTheme(),
|
|
142
|
+
EditorView.editable.of(this.editable()),
|
|
143
|
+
this.wrapCompartment.of(EditorView.lineWrapping),
|
|
144
|
+
this.lineNumberCompartment.of(lineNumbers()),
|
|
145
|
+
lintGutter(),
|
|
146
|
+
this.customBracketTheme(),
|
|
147
|
+
lintFunction,
|
|
148
|
+
EditorView.updateListener.of((update) => {
|
|
149
|
+
if (update.docChanged && this.editable()) {
|
|
150
|
+
const newValue = update.state.doc.toString();
|
|
151
|
+
this.outChange.emit({
|
|
152
|
+
content: newValue,
|
|
153
|
+
isWrap: this.isWrap(),
|
|
154
|
+
language: this.langSelected(),
|
|
155
|
+
contextChange: 'content',
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
}),
|
|
159
|
+
],
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
lightTheme() {
|
|
163
|
+
return EditorView.theme({
|
|
164
|
+
'&': { backgroundColor: this.background(), color: '#333' },
|
|
165
|
+
'.cm-content': { caretColor: '#111' },
|
|
166
|
+
'.cm-activeLine': { backgroundColor: '#f0f0f0' },
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
customBracketTheme() {
|
|
170
|
+
return EditorView.theme({
|
|
171
|
+
'.cm-matchingBracket': {
|
|
172
|
+
backgroundColor: 'rgba(100, 200, 255, 0.15)', // xanh nhẹ trong suốt
|
|
173
|
+
border: '1px solid rgba(100, 200, 255, 0.4)',
|
|
174
|
+
borderRadius: '3px',
|
|
175
|
+
transition: 'all 0.2s ease',
|
|
176
|
+
},
|
|
177
|
+
'.cm-nonmatchingBracket': {
|
|
178
|
+
backgroundColor: 'rgba(255, 100, 100, 0.15)', // đỏ nhẹ
|
|
179
|
+
border: '1px solid rgba(255, 100, 100, 0.3)',
|
|
180
|
+
borderRadius: '3px',
|
|
181
|
+
},
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
jsLinterFn() {
|
|
185
|
+
return linter((view) => {
|
|
186
|
+
const text = view.state.doc.toString();
|
|
187
|
+
const diagnostics = [];
|
|
188
|
+
try {
|
|
189
|
+
new Function(text); // test parse code
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
if (!this.lintIgnorePatterns().some((pattern) => err.message.includes(pattern))) {
|
|
193
|
+
diagnostics.push({
|
|
194
|
+
from: 0,
|
|
195
|
+
to: text.length,
|
|
196
|
+
severity: 'error',
|
|
197
|
+
message: err.message,
|
|
198
|
+
});
|
|
199
|
+
this.syntaxErrors.emit(diagnostics);
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
return diagnostics;
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
jsonLinterFn() {
|
|
206
|
+
return linter((view) => {
|
|
207
|
+
const text = view.state.doc.toString();
|
|
208
|
+
const diagnostics = [];
|
|
209
|
+
try {
|
|
210
|
+
JSON.parse(text);
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
diagnostics.push({
|
|
214
|
+
from: 0,
|
|
215
|
+
to: text.length,
|
|
216
|
+
severity: 'error',
|
|
217
|
+
message: get(err, 'message', ''),
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
this.syntaxErrors.emit(diagnostics);
|
|
221
|
+
return diagnostics;
|
|
222
|
+
});
|
|
223
|
+
}
|
|
224
|
+
sqlLinterFn() {
|
|
225
|
+
return linter((view) => {
|
|
226
|
+
const text = view.state.doc.toString();
|
|
227
|
+
const diagnostics = [];
|
|
228
|
+
try {
|
|
229
|
+
sqlParser.astify(text);
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
diagnostics.push({
|
|
233
|
+
from: 0,
|
|
234
|
+
to: text.length,
|
|
235
|
+
severity: 'error',
|
|
236
|
+
message: get(err, 'message', ''),
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
this.syntaxErrors.emit(diagnostics);
|
|
240
|
+
return diagnostics;
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
handlerCopy() {
|
|
244
|
+
navigator.clipboard.writeText(this.content() || '');
|
|
245
|
+
this.notificationService.showCompTypeTextInfo('Sao chép thành công');
|
|
246
|
+
}
|
|
247
|
+
handlerLineWrap() {
|
|
248
|
+
this.isWrap.update((val) => !val);
|
|
249
|
+
this.editorViewInstance?.dispatch({
|
|
250
|
+
effects: this.wrapCompartment.reconfigure(this.isWrap() ? EditorView.lineWrapping : []),
|
|
251
|
+
});
|
|
252
|
+
this.editorViewInstance?.dispatch({
|
|
253
|
+
effects: this.lineNumberCompartment.reconfigure(this.isWrap() ? lineNumbers() : [] // 👈 nếu tắt thì remove extension
|
|
254
|
+
),
|
|
255
|
+
});
|
|
256
|
+
this.outChange.emit({
|
|
257
|
+
content: this.content(),
|
|
258
|
+
isWrap: this.isWrap(),
|
|
259
|
+
language: this.langSelected(),
|
|
260
|
+
contextChange: 'isWrap',
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
handlerSelectKey(data) {
|
|
264
|
+
if (!data || !data.key) {
|
|
265
|
+
return;
|
|
266
|
+
}
|
|
267
|
+
this.langSelected.set(data.key);
|
|
268
|
+
const extensions = this.getExtensionsByLanguage(this.langSelected());
|
|
269
|
+
this.editorViewInstance?.setState(EditorState.create({
|
|
270
|
+
doc: this.editorViewInstance?.state.doc.toString(),
|
|
271
|
+
...extensions,
|
|
272
|
+
}));
|
|
273
|
+
this.outChange.emit({
|
|
274
|
+
content: this.content(),
|
|
275
|
+
isWrap: this.isWrap(),
|
|
276
|
+
language: this.langSelected(),
|
|
277
|
+
contextChange: 'language',
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewTextDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
281
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LibsUiComponentsPreviewTextDataComponent, isStandalone: true, selector: "libs_ui-components-preview_text_data", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, langSelected: { classPropertyName: "langSelected", publicName: "langSelected", isSignal: true, isRequired: true, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, hiddenAction: { classPropertyName: "hiddenAction", publicName: "hiddenAction", isSignal: true, isRequired: false, transformFunction: null }, lintIgnorePatterns: { classPropertyName: "lintIgnorePatterns", publicName: "lintIgnorePatterns", isSignal: true, isRequired: false, transformFunction: null }, background: { classPropertyName: "background", publicName: "background", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { langSelected: "langSelectedChange", outChange: "outChange", syntaxErrors: "syntaxErrors" }, viewQueries: [{ propertyName: "containerPreview", first: true, predicate: ["containerPreview"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n class=\"libs-ui-preview-data-container flex flex-col w-full h-auto rounded-[8px] libs-ui-border-general px-[8px]\"\n [style.--background-color]=\"background()\"\n [class.pt-[8px]]=\"!hiddenAction()\">\n @if (!hiddenAction()) {\n <div class=\"flex items-center content-between color-[#6a7383]\">\n <libs_ui-components-dropdown\n classInclude=\"w-[200px]\"\n [listConfig]=\"configLoadDataIsHttpConfig\"\n [listMaxItemShow]=\"5\"\n [isNgContent]=\"true\"\n [readonly]=\"!editable()\"\n [listHasButtonUnSelectOption]=\"false\"\n (outSelectKey)=\"handlerSelectKey($event)\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"labelLang() || ''\"\n [sizeButton]=\"'small'\"\n [classIconRight]=\"editable() ? 'libs-ui-icon-move-right rotate-90' : ''\"\n [classInclude]=\"'!p-[0px]' + (editable() ? '' : '!pointer-events-none !cursor-default hover:!text-[#6A7383]')\" />\n </libs_ui-components-dropdown>\n <div class=\"flex items-center\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"isWrap() ? 'i18n_remove_line_wrap' : 'i18n_line_wrap'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"isWrap() ? 'libs-ui-icon-unwrap' : 'libs-ui-icon-wrap'\"\n [classInclude]=\"'mo-lib-p-0px mo-lib-mr-16px'\"\n (outClick)=\"handlerLineWrap()\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"'i18n_copy'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"'libs-ui-icon-copy'\"\n [classInclude]=\"'mo-lib-p-0px'\"\n (outClick)=\"handlerCopy()\" />\n </div>\n </div>\n }\n <div #containerPreview></div>\n</div>\n", styles: [":host ::ng-deep .libs-ui-preview-data-container{background-color:var(--background-color)!important}:host ::ng-deep .libs-ui-preview-data-container .cm-line{white-space:pre-wrap}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-error{background-color:#ff323233;border-bottom:2px solid red}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-warning{background-color:#ffc80026}:host ::ng-deep .libs-ui-preview-data-container .cm-tooltip-lint{background:#fff8f8;color:#d32f2f;border:1px solid #f44336;padding:8px 10px;font-size:13px;font-family:Inter,sans-serif;border-radius:6px;box-shadow:0 2px 8px #ff000026}:host ::ng-deep .libs-ui-preview-data-container .cm-focused{outline:none!important}:host ::ng-deep .libs-ui-preview-data-container .cm-gutters{background-color:var(--background-color)!important}\n"], dependencies: [{ kind: "component", type: LibsUiComponentsDropdownComponent, selector: "libs_ui-components-dropdown", inputs: ["useXssFilter", "popoverElementRefCustom", "classInclude", "ignoreStopPropagationEvent", "flagMouse", "flagMouseContent", "popoverCustomConfig", "isNgContent", "zIndex", "convertItemSelected", "getPopoverItemSelected", "httpRequestDetailItemById", "lengthKeys", "textDisplayWhenNoSelect", "textDisplayWhenMultiSelect", "classIncludeTextDisplayWhenNoSelect", "fieldLabel", "fieldGetLabel", "labelPopoverConfig", "labelPopoverFullWidth", "hasContentUnitRight", "listSearchNoDataTemplateRef", "fieldGetImage", "imageSize", "typeShape", "fieldGetIcon", "fieldGetTextAvatar", "fieldGetColorAvatar", "classAvatarInclude", "getLastTextAfterSpace", "linkImageError", "showError", "showBorderError", "disable", "readonly", "labelConfig", "disableLabel", "listSearchConfig", "isSearchOnline", "listHiddenInputSearch", "listSearchPadding", "listKeySearch", "listDividerClassInclude", "listConfig", "listButtonsOther", "listHasButtonUnSelectOption", "listClickExactly", "listBackgroundCustom", "listMaxItemShow", "listKeySelected", "listMultiKeySelected", "listKeysDisable", "listKeysHidden", "validRequired", "validMaxItemSelected", "changeValidUndefinedResetError", "allowSelectItemMultiple", "focusInputSearch", "onlyEmitDataWhenReset", "resetKeyWhenSelectAllKey", "listConfigHasDivider", "classIncludeIcon", "classIncludeContent", "listIgnoreClassDisableDefaultWhenUseKeysDisableItem", "tabKeyActive", "tabsConfig", "ignoreBorderBottom"], outputs: ["flagMouseChange", "flagMouseContentChange", "lengthKeysChange", "showBorderErrorChange", "listKeySelectedChange", "listMultiKeySelectedChange", "tabKeyActiveChange", "outSelectKey", "outSelectMultiKey", "outFunctionsControl", "outValidEvent", "outChangStageFlagMouse", "outDataChange", "outClickButtonOther", "outShowList", "outChangeTabKeyActive"] }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
282
|
+
}
|
|
283
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LibsUiComponentsPreviewTextDataComponent, decorators: [{
|
|
284
|
+
type: Component,
|
|
285
|
+
args: [{ selector: 'libs_ui-components-preview_text_data', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [LibsUiComponentsDropdownComponent, LibsUiComponentsButtonsButtonComponent], template: "<div\n class=\"libs-ui-preview-data-container flex flex-col w-full h-auto rounded-[8px] libs-ui-border-general px-[8px]\"\n [style.--background-color]=\"background()\"\n [class.pt-[8px]]=\"!hiddenAction()\">\n @if (!hiddenAction()) {\n <div class=\"flex items-center content-between color-[#6a7383]\">\n <libs_ui-components-dropdown\n classInclude=\"w-[200px]\"\n [listConfig]=\"configLoadDataIsHttpConfig\"\n [listMaxItemShow]=\"5\"\n [isNgContent]=\"true\"\n [readonly]=\"!editable()\"\n [listHasButtonUnSelectOption]=\"false\"\n (outSelectKey)=\"handlerSelectKey($event)\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"labelLang() || ''\"\n [sizeButton]=\"'small'\"\n [classIconRight]=\"editable() ? 'libs-ui-icon-move-right rotate-90' : ''\"\n [classInclude]=\"'!p-[0px]' + (editable() ? '' : '!pointer-events-none !cursor-default hover:!text-[#6A7383]')\" />\n </libs_ui-components-dropdown>\n <div class=\"flex items-center\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"isWrap() ? 'i18n_remove_line_wrap' : 'i18n_line_wrap'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"isWrap() ? 'libs-ui-icon-unwrap' : 'libs-ui-icon-wrap'\"\n [classInclude]=\"'mo-lib-p-0px mo-lib-mr-16px'\"\n (outClick)=\"handlerLineWrap()\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"'i18n_copy'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"'libs-ui-icon-copy'\"\n [classInclude]=\"'mo-lib-p-0px'\"\n (outClick)=\"handlerCopy()\" />\n </div>\n </div>\n }\n <div #containerPreview></div>\n</div>\n", styles: [":host ::ng-deep .libs-ui-preview-data-container{background-color:var(--background-color)!important}:host ::ng-deep .libs-ui-preview-data-container .cm-line{white-space:pre-wrap}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-error{background-color:#ff323233;border-bottom:2px solid red}:host ::ng-deep .libs-ui-preview-data-container .cm-lintRange-warning{background-color:#ffc80026}:host ::ng-deep .libs-ui-preview-data-container .cm-tooltip-lint{background:#fff8f8;color:#d32f2f;border:1px solid #f44336;padding:8px 10px;font-size:13px;font-family:Inter,sans-serif;border-radius:6px;box-shadow:0 2px 8px #ff000026}:host ::ng-deep .libs-ui-preview-data-container .cm-focused{outline:none!important}:host ::ng-deep .libs-ui-preview-data-container .cm-gutters{background-color:var(--background-color)!important}\n"] }]
|
|
286
|
+
}] });
|
|
287
|
+
|
|
288
|
+
/**
|
|
289
|
+
* Generated bundle index. Do not edit.
|
|
290
|
+
*/
|
|
291
|
+
|
|
292
|
+
export { LibsUiComponentsPreviewTextDataComponent, httpRequestConfigGetOptionsLang, optionsLang };
|
|
293
|
+
//# sourceMappingURL=libs-ui-components-preview-text-data.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"libs-ui-components-preview-text-data.mjs","sources":["../../../../../libs-ui/components/preview-text-data/src/preview-text-data.define.ts","../../../../../libs-ui/components/preview-text-data/src/preview-text-data.component.ts","../../../../../libs-ui/components/preview-text-data/src/preview-text-data.component.html","../../../../../libs-ui/components/preview-text-data/src/libs-ui-components-preview-text-data.ts"],"sourcesContent":["import { signal } from '@angular/core';\nimport { IListConfigItem } from '@libs-ui/components-list';\nimport { IHttpRequestConfig, returnListObject } from '@libs-ui/services-http-request';\nimport { UtilsHttpParamsRequest } from '@libs-ui/utils';\n\nexport const optionsLang = () => [\n { id: 'text', label: 'Plain Text' },\n { id: 'javascript', label: 'JavaScript/TypeScript' },\n { id: 'html', label: 'HTML' },\n { id: 'css', label: 'CSS/SCSS/SASS' },\n { id: 'markdown', label: 'Markdown' },\n { id: 'json', label: 'JSON' },\n { id: 'sql', label: 'SQL' },\n { id: 'xml', label: 'XML' },\n { id: 'yaml', label: 'YAML' },\n { id: 'python', label: 'Python' },\n { id: 'java', label: 'Java' },\n { id: 'cpp', label: 'C/C++' },\n { id: 'php', label: 'PHP' },\n { id: 'go', label: 'Go' },\n];\n\nexport const httpRequestConfigGetOptionsLang = (): IListConfigItem => {\n return {\n type: 'text',\n httpRequestData: signal<IHttpRequestConfig>({\n objectInstance: returnListObject(optionsLang()),\n functionName: 'list',\n argumentsValue: [new UtilsHttpParamsRequest({ fromObject: { page: 1, per_page: 40 } })],\n }),\n configTemplateText: signal({\n fieldKey: 'id',\n notUseVirtualScroll: true,\n }),\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { AfterViewInit, ChangeDetectionStrategy, Component, computed, ElementRef, inject, input, model, output, signal, viewChild } from '@angular/core';\nimport { cpp } from '@codemirror/lang-cpp';\nimport { css } from '@codemirror/lang-css';\nimport { go } from '@codemirror/lang-go';\nimport { html } from '@codemirror/lang-html';\nimport { java } from '@codemirror/lang-java';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { json } from '@codemirror/lang-json';\nimport { markdown } from '@codemirror/lang-markdown';\nimport { php } from '@codemirror/lang-php';\nimport { python } from '@codemirror/lang-python';\nimport { sql } from '@codemirror/lang-sql';\nimport { xml } from '@codemirror/lang-xml';\nimport { yaml } from '@codemirror/lang-yaml';\nimport { StreamLanguage } from '@codemirror/language';\nimport { Diagnostic, linter, lintGutter } from '@codemirror/lint';\nimport { Compartment, EditorState } from '@codemirror/state';\nimport { lineNumbers } from '@codemirror/view';\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IEmitSelectKey, LibsUiComponentsDropdownComponent } from '@libs-ui/components-dropdown';\nimport { LibsUiNotificationService } from '@libs-ui/services-notification';\nimport { get } from '@libs-ui/utils';\nimport { basicSetup, EditorView } from 'codemirror';\nimport { Parser } from 'node-sql-parser';\nimport { httpRequestConfigGetOptionsLang, optionsLang } from './preview-text-data.define';\nimport { IPreviewTextDataChange, PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT } from './preview-text-data.interfaces';\n\nconst sqlParser = new Parser();\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-preview_text_data',\n templateUrl: './preview-text-data.component.html',\n styleUrls: ['./preview-text-data.component.scss'],\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LibsUiComponentsDropdownComponent, LibsUiComponentsButtonsButtonComponent],\n})\nexport class LibsUiComponentsPreviewTextDataComponent implements AfterViewInit {\n private editorViewInstance?: EditorView;\n private wrapCompartment = new Compartment();\n private languageCompartment = new Compartment();\n private lineNumberCompartment = new Compartment();\n\n protected isWrap = signal<boolean>(true);\n protected configLoadDataIsHttpConfig = httpRequestConfigGetOptionsLang();\n protected labelLang = computed(() => optionsLang().find((item) => item.id === this.langSelected())?.label);\n\n readonly content = input<string, string | undefined>('', { transform: (value?: string) => value ?? '' });\n readonly langSelected = model.required<PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT>();\n readonly editable = input<boolean, boolean | undefined>(false, { transform: (value?: boolean) => value ?? false });\n readonly hiddenAction = input<boolean, boolean | undefined>(false, { transform: (value?: boolean) => value ?? false });\n readonly lintIgnorePatterns = input<Array<string>, Array<string> | undefined>(['Cannot use import statement outside a module', 'Unexpected token export', 'import ', '@angular/core'], {\n transform: (value?: Array<string>) => value ?? ['Cannot use import statement outside a module', 'Unexpected token export', 'import ', '@angular/core'],\n });\n\n readonly background = input<string, string | undefined>('#f8f9fa', { transform: (value?: string) => value ?? '#f8f9fa' });\n\n readonly outChange = output<IPreviewTextDataChange>();\n readonly syntaxErrors = output<Diagnostic[]>();\n\n private containerPreview = viewChild.required<ElementRef<HTMLDivElement>>('containerPreview');\n\n private notificationService = inject(LibsUiNotificationService);\n ngAfterViewInit() {\n this.editorViewInstance = new EditorView({ ...this.getExtensionsByLanguage(this.langSelected()), doc: this.content(), parent: this.containerPreview().nativeElement });\n }\n\n private getExtensionsByLanguage(lang: PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT): any {\n let formatByLangFunction: any = StreamLanguage.define({\n token(stream: any) {\n stream.skipToEnd();\n return null;\n },\n });\n let lintFunction = linter(() => []);\n\n const lowerLang = lang.toLowerCase();\n\n switch (lowerLang) {\n case 'javascript':\n formatByLangFunction = javascript({ jsx: true, typescript: true });\n lintFunction = this.jsLinterFn();\n break;\n\n case 'html':\n formatByLangFunction = html();\n break;\n\n case 'css':\n formatByLangFunction = css();\n break;\n\n case 'markdown':\n formatByLangFunction = markdown();\n break;\n\n case 'json':\n formatByLangFunction = json();\n lintFunction = this.jsonLinterFn();\n break;\n\n case 'sql':\n formatByLangFunction = sql();\n lintFunction = this.sqlLinterFn();\n break;\n\n case 'xml':\n formatByLangFunction = xml();\n break;\n\n case 'yaml':\n formatByLangFunction = yaml();\n break;\n\n case 'python':\n formatByLangFunction = python();\n break;\n\n case 'java':\n formatByLangFunction = java();\n break;\n\n case 'cpp':\n formatByLangFunction = cpp();\n break;\n\n case 'php':\n formatByLangFunction = php();\n break;\n\n case 'go':\n formatByLangFunction = go();\n break;\n }\n\n return {\n extensions: [\n basicSetup,\n this.languageCompartment.of(formatByLangFunction),\n this.lightTheme(),\n EditorView.editable.of(this.editable()),\n this.wrapCompartment.of(EditorView.lineWrapping),\n this.lineNumberCompartment.of(lineNumbers()),\n lintGutter(),\n this.customBracketTheme(),\n lintFunction,\n EditorView.updateListener.of((update: any) => {\n if (update.docChanged && this.editable()) {\n const newValue = update.state.doc.toString();\n\n this.outChange.emit({\n content: newValue,\n isWrap: this.isWrap(),\n language: this.langSelected(),\n contextChange: 'content',\n });\n }\n }),\n ],\n };\n }\n\n private lightTheme() {\n return EditorView.theme({\n '&': { backgroundColor: this.background(), color: '#333' },\n '.cm-content': { caretColor: '#111' },\n '.cm-activeLine': { backgroundColor: '#f0f0f0' },\n });\n }\n\n private customBracketTheme() {\n return EditorView.theme({\n '.cm-matchingBracket': {\n backgroundColor: 'rgba(100, 200, 255, 0.15)', // xanh nhẹ trong suốt\n border: '1px solid rgba(100, 200, 255, 0.4)',\n borderRadius: '3px',\n transition: 'all 0.2s ease',\n },\n '.cm-nonmatchingBracket': {\n backgroundColor: 'rgba(255, 100, 100, 0.15)', // đỏ nhẹ\n border: '1px solid rgba(255, 100, 100, 0.3)',\n borderRadius: '3px',\n },\n });\n }\n\n private jsLinterFn() {\n return linter((view: any) => {\n const text = view.state.doc.toString();\n const diagnostics: Diagnostic[] = [];\n try {\n new Function(text); // test parse code\n } catch (err: any) {\n if (!this.lintIgnorePatterns().some((pattern: any) => err.message.includes(pattern))) {\n diagnostics.push({\n from: 0,\n to: text.length,\n severity: 'error',\n message: err.message,\n });\n this.syntaxErrors.emit(diagnostics);\n }\n }\n return diagnostics;\n });\n }\n\n private jsonLinterFn() {\n return linter((view: any) => {\n const text = view.state.doc.toString();\n const diagnostics: Diagnostic[] = [];\n try {\n JSON.parse(text);\n } catch (err: unknown) {\n diagnostics.push({\n from: 0,\n to: text.length,\n severity: 'error',\n message: get(err, 'message', ''),\n });\n }\n this.syntaxErrors.emit(diagnostics);\n return diagnostics;\n });\n }\n\n private sqlLinterFn() {\n return linter((view: any) => {\n const text = view.state.doc.toString();\n const diagnostics: Diagnostic[] = [];\n try {\n sqlParser.astify(text);\n } catch (err: unknown) {\n diagnostics.push({\n from: 0,\n to: text.length,\n severity: 'error',\n message: get(err, 'message', ''),\n });\n }\n this.syntaxErrors.emit(diagnostics);\n return diagnostics;\n });\n }\n\n protected handlerCopy() {\n navigator.clipboard.writeText(this.content() || '');\n this.notificationService.showCompTypeTextInfo('Sao chép thành công');\n }\n\n protected handlerLineWrap() {\n this.isWrap.update((val: any) => !val);\n this.editorViewInstance?.dispatch({\n effects: this.wrapCompartment.reconfigure(this.isWrap() ? EditorView.lineWrapping : []),\n });\n\n this.editorViewInstance?.dispatch({\n effects: this.lineNumberCompartment.reconfigure(\n this.isWrap() ? lineNumbers() : [] // 👈 nếu tắt thì remove extension\n ),\n });\n this.outChange.emit({\n content: this.content(),\n isWrap: this.isWrap(),\n language: this.langSelected(),\n contextChange: 'isWrap',\n });\n }\n\n protected handlerSelectKey(data?: IEmitSelectKey) {\n if (!data || !data.key) {\n return;\n }\n this.langSelected.set(data.key as PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT);\n const extensions = this.getExtensionsByLanguage(this.langSelected());\n this.editorViewInstance?.setState(\n EditorState.create({\n doc: this.editorViewInstance?.state.doc.toString(),\n ...extensions,\n })\n );\n this.outChange.emit({\n content: this.content(),\n isWrap: this.isWrap(),\n language: this.langSelected(),\n contextChange: 'language',\n });\n }\n}\n","<div\n class=\"libs-ui-preview-data-container flex flex-col w-full h-auto rounded-[8px] libs-ui-border-general px-[8px]\"\n [style.--background-color]=\"background()\"\n [class.pt-[8px]]=\"!hiddenAction()\">\n @if (!hiddenAction()) {\n <div class=\"flex items-center content-between color-[#6a7383]\">\n <libs_ui-components-dropdown\n classInclude=\"w-[200px]\"\n [listConfig]=\"configLoadDataIsHttpConfig\"\n [listMaxItemShow]=\"5\"\n [isNgContent]=\"true\"\n [readonly]=\"!editable()\"\n [listHasButtonUnSelectOption]=\"false\"\n (outSelectKey)=\"handlerSelectKey($event)\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"labelLang() || ''\"\n [sizeButton]=\"'small'\"\n [classIconRight]=\"editable() ? 'libs-ui-icon-move-right rotate-90' : ''\"\n [classInclude]=\"'!p-[0px]' + (editable() ? '' : '!pointer-events-none !cursor-default hover:!text-[#6A7383]')\" />\n </libs_ui-components-dropdown>\n <div class=\"flex items-center\">\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"isWrap() ? 'i18n_remove_line_wrap' : 'i18n_line_wrap'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"isWrap() ? 'libs-ui-icon-unwrap' : 'libs-ui-icon-wrap'\"\n [classInclude]=\"'mo-lib-p-0px mo-lib-mr-16px'\"\n (outClick)=\"handlerLineWrap()\" />\n <libs_ui-components-buttons-button\n [type]=\"'button-link-third'\"\n [label]=\"'i18n_copy'\"\n [sizeButton]=\"'small'\"\n [classIconLeft]=\"'libs-ui-icon-copy'\"\n [classInclude]=\"'mo-lib-p-0px'\"\n (outClick)=\"handlerCopy()\" />\n </div>\n </div>\n }\n <div #containerPreview></div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/index.d.ts
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@libs-ui/components-preview-text-data",
|
|
3
|
+
"version": "0.2.337-0",
|
|
4
|
+
"peerDependencies": {
|
|
5
|
+
"@codemirror/lang-angular": "0.1.4",
|
|
6
|
+
"@codemirror/lang-cpp": "6.0.3",
|
|
7
|
+
"@codemirror/lang-css": "6.3.1",
|
|
8
|
+
"@codemirror/lang-go": "6.0.1",
|
|
9
|
+
"@codemirror/lang-html": "6.4.11",
|
|
10
|
+
"@codemirror/lang-java": "6.0.2",
|
|
11
|
+
"@codemirror/lang-javascript": "6.2.4",
|
|
12
|
+
"@codemirror/lang-json": "6.0.2",
|
|
13
|
+
"@codemirror/lang-markdown": "6.5.0",
|
|
14
|
+
"@codemirror/lang-php": "6.0.2",
|
|
15
|
+
"@codemirror/lang-python": "6.2.1",
|
|
16
|
+
"@codemirror/lang-sql": "6.10.0",
|
|
17
|
+
"@codemirror/lang-xml": "6.1.0",
|
|
18
|
+
"@codemirror/lang-yaml": "6.1.2",
|
|
19
|
+
"@codemirror/lint": "6.9.1",
|
|
20
|
+
"@codemirror/state": "6.5.2",
|
|
21
|
+
"@codemirror/theme-one-dark": "6.1.3",
|
|
22
|
+
"@codemirror/view": "6.38.6",
|
|
23
|
+
"node-sql-parser": "5.3.13",
|
|
24
|
+
"codemirror": "6.0.2"
|
|
25
|
+
},
|
|
26
|
+
"sideEffects": false,
|
|
27
|
+
"module": "fesm2022/libs-ui-components-preview-text-data.mjs",
|
|
28
|
+
"typings": "index.d.ts",
|
|
29
|
+
"exports": {
|
|
30
|
+
"./package.json": {
|
|
31
|
+
"default": "./package.json"
|
|
32
|
+
},
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./index.d.ts",
|
|
35
|
+
"esm2022": "./esm2022/libs-ui-components-preview-text-data.mjs",
|
|
36
|
+
"esm": "./esm2022/libs-ui-components-preview-text-data.mjs",
|
|
37
|
+
"default": "./fesm2022/libs-ui-components-preview-text-data.mjs"
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"tslib": "^2.3.0"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { AfterViewInit } from '@angular/core';
|
|
2
|
+
import { Diagnostic } from '@codemirror/lint';
|
|
3
|
+
import { IEmitSelectKey } from '@libs-ui/components-dropdown';
|
|
4
|
+
import { IPreviewTextDataChange, PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT } from './preview-text-data.interfaces';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class LibsUiComponentsPreviewTextDataComponent implements AfterViewInit {
|
|
7
|
+
private editorViewInstance?;
|
|
8
|
+
private wrapCompartment;
|
|
9
|
+
private languageCompartment;
|
|
10
|
+
private lineNumberCompartment;
|
|
11
|
+
protected isWrap: import("@angular/core").WritableSignal<boolean>;
|
|
12
|
+
protected configLoadDataIsHttpConfig: import("@libs-ui/components-list").IListConfigItem;
|
|
13
|
+
protected labelLang: import("@angular/core").Signal<string | undefined>;
|
|
14
|
+
readonly content: import("@angular/core").InputSignalWithTransform<string, string | undefined>;
|
|
15
|
+
readonly langSelected: import("@angular/core").ModelSignal<PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT>;
|
|
16
|
+
readonly editable: import("@angular/core").InputSignalWithTransform<boolean, boolean | undefined>;
|
|
17
|
+
readonly hiddenAction: import("@angular/core").InputSignalWithTransform<boolean, boolean | undefined>;
|
|
18
|
+
readonly lintIgnorePatterns: import("@angular/core").InputSignalWithTransform<string[], string[] | undefined>;
|
|
19
|
+
readonly background: import("@angular/core").InputSignalWithTransform<string, string | undefined>;
|
|
20
|
+
readonly outChange: import("@angular/core").OutputEmitterRef<IPreviewTextDataChange>;
|
|
21
|
+
readonly syntaxErrors: import("@angular/core").OutputEmitterRef<Diagnostic[]>;
|
|
22
|
+
private containerPreview;
|
|
23
|
+
private notificationService;
|
|
24
|
+
ngAfterViewInit(): void;
|
|
25
|
+
private getExtensionsByLanguage;
|
|
26
|
+
private lightTheme;
|
|
27
|
+
private customBracketTheme;
|
|
28
|
+
private jsLinterFn;
|
|
29
|
+
private jsonLinterFn;
|
|
30
|
+
private sqlLinterFn;
|
|
31
|
+
protected handlerCopy(): void;
|
|
32
|
+
protected handlerLineWrap(): void;
|
|
33
|
+
protected handlerSelectKey(data?: IEmitSelectKey): void;
|
|
34
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LibsUiComponentsPreviewTextDataComponent, never>;
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LibsUiComponentsPreviewTextDataComponent, "libs_ui-components-preview_text_data", never, { "content": { "alias": "content"; "required": false; "isSignal": true; }; "langSelected": { "alias": "langSelected"; "required": true; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "hiddenAction": { "alias": "hiddenAction"; "required": false; "isSignal": true; }; "lintIgnorePatterns": { "alias": "lintIgnorePatterns"; "required": false; "isSignal": true; }; "background": { "alias": "background"; "required": false; "isSignal": true; }; }, { "langSelected": "langSelectedChange"; "outChange": "outChange"; "syntaxErrors": "syntaxErrors"; }, never, never, true, never>;
|
|
36
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export type PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT = 'javascript' | 'html' | 'css' | 'markdown' | 'json' | 'sql' | 'xml' | 'yaml' | 'python' | 'java' | 'cpp' | 'php' | 'go' | 'text';
|
|
2
|
+
export interface IPreviewTextDataChange {
|
|
3
|
+
content: string;
|
|
4
|
+
isWrap: boolean;
|
|
5
|
+
language: PREVIEW_TEXT_DATA_LANGUAGE_SUPPORT;
|
|
6
|
+
contextChange: 'content' | 'language' | 'isWrap';
|
|
7
|
+
}
|