@douyinfe/semi-json-viewer-core 2.86.0-beta.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.
Files changed (2) hide show
  1. package/lib/index.js +30 -27
  2. 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 = "semi-json-viewer-delimiter-bracket";
28
- var TOKEN_DELIM_ARRAY = "semi-json-viewer-delimiter-array";
29
- var TOKEN_DELIM_COLON = "semi-json-viewer-delimiter-colon";
30
- var TOKEN_DELIM_COMMA = "semi-json-viewer-delimiter-comma";
31
- var TOKEN_VALUE_BOOLEAN = "semi-json-viewer-keyword";
32
- var TOKEN_VALUE_NULL = "semi-json-viewer-keyword";
33
- var TOKEN_VALUE_STRING = "semi-json-viewer-string-value";
34
- var TOKEN_VALUE_NUMBER = "semi-json-viewer-number";
35
- var TOKEN_PROPERTY_NAME = "semi-json-viewer-string-key";
36
- var TOKEN_COMMENT_BLOCK = "semi-json-viewer-comment-block";
37
- var TOKEN_COMMENT_LINE = "semi-json-viewer-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(".semi-json-viewer-view-line");
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 = "semi-json-viewer-folding-icon";
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 = "semi-json-viewer-folding-icon";
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 = "semi-json-viewer-complete-container";
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 = "semi-json-viewer-complete-suggestions-container";
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 = "semi-json-viewer-complete-suggestions-item";
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 = "semi-json-viewer-error";
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 = "semi-json-viewer-line-number-container";
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 = "semi-json-viewer-content-container";
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 = "semi-json-viewer-line-number";
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 = "semi-json-viewer-view-line";
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} semi-json-viewer-search-result${isCurrentMatch ? " semi-json-viewer-current-search-result" : ""}`;
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.86.0-beta.0",
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": "2ace7125fcf788875cb7aea7baebbaf2fb6fbab3"
56
+ "gitHead": "772a43ea321ffc267e322f9c14d1b65eec9ea834"
57
57
  }