diff --git a/packages/web/package.json b/packages/web/package.json index 2a3ca49d7..5039adccf 100644 --- a/packages/web/package.json +++ b/packages/web/package.json @@ -13,6 +13,7 @@ ], "devDependencies": { "@ant-design/colors": "^5.0.0", + "@mdi/font": "^5.9.55", "@rollup/plugin-commonjs": "^17.0.0", "@rollup/plugin-node-resolve": "^11.0.0", "@rollup/plugin-replace": "^2.4.1", @@ -25,10 +26,12 @@ "dbgate-sqltree": "^4.0.0", "dbgate-tools": "^4.0.0", "dbgate-types": "^4.0.0", + "file-selector": "^0.2.4", "json-stable-stringify": "^1.0.1", "localforage": "^1.9.0", "lodash": "^4.17.15", "randomcolor": "^0.6.2", + "resize-observer-polyfill": "^1.5.1", "rollup": "^2.3.4", "rollup-plugin-copy": "^3.3.0", "rollup-plugin-css-only": "^3.1.0", @@ -40,15 +43,11 @@ "sql-formatter": "^2.3.3", "svelte": "^3.35.0", "svelte-check": "^1.0.0", + "svelte-markdown": "^0.1.4", "svelte-preprocess": "^4.0.0", + "svelte-select": "^3.17.0", "tslib": "^2.0.0", "typescript": "^3.9.3", - "uuid": "^3.4.0", - "@mdi/font": "^5.9.55", - "file-selector": "^0.2.4", - "resize-observer-polyfill": "^1.5.1", - "svelte-json-tree": "^0.1.0", - "svelte-markdown": "^0.1.4", - "svelte-select": "^3.17.0" + "uuid": "^3.4.0" } -} \ No newline at end of file +} diff --git a/packages/web/src/celldata/JsonCellView.svelte b/packages/web/src/celldata/JsonCellView.svelte index 9d00e59a9..81084335f 100644 --- a/packages/web/src/celldata/JsonCellView.svelte +++ b/packages/web/src/celldata/JsonCellView.svelte @@ -1,7 +1,7 @@ + +
  • + {#if isParentExpanded} + + {/if} + + Error: {expanded?'':value.message} + {#if isParentExpanded} +
      + {#if expanded} + +
    • + + + {#each stack as line, index} + 0}>{line}
      + {/each} +
      +
    • + {/if} +
    + {/if} +
  • \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONArrayNode.svelte b/packages/web/src/json-tree/JSONArrayNode.svelte new file mode 100644 index 000000000..a5429ae8f --- /dev/null +++ b/packages/web/src/json-tree/JSONArrayNode.svelte @@ -0,0 +1,28 @@ + + \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONArrow.svelte b/packages/web/src/json-tree/JSONArrow.svelte new file mode 100644 index 000000000..7dfbcf1af --- /dev/null +++ b/packages/web/src/json-tree/JSONArrow.svelte @@ -0,0 +1,31 @@ + + + +
    +
    {'\u25B6'}
    +
    \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONIterableArrayNode.svelte b/packages/web/src/json-tree/JSONIterableArrayNode.svelte new file mode 100644 index 000000000..927455bce --- /dev/null +++ b/packages/web/src/json-tree/JSONIterableArrayNode.svelte @@ -0,0 +1,35 @@ + + \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONIterableMapNode.svelte b/packages/web/src/json-tree/JSONIterableMapNode.svelte new file mode 100644 index 000000000..907ee0326 --- /dev/null +++ b/packages/web/src/json-tree/JSONIterableMapNode.svelte @@ -0,0 +1,35 @@ + + diff --git a/packages/web/src/json-tree/JSONKey.svelte b/packages/web/src/json-tree/JSONKey.svelte new file mode 100644 index 000000000..027e6c21f --- /dev/null +++ b/packages/web/src/json-tree/JSONKey.svelte @@ -0,0 +1,20 @@ + + +{#if showKey && key} + +{/if} \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONMapEntryNode.svelte b/packages/web/src/json-tree/JSONMapEntryNode.svelte new file mode 100644 index 000000000..cccd283fa --- /dev/null +++ b/packages/web/src/json-tree/JSONMapEntryNode.svelte @@ -0,0 +1,23 @@ + + '} + bracketOpen={'{'} + bracketClose={'}'} +/> \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONNested.svelte b/packages/web/src/json-tree/JSONNested.svelte new file mode 100644 index 000000000..61c816a77 --- /dev/null +++ b/packages/web/src/json-tree/JSONNested.svelte @@ -0,0 +1,79 @@ + + +
  • + + {#if isParentExpanded} +
      + {#each slicedKeys as key, index} + + {#if !expanded && index < previewKeys.length - 1} + , + {/if} + {/each} + {#if slicedKeys.length < previewKeys.length } + + {/if} +
    + {:else} + + {/if} + {bracketClose} +
  • \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONNode.svelte b/packages/web/src/json-tree/JSONNode.svelte new file mode 100644 index 000000000..f42a756d7 --- /dev/null +++ b/packages/web/src/json-tree/JSONNode.svelte @@ -0,0 +1,65 @@ + + + \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONObjectNode.svelte b/packages/web/src/json-tree/JSONObjectNode.svelte new file mode 100644 index 000000000..b17aadf40 --- /dev/null +++ b/packages/web/src/json-tree/JSONObjectNode.svelte @@ -0,0 +1,24 @@ + + \ No newline at end of file diff --git a/packages/web/src/json-tree/JSONTree.svelte b/packages/web/src/json-tree/JSONTree.svelte new file mode 100644 index 000000000..7d3e6cfde --- /dev/null +++ b/packages/web/src/json-tree/JSONTree.svelte @@ -0,0 +1,40 @@ + + +
      + +
    diff --git a/packages/web/src/json-tree/JSONValueNode.svelte b/packages/web/src/json-tree/JSONValueNode.svelte new file mode 100644 index 000000000..c996f1b2a --- /dev/null +++ b/packages/web/src/json-tree/JSONValueNode.svelte @@ -0,0 +1,51 @@ + + +
  • + + + {valueGetter ? valueGetter(value) : value} + +
  • \ No newline at end of file diff --git a/packages/web/src/json-tree/context.js b/packages/web/src/json-tree/context.js new file mode 100644 index 000000000..7c645e42f --- /dev/null +++ b/packages/web/src/json-tree/context.js @@ -0,0 +1 @@ +export default {}; \ No newline at end of file diff --git a/packages/web/src/json-tree/objType.js b/packages/web/src/json-tree/objType.js new file mode 100644 index 000000000..d644fab58 --- /dev/null +++ b/packages/web/src/json-tree/objType.js @@ -0,0 +1,11 @@ +export default function objType(obj) { + const type = Object.prototype.toString.call(obj).slice(8, -1); + if (type === 'Object') { + if (typeof obj[Symbol.iterator] === 'function') { + return 'Iterable'; + } + return obj.constructor.name; + } + + return type; +} diff --git a/packages/web/src/json-tree/utils/MapEntry.js b/packages/web/src/json-tree/utils/MapEntry.js new file mode 100644 index 000000000..5a3a216ee --- /dev/null +++ b/packages/web/src/json-tree/utils/MapEntry.js @@ -0,0 +1,6 @@ +export default class MapEntry { + constructor(key, value) { + this.key = key; + this.value = value; + } +} diff --git a/yarn.lock b/yarn.lock index aeed68231..c5b3edb4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2068,6 +2068,13 @@ date-fns@^2.0.1: resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.9.0.tgz#d0b175a5c37ed5f17b97e2272bbc1fa5aec677d2" integrity sha512-khbFLu/MlzLjEzy9Gh8oY1hNt/Dvxw3J6Rbc28cVoYWQaC1S3YI4xwkF9ZWcjDLscbZlY9hISMr66RFzZagLsA== +dbgate-tools@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/dbgate-tools/-/dbgate-tools-4.0.2.tgz#927e0e100fed7331750c1969f19f3e824e700d0f" + integrity sha512-A3gjsf25CPMwALHe3jCzViblY3xZYfYC+bFKArG0gp6LxnYYEqc7EvJtO1p+TVAawCwoM/OJLqkOSSQtGnTg5A== + dependencies: + lodash "^4.17.15" + debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -7017,11 +7024,6 @@ svelte-check@^1.0.0: svelte-preprocess "^4.0.0" typescript "*" -svelte-json-tree@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/svelte-json-tree/-/svelte-json-tree-0.1.0.tgz#2711e36162046a10766dfbef69739168a5eaafa6" - integrity sha512-ufKWvS94z5m6Je9Hu0yosvdALy0mOPcaexbTcQQ/jW+3Rzi4oaHkOeg4RQ3cNpOlOQlIs0lfsF9FBlyquZ7XuQ== - svelte-markdown@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/svelte-markdown/-/svelte-markdown-0.1.4.tgz#03bec6dcd8ff1c09126e7c62c8a5a481905881d7"