@douyinfe/semi-json-viewer-core 2.85.0 → 2.86.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/lib/index.js +30 -27
- package/package.json +2 -2
package/lib/index.js
CHANGED
|
@@ -24,17 +24,17 @@ function createTokenizationSupport(supportComments) {
|
|
|
24
24
|
tokenize: (line, state) => tokenize(supportComments, line, state)
|
|
25
25
|
};
|
|
26
26
|
}
|
|
27
|
-
var TOKEN_DELIM_OBJECT = "
|
|
28
|
-
var TOKEN_DELIM_ARRAY = "
|
|
29
|
-
var TOKEN_DELIM_COLON = "
|
|
30
|
-
var TOKEN_DELIM_COMMA = "
|
|
31
|
-
var TOKEN_VALUE_BOOLEAN = "
|
|
32
|
-
var TOKEN_VALUE_NULL = "
|
|
33
|
-
var TOKEN_VALUE_STRING = "
|
|
34
|
-
var TOKEN_VALUE_NUMBER = "
|
|
35
|
-
var TOKEN_PROPERTY_NAME = "
|
|
36
|
-
var TOKEN_COMMENT_BLOCK = "
|
|
37
|
-
var TOKEN_COMMENT_LINE = "
|
|
27
|
+
var TOKEN_DELIM_OBJECT = "delimiter-bracket";
|
|
28
|
+
var TOKEN_DELIM_ARRAY = "delimiter-array";
|
|
29
|
+
var TOKEN_DELIM_COLON = "delimiter-colon";
|
|
30
|
+
var TOKEN_DELIM_COMMA = "delimiter-comma";
|
|
31
|
+
var TOKEN_VALUE_BOOLEAN = "keyword";
|
|
32
|
+
var TOKEN_VALUE_NULL = "keyword";
|
|
33
|
+
var TOKEN_VALUE_STRING = "string-value";
|
|
34
|
+
var TOKEN_VALUE_NUMBER = "number";
|
|
35
|
+
var TOKEN_PROPERTY_NAME = "string-key";
|
|
36
|
+
var TOKEN_COMMENT_BLOCK = "comment-block";
|
|
37
|
+
var TOKEN_COMMENT_LINE = "comment-line";
|
|
38
38
|
var ParentsStack = class _ParentsStack {
|
|
39
39
|
constructor(parent, type, depth) {
|
|
40
40
|
this.parent = parent;
|
|
@@ -422,7 +422,7 @@ var SelectionModel = class {
|
|
|
422
422
|
if (!node) return { row, col };
|
|
423
423
|
let lineElement;
|
|
424
424
|
if (node instanceof HTMLElement) {
|
|
425
|
-
lineElement = node.closest(
|
|
425
|
+
lineElement = node.closest(`.${this._view.prefixCls}-view-line`);
|
|
426
426
|
} else {
|
|
427
427
|
lineElement = getLineElement(node);
|
|
428
428
|
if (!lineElement) return { row, col };
|
|
@@ -1172,6 +1172,7 @@ var FoldingModel = class {
|
|
|
1172
1172
|
return this._hiddenRangeModel.isHiddenLine(lineNumber);
|
|
1173
1173
|
}
|
|
1174
1174
|
isFoldable(lineNumber) {
|
|
1175
|
+
if (!this._regions) return false;
|
|
1175
1176
|
const index = this._regions.findRange(lineNumber);
|
|
1176
1177
|
const region = this._regions.toRegion(index);
|
|
1177
1178
|
return region && region.startLineNumber === lineNumber;
|
|
@@ -1880,7 +1881,7 @@ var FoldWidget = class {
|
|
|
1880
1881
|
return svg;
|
|
1881
1882
|
}
|
|
1882
1883
|
_createFoldingIcon(lineNumber) {
|
|
1883
|
-
const foldingIconClass =
|
|
1884
|
+
const foldingIconClass = `${this._view.prefixCls}-folding-icon`;
|
|
1884
1885
|
const foldingIcon = elt("span", foldingIconClass);
|
|
1885
1886
|
const isCollapsed = this._foldingModel.isCollapsed(lineNumber);
|
|
1886
1887
|
foldingIcon.appendChild(this._createFoldSvg(isCollapsed));
|
|
@@ -1908,7 +1909,7 @@ var FoldWidget = class {
|
|
|
1908
1909
|
return foldingIcon;
|
|
1909
1910
|
}
|
|
1910
1911
|
removeAllFoldingIcons() {
|
|
1911
|
-
const foldingIconClass =
|
|
1912
|
+
const foldingIconClass = `${this._view.prefixCls}-folding-icon`;
|
|
1912
1913
|
const foldingIcons = this._view.lineScrollDom.querySelectorAll(`.${foldingIconClass}`);
|
|
1913
1914
|
foldingIcons.forEach((icon) => icon.remove());
|
|
1914
1915
|
}
|
|
@@ -3769,7 +3770,7 @@ var CompleteWidget = class {
|
|
|
3769
3770
|
return { x, y };
|
|
3770
3771
|
}
|
|
3771
3772
|
createCompleteContainer() {
|
|
3772
|
-
const className =
|
|
3773
|
+
const className = `${this._view.prefixCls}-complete-container`;
|
|
3773
3774
|
const container = elt("div", className);
|
|
3774
3775
|
setStyles(container, {
|
|
3775
3776
|
display: "none"
|
|
@@ -3777,7 +3778,7 @@ var CompleteWidget = class {
|
|
|
3777
3778
|
return container;
|
|
3778
3779
|
}
|
|
3779
3780
|
createSuggestionsContainer() {
|
|
3780
|
-
const className =
|
|
3781
|
+
const className = `${this._view.prefixCls}-complete-suggestions-container`;
|
|
3781
3782
|
const container = elt("div", className);
|
|
3782
3783
|
setStyles(container, {
|
|
3783
3784
|
maxHeight: "200px",
|
|
@@ -3838,7 +3839,7 @@ var CompleteWidget = class {
|
|
|
3838
3839
|
this.hide();
|
|
3839
3840
|
}
|
|
3840
3841
|
_renderCompletions() {
|
|
3841
|
-
const className =
|
|
3842
|
+
const className = `${this._view.prefixCls}-complete-suggestions-item`;
|
|
3842
3843
|
this._suggestionsContainer.innerHTML = this._suggestions.map(
|
|
3843
3844
|
(item, index) => `
|
|
3844
3845
|
<li class="${className}" style="background-color: ${index === this._selectedIndex ? "var(--semi-color-fill-0)" : "transparent"}" data-index="${index}">
|
|
@@ -3977,7 +3978,7 @@ var ErrorWidget = class {
|
|
|
3977
3978
|
const child = line.children[i];
|
|
3978
3979
|
offset += child.textContent?.length || 0;
|
|
3979
3980
|
if (offset > start.column && offset <= end.column) {
|
|
3980
|
-
const className =
|
|
3981
|
+
const className = `${this._view.prefixCls}-error`;
|
|
3981
3982
|
child.classList.add(className);
|
|
3982
3983
|
}
|
|
3983
3984
|
}
|
|
@@ -3990,6 +3991,7 @@ var ViewDOMBuilder = class {
|
|
|
3990
3991
|
this._lineHeight = lineHeight;
|
|
3991
3992
|
this._totalLines = totalLines;
|
|
3992
3993
|
this._options = options;
|
|
3994
|
+
this.prefixCls = options?.prefixCls || "semi-json-viewer";
|
|
3993
3995
|
}
|
|
3994
3996
|
createRenderContainer() {
|
|
3995
3997
|
const renderContainer = elt("div", "json-viewer-container");
|
|
@@ -4002,7 +4004,7 @@ var ViewDOMBuilder = class {
|
|
|
4002
4004
|
return renderContainer;
|
|
4003
4005
|
}
|
|
4004
4006
|
createLineNumberContainer() {
|
|
4005
|
-
const lineNumberClass =
|
|
4007
|
+
const lineNumberClass = `${this._options?.prefixCls}-line-number-container`;
|
|
4006
4008
|
const lineNumberContainer = elt("div", lineNumberClass);
|
|
4007
4009
|
setStyles(lineNumberContainer, {
|
|
4008
4010
|
position: "absolute",
|
|
@@ -4013,7 +4015,7 @@ var ViewDOMBuilder = class {
|
|
|
4013
4015
|
return lineNumberContainer;
|
|
4014
4016
|
}
|
|
4015
4017
|
createContentContainer() {
|
|
4016
|
-
const contentClass =
|
|
4018
|
+
const contentClass = `${this.prefixCls}-content-container`;
|
|
4017
4019
|
const contentContainer = elt("div", contentClass);
|
|
4018
4020
|
setStyles(contentContainer, {
|
|
4019
4021
|
position: "absolute",
|
|
@@ -4078,6 +4080,7 @@ var View = class {
|
|
|
4078
4080
|
this._lineHeight = options?.lineHeight || 20;
|
|
4079
4081
|
this._options = options;
|
|
4080
4082
|
this._customRenderRule = options?.customRenderRule || null;
|
|
4083
|
+
this.prefixCls = options?.prefixCls || "semi-json-viewer";
|
|
4081
4084
|
this._domBuilder = new ViewDOMBuilder(this._lineHeight, model.getLineCount(), options);
|
|
4082
4085
|
this._jsonViewerDom = this._domBuilder.createRenderContainer();
|
|
4083
4086
|
this._lineNumberDom = this._domBuilder.createLineNumberContainer();
|
|
@@ -4190,7 +4193,7 @@ var View = class {
|
|
|
4190
4193
|
this.onScroll(scrollTop);
|
|
4191
4194
|
}
|
|
4192
4195
|
createLineNumberElement(actualLineNumber, visibleLineNumber) {
|
|
4193
|
-
const lineNumberClass =
|
|
4196
|
+
const lineNumberClass = `${this.prefixCls}-line-number`;
|
|
4194
4197
|
const lineNumberElement = elt("div", lineNumberClass);
|
|
4195
4198
|
const rowDatum = this._scalingCellSizeAndPositionManager.getSizeAndPositionOfCell(visibleLineNumber);
|
|
4196
4199
|
setStyles(lineNumberElement, {
|
|
@@ -4214,7 +4217,7 @@ var View = class {
|
|
|
4214
4217
|
return lineNumberElement;
|
|
4215
4218
|
}
|
|
4216
4219
|
createLineContentElement(actualLineNumber, visibleLineNumber) {
|
|
4217
|
-
const lineElementClass =
|
|
4220
|
+
const lineElementClass = `${this.prefixCls}-view-line`;
|
|
4218
4221
|
const lineElement = elt("div", lineElementClass);
|
|
4219
4222
|
lineElement.setAttribute("data-line-element", "true");
|
|
4220
4223
|
const rowDatum = this._scalingCellSizeAndPositionManager.getSizeAndPositionOfCell(visibleLineNumber);
|
|
@@ -4357,7 +4360,7 @@ var View = class {
|
|
|
4357
4360
|
continue;
|
|
4358
4361
|
} else if (customElement !== null) {
|
|
4359
4362
|
const span2 = document.createElement("span");
|
|
4360
|
-
span2.className = token.scopes
|
|
4363
|
+
span2.className = `${this.prefixCls}-${token.scopes}`;
|
|
4361
4364
|
span2.textContent = content;
|
|
4362
4365
|
container.appendChild(span2);
|
|
4363
4366
|
this._customRenderMap.set(span2, customElement);
|
|
@@ -4365,7 +4368,7 @@ var View = class {
|
|
|
4365
4368
|
}
|
|
4366
4369
|
}
|
|
4367
4370
|
const span = document.createElement("span");
|
|
4368
|
-
span.className = token.scopes
|
|
4371
|
+
span.className = `${this.prefixCls}-${token.scopes}`;
|
|
4369
4372
|
span.textContent = content;
|
|
4370
4373
|
if (!this._options?.autoWrap) {
|
|
4371
4374
|
span.style.whiteSpace = "pre";
|
|
@@ -4385,7 +4388,7 @@ var View = class {
|
|
|
4385
4388
|
if (startIndex >= content.length || endIndex <= 0) continue;
|
|
4386
4389
|
if (startIndex > lastIndex) {
|
|
4387
4390
|
const normalSpan = document.createElement("span");
|
|
4388
|
-
normalSpan.className = tokenClass
|
|
4391
|
+
normalSpan.className = `${this.prefixCls}-${tokenClass}`;
|
|
4389
4392
|
normalSpan.textContent = content.substring(lastIndex, startIndex);
|
|
4390
4393
|
container.appendChild(normalSpan);
|
|
4391
4394
|
}
|
|
@@ -4393,7 +4396,7 @@ var View = class {
|
|
|
4393
4396
|
highlightSpan.textContent = content.substring(startIndex, endIndex);
|
|
4394
4397
|
const currentMatch = this._searchWidget.searchResults?.[this._searchWidget._currentResultIndex];
|
|
4395
4398
|
const isCurrentMatch = match.range.startLineNumber === currentMatch?.range.startLineNumber && match.range.endLineNumber === currentMatch?.range.endLineNumber && match.range.startColumn === currentMatch?.range.startColumn && match.range.endColumn === currentMatch?.range.endColumn;
|
|
4396
|
-
highlightSpan.className = `${tokenClass}
|
|
4399
|
+
highlightSpan.className = `${this.prefixCls}-${tokenClass} ${this.prefixCls}-search-result${isCurrentMatch ? ` ${this.prefixCls}-current-search-result` : ""}`;
|
|
4397
4400
|
highlightSpan.dataset.startColumn = match.range.startColumn.toString();
|
|
4398
4401
|
highlightSpan.dataset.endColumn = match.range.endColumn.toString();
|
|
4399
4402
|
container.appendChild(highlightSpan);
|
|
@@ -4401,7 +4404,7 @@ var View = class {
|
|
|
4401
4404
|
}
|
|
4402
4405
|
if (lastIndex < content.length) {
|
|
4403
4406
|
const remainingSpan = document.createElement("span");
|
|
4404
|
-
remainingSpan.className = tokenClass
|
|
4407
|
+
remainingSpan.className = `${this.prefixCls}-${tokenClass}`;
|
|
4405
4408
|
remainingSpan.textContent = content.substring(lastIndex);
|
|
4406
4409
|
container.appendChild(remainingSpan);
|
|
4407
4410
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@douyinfe/semi-json-viewer-core",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.86.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
],
|
|
54
54
|
"author": "",
|
|
55
55
|
"license": "MIT",
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "772a43ea321ffc267e322f9c14d1b65eec9ea834"
|
|
57
57
|
}
|