sqlite-wasm-viewer 1.0.13 → 1.1.1
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/dist/DbViewerWorker.js +0 -1
- package/dist/DbWorker.js +11 -1
- package/dist/ListVirtualizer.js +7 -0
- package/dist/QueryRunner.js +21 -24
- package/dist/bus.js +47 -0
- package/dist/dbWorkerConnector.js +63 -0
- package/dist/index.js +7 -109
- package/dist/state.js +37 -0
- package/dist/viewer.js +76 -0
- package/dist/views/EditCellView/EditCellView.js +23 -17
- package/dist/views/ExecuteSQLView/ExecuteSQLView.js +6 -9
- package/dist/views/ExplorerView/ExplorerView.js +32 -16
- package/dist/views/SqlLogView/SqlLogView.js +14 -5
- package/dist/views/TableView/TableView.js +74 -42
- package/package.json +1 -1
package/dist/DbViewerWorker.js
CHANGED
package/dist/DbWorker.js
CHANGED
|
@@ -3,5 +3,15 @@
|
|
|
3
3
|
var _DbViewerWorker = require("./DbViewerWorker");
|
|
4
4
|
var dbWorker = new _DbViewerWorker.DbViewerWorker();
|
|
5
5
|
onmessage = function onmessage(message) {
|
|
6
|
-
|
|
6
|
+
try {
|
|
7
|
+
dbWorker.post(message);
|
|
8
|
+
} catch (e) {
|
|
9
|
+
if (message.data.type === 'query') {
|
|
10
|
+
postMessage({
|
|
11
|
+
type: 'error',
|
|
12
|
+
sql: message.data.query.sql,
|
|
13
|
+
errorMsg: e.toString()
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
7
17
|
};
|
package/dist/ListVirtualizer.js
CHANGED
|
@@ -84,6 +84,13 @@ var ListVirtualizer = /*#__PURE__*/function () {
|
|
|
84
84
|
first = first < 0 ? 0 : first;
|
|
85
85
|
this.renderChunk(first);
|
|
86
86
|
}
|
|
87
|
+
}, {
|
|
88
|
+
key: "update",
|
|
89
|
+
value: function update() {
|
|
90
|
+
var first = Math.ceil(this.scrollTop / this.itemHeight - this.screenItemsLen);
|
|
91
|
+
first = first < 0 ? 0 : first;
|
|
92
|
+
this.renderChunk(first);
|
|
93
|
+
}
|
|
87
94
|
}]);
|
|
88
95
|
return ListVirtualizer;
|
|
89
96
|
}();
|
package/dist/QueryRunner.js
CHANGED
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.QueryRunner = void 0;
|
|
7
|
-
var
|
|
6
|
+
exports.queryRunner = exports.QueryRunner = void 0;
|
|
7
|
+
var Bus = _interopRequireWildcard(require("./bus"));
|
|
8
|
+
var _state = require("./state");
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
8
11
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
9
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
13
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -12,41 +15,35 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
12
15
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
16
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
17
|
var QueryRunner = /*#__PURE__*/function () {
|
|
15
|
-
function QueryRunner(
|
|
18
|
+
function QueryRunner() {
|
|
19
|
+
var _this = this;
|
|
16
20
|
_classCallCheck(this, QueryRunner);
|
|
17
|
-
|
|
18
|
-
|
|
21
|
+
Bus.listen('db-connector-ready', function (db) {
|
|
22
|
+
_this.db = db;
|
|
23
|
+
Bus.emit('query-runner-ready', true);
|
|
24
|
+
});
|
|
19
25
|
}
|
|
20
26
|
_createClass(QueryRunner, [{
|
|
21
27
|
key: "runQuery",
|
|
22
28
|
value: function runQuery(query, label) {
|
|
23
|
-
|
|
24
|
-
|
|
29
|
+
if (!this.db) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
var currentTable = (0, _state.selectedTable)();
|
|
33
|
+
if (!currentTable) {
|
|
25
34
|
return;
|
|
26
35
|
}
|
|
27
36
|
this.db.post({
|
|
28
37
|
type: 'query',
|
|
29
38
|
query: query,
|
|
30
|
-
databasePath:
|
|
39
|
+
databasePath: currentTable.databasePath,
|
|
31
40
|
label: label
|
|
32
41
|
});
|
|
33
|
-
|
|
34
|
-
listener(query);
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
}, {
|
|
38
|
-
key: "addListener",
|
|
39
|
-
value: function addListener(listener) {
|
|
40
|
-
var _this = this;
|
|
41
|
-
if (this.listeners.indexOf(listener) !== -1) {
|
|
42
|
-
throw new Error('Listener is already added');
|
|
43
|
-
}
|
|
44
|
-
this.listeners.push(listener);
|
|
45
|
-
return function () {
|
|
46
|
-
_this.listeners.splice(_this.listeners.indexOf(listener), 1);
|
|
47
|
-
};
|
|
42
|
+
Bus.emit('query-run', query);
|
|
48
43
|
}
|
|
49
44
|
}]);
|
|
50
45
|
return QueryRunner;
|
|
51
46
|
}();
|
|
52
|
-
exports.QueryRunner = QueryRunner;
|
|
47
|
+
exports.QueryRunner = QueryRunner;
|
|
48
|
+
var queryRunner = new QueryRunner();
|
|
49
|
+
exports.queryRunner = queryRunner;
|
package/dist/bus.js
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.emit = emit;
|
|
7
|
+
exports.listen = listen;
|
|
8
|
+
exports.remove = remove;
|
|
9
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
|
10
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
11
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
12
|
+
var _listeners = {};
|
|
13
|
+
function listen(type, listener) {
|
|
14
|
+
var listeners = _listeners[type];
|
|
15
|
+
if (!listeners) {
|
|
16
|
+
listeners = _listeners[type] = [];
|
|
17
|
+
}
|
|
18
|
+
listeners.push(listener);
|
|
19
|
+
}
|
|
20
|
+
function remove(type, listener) {
|
|
21
|
+
var listeners = _listeners[type];
|
|
22
|
+
if (!listeners) {
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
var idx = listeners.indexOf(listener);
|
|
26
|
+
if (idx >= 0) {
|
|
27
|
+
listeners.splice(idx, 1);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
function emit(type, event) {
|
|
31
|
+
var listeners = _listeners[type];
|
|
32
|
+
if (!listeners) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
var _iterator = _createForOfIteratorHelper(listeners),
|
|
36
|
+
_step;
|
|
37
|
+
try {
|
|
38
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
39
|
+
var listener = _step.value;
|
|
40
|
+
listener(event);
|
|
41
|
+
}
|
|
42
|
+
} catch (err) {
|
|
43
|
+
_iterator.e(err);
|
|
44
|
+
} finally {
|
|
45
|
+
_iterator.f();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.connectToWorker = connectToWorker;
|
|
8
|
+
var _dbScanner = require("./dbScanner");
|
|
9
|
+
var Bus = _interopRequireWildcard(require("./bus"));
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
function connectToWorker(config) {
|
|
13
|
+
var worker = new Worker(new URL('./DbWorker', import.meta.url), {
|
|
14
|
+
type: 'module'
|
|
15
|
+
});
|
|
16
|
+
var collectDbFilesPromise = (0, _dbScanner.collectDbFiles)(config.isSqliteDatabase);
|
|
17
|
+
var dbs = {};
|
|
18
|
+
worker.onmessage = function (message) {
|
|
19
|
+
if (message.data.type === 'onReady') {
|
|
20
|
+
var db = {
|
|
21
|
+
post: function post(mess) {
|
|
22
|
+
worker.postMessage(mess);
|
|
23
|
+
},
|
|
24
|
+
on: function on(mess) {
|
|
25
|
+
var _worker$onmessage;
|
|
26
|
+
(_worker$onmessage = worker.onmessage) === null || _worker$onmessage === void 0 ? void 0 : _worker$onmessage.call(worker, mess);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
Bus.emit('db-connector-ready', db);
|
|
30
|
+
collectDbFilesPromise.then(function (dbFiles) {
|
|
31
|
+
dbFiles.forEach(function (dbFile) {
|
|
32
|
+
var dbFilepath = dbFile;
|
|
33
|
+
var dbName = dbFile;
|
|
34
|
+
dbs[dbFilepath] = {
|
|
35
|
+
filename: dbName,
|
|
36
|
+
tables: []
|
|
37
|
+
};
|
|
38
|
+
worker.postMessage({
|
|
39
|
+
type: 'readSchema',
|
|
40
|
+
path: dbFile
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
} else if (message.data.type === 'onSchema') {
|
|
45
|
+
var tables = message.data.schema.map(function (tableSchema) {
|
|
46
|
+
return tableSchema[0];
|
|
47
|
+
});
|
|
48
|
+
dbs[message.data.dbName].tables = tables;
|
|
49
|
+
Bus.emit('db-found', dbs[message.data.dbName]);
|
|
50
|
+
} else if (message.data.type === 'onQuery') {
|
|
51
|
+
Bus.emit('query-results', message.data);
|
|
52
|
+
} else if (message.data.type === 'error') {
|
|
53
|
+
Bus.emit('query-run', {
|
|
54
|
+
sql: message.data.sql,
|
|
55
|
+
errorMsg: message.data.errorMsg,
|
|
56
|
+
parameters: []
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
worker.postMessage({
|
|
61
|
+
type: 'init'
|
|
62
|
+
});
|
|
63
|
+
}
|
package/dist/index.js
CHANGED
|
@@ -8,22 +8,8 @@ exports.hideViewer = hideViewer;
|
|
|
8
8
|
exports.setConfig = setConfig;
|
|
9
9
|
exports.showViewer = showViewer;
|
|
10
10
|
require("./styles.css");
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var _QueryRunner = require("./QueryRunner");
|
|
14
|
-
var _SqlLogView = require("./views/SqlLogView/SqlLogView");
|
|
15
|
-
var _ExplorerView = require("./views/ExplorerView/ExplorerView");
|
|
16
|
-
var _dbScanner = require("./dbScanner");
|
|
17
|
-
var _EditCellView = require("./views/EditCellView/EditCellView");
|
|
18
|
-
var _viewerState = require("./viewerState");
|
|
19
|
-
var _resizeHandler = require("./utils/resizeHandler");
|
|
20
|
-
var viewer = null;
|
|
21
|
-
var dbListEl = null;
|
|
22
|
-
var tableViewer = null;
|
|
23
|
-
var middlePanel = null;
|
|
24
|
-
var rightPanel = null;
|
|
25
|
-
var explorerView = null;
|
|
26
|
-
var queryRunner = null;
|
|
11
|
+
var _viewer2 = require("./viewer");
|
|
12
|
+
var _viewer;
|
|
27
13
|
var defaultSqliteExtension = ['db', 'sqlite'];
|
|
28
14
|
function defaultIsSqliteDatabase(filename) {
|
|
29
15
|
return defaultSqliteExtension.some(function (ext) {
|
|
@@ -40,103 +26,15 @@ function setConfig(userConfig) {
|
|
|
40
26
|
Object.freeze(config);
|
|
41
27
|
}
|
|
42
28
|
function showViewer() {
|
|
43
|
-
if (!
|
|
44
|
-
|
|
45
|
-
viewer.id = 'viewer';
|
|
46
|
-
(0, _viewerState.initState)(viewer);
|
|
47
|
-
var closeBtn = document.createElement('div');
|
|
48
|
-
closeBtn.id = 'close_btn';
|
|
49
|
-
closeBtn.innerText = 'Close';
|
|
50
|
-
closeBtn.onclick = function () {
|
|
29
|
+
if (!_viewer) {
|
|
30
|
+
_viewer = new _viewer2.Viewer(config, function () {
|
|
51
31
|
hideViewer();
|
|
52
|
-
};
|
|
53
|
-
viewer.appendChild(closeBtn);
|
|
54
|
-
|
|
55
|
-
// Left Panel
|
|
56
|
-
dbListEl = document.createElement('div');
|
|
57
|
-
dbListEl.id = 'db_list';
|
|
58
|
-
viewer.appendChild(dbListEl);
|
|
59
|
-
|
|
60
|
-
// Middle Panel
|
|
61
|
-
middlePanel = document.createElement('div');
|
|
62
|
-
middlePanel.id = 'middle_panel';
|
|
63
|
-
var listResizeHandlerEl = (0, _resizeHandler.createResizeHandler)(dbListEl, middlePanel, true, viewer);
|
|
64
|
-
viewer.appendChild(listResizeHandlerEl);
|
|
65
|
-
var tableViewEl = document.createElement('div');
|
|
66
|
-
tableViewEl.id = 'table_view';
|
|
67
|
-
middlePanel.appendChild(tableViewEl);
|
|
68
|
-
viewer.append(middlePanel);
|
|
69
|
-
|
|
70
|
-
// Right Panel
|
|
71
|
-
rightPanel = document.createElement('div');
|
|
72
|
-
rightPanel.id = 'right_panel';
|
|
73
|
-
var executeSqlView = new _ExecuteSQLView.ExecuteSQLView(rightPanel);
|
|
74
|
-
var editCellView = new _EditCellView.EditCellView(viewer, rightPanel);
|
|
75
|
-
var rightPanelResizeHandlerEl = (0, _resizeHandler.createResizeHandler)(middlePanel, rightPanel, false, viewer);
|
|
76
|
-
viewer.appendChild(rightPanelResizeHandlerEl);
|
|
77
|
-
viewer.append(rightPanel);
|
|
78
|
-
var worker = new Worker(new URL('./DbWorker', import.meta.url), {
|
|
79
|
-
type: 'module'
|
|
80
|
-
});
|
|
81
|
-
explorerView = new _ExplorerView.ExplorerView(dbListEl, viewer);
|
|
82
|
-
var collectDbFilesPromise = (0, _dbScanner.collectDbFiles)(config.isSqliteDatabase);
|
|
83
|
-
var dbs = {};
|
|
84
|
-
worker.onmessage = function (message) {
|
|
85
|
-
if (message.data.type === 'onReady') {
|
|
86
|
-
collectDbFilesPromise.then(function (dbFiles) {
|
|
87
|
-
dbFiles.forEach(function (dbFile) {
|
|
88
|
-
var dbFilepath = dbFile;
|
|
89
|
-
var dbName = dbFile;
|
|
90
|
-
dbs[dbFilepath] = {
|
|
91
|
-
filename: dbName,
|
|
92
|
-
tables: []
|
|
93
|
-
};
|
|
94
|
-
worker.postMessage({
|
|
95
|
-
type: 'readSchema',
|
|
96
|
-
path: dbFile
|
|
97
|
-
});
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
} else if (message.data.type === 'onSchema') {
|
|
101
|
-
var _explorerView;
|
|
102
|
-
var tables = message.data.schema.map(function (tableSchema) {
|
|
103
|
-
return tableSchema[0];
|
|
104
|
-
});
|
|
105
|
-
dbs[message.data.dbName].tables = tables;
|
|
106
|
-
(_explorerView = explorerView) === null || _explorerView === void 0 ? void 0 : _explorerView.addDatabaseItem(dbs[message.data.dbName]);
|
|
107
|
-
} else if (message.data.type === 'onQuery') {
|
|
108
|
-
if (message.data.label === 'tableViewColumns') {
|
|
109
|
-
var _tableViewer;
|
|
110
|
-
(_tableViewer = tableViewer) === null || _tableViewer === void 0 ? void 0 : _tableViewer.setTableColumns(message.data.result.resultRows || []);
|
|
111
|
-
}
|
|
112
|
-
if (message.data.label === 'tableView') {
|
|
113
|
-
var _tableViewer2;
|
|
114
|
-
(_tableViewer2 = tableViewer) === null || _tableViewer2 === void 0 ? void 0 : _tableViewer2.setTableResults(message.data.result.resultRows || []);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
};
|
|
118
|
-
var db = {
|
|
119
|
-
post: function post(message) {
|
|
120
|
-
worker.postMessage(message);
|
|
121
|
-
},
|
|
122
|
-
on: function on(message) {
|
|
123
|
-
var _worker$onmessage;
|
|
124
|
-
(_worker$onmessage = worker.onmessage) === null || _worker$onmessage === void 0 ? void 0 : _worker$onmessage.call(worker, message);
|
|
125
|
-
}
|
|
126
|
-
};
|
|
127
|
-
queryRunner = new _QueryRunner.QueryRunner(db);
|
|
128
|
-
(0, _SqlLogView.initSqlLogView)(rightPanel, queryRunner);
|
|
129
|
-
tableViewer = new _TableView.TableView(viewer, tableViewEl, queryRunner);
|
|
130
|
-
executeSqlView.setDb(queryRunner);
|
|
131
|
-
editCellView.setDb(queryRunner);
|
|
132
|
-
worker.postMessage({
|
|
133
|
-
type: 'init'
|
|
134
32
|
});
|
|
135
33
|
}
|
|
136
|
-
document.body.appendChild(
|
|
34
|
+
document.body.appendChild(_viewer.element);
|
|
137
35
|
}
|
|
138
36
|
function hideViewer() {
|
|
139
|
-
if (
|
|
140
|
-
document.body.removeChild(
|
|
37
|
+
if (_viewer) {
|
|
38
|
+
document.body.removeChild(_viewer.element);
|
|
141
39
|
}
|
|
142
40
|
}
|
package/dist/state.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.isDirty = isDirty;
|
|
8
|
+
exports.selectCell = selectCell;
|
|
9
|
+
exports.selectTable = selectTable;
|
|
10
|
+
exports.selectedTable = selectedTable;
|
|
11
|
+
exports.setDirty = setDirty;
|
|
12
|
+
var Bus = _interopRequireWildcard(require("./bus"));
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
14
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
15
|
+
var _state = {
|
|
16
|
+
selectedCell: null,
|
|
17
|
+
selectedTable: null,
|
|
18
|
+
dirty: false
|
|
19
|
+
};
|
|
20
|
+
function selectedTable() {
|
|
21
|
+
return _state.selectedTable;
|
|
22
|
+
}
|
|
23
|
+
function isDirty() {
|
|
24
|
+
return _state.dirty;
|
|
25
|
+
}
|
|
26
|
+
function selectCell(cell) {
|
|
27
|
+
_state.selectedCell = cell;
|
|
28
|
+
Bus.emit('cell-selected', cell);
|
|
29
|
+
}
|
|
30
|
+
function selectTable(table) {
|
|
31
|
+
_state.selectedTable = table;
|
|
32
|
+
Bus.emit('table-selected', table);
|
|
33
|
+
}
|
|
34
|
+
function setDirty(dirty) {
|
|
35
|
+
_state.dirty = dirty;
|
|
36
|
+
Bus.emit('db-dirtied', dirty);
|
|
37
|
+
}
|
package/dist/viewer.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Viewer = void 0;
|
|
7
|
+
var _dbWorkerConnector = require("./dbWorkerConnector");
|
|
8
|
+
var _resizeHandler = require("./utils/resizeHandler");
|
|
9
|
+
var _EditCellView = require("./views/EditCellView/EditCellView");
|
|
10
|
+
var _ExecuteSQLView = require("./views/ExecuteSQLView/ExecuteSQLView");
|
|
11
|
+
var _ExplorerView = require("./views/ExplorerView/ExplorerView");
|
|
12
|
+
var _SqlLogView = require("./views/SqlLogView/SqlLogView");
|
|
13
|
+
var _TableView = require("./views/TableView/TableView");
|
|
14
|
+
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
15
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
16
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
17
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
18
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
19
|
+
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
20
|
+
var Viewer = /*#__PURE__*/function () {
|
|
21
|
+
function Viewer(config, onClickClose) {
|
|
22
|
+
_classCallCheck(this, Viewer);
|
|
23
|
+
this.onClickClose = onClickClose;
|
|
24
|
+
this.createElements();
|
|
25
|
+
(0, _dbWorkerConnector.connectToWorker)(config);
|
|
26
|
+
}
|
|
27
|
+
_createClass(Viewer, [{
|
|
28
|
+
key: "createElements",
|
|
29
|
+
value: function createElements() {
|
|
30
|
+
var _this = this;
|
|
31
|
+
this._container = document.createElement('div');
|
|
32
|
+
this._container.id = 'viewer';
|
|
33
|
+
var closeBtn = document.createElement('div');
|
|
34
|
+
closeBtn.id = 'close_btn';
|
|
35
|
+
closeBtn.innerText = 'Close';
|
|
36
|
+
closeBtn.onclick = function () {
|
|
37
|
+
_this.onClickClose();
|
|
38
|
+
};
|
|
39
|
+
this._container.appendChild(closeBtn);
|
|
40
|
+
|
|
41
|
+
// Left Panel
|
|
42
|
+
var leftPanel = document.createElement('div');
|
|
43
|
+
leftPanel.id = 'db_list';
|
|
44
|
+
(0, _ExplorerView.createExplorerView)(leftPanel, this._container);
|
|
45
|
+
this._container.appendChild(leftPanel);
|
|
46
|
+
|
|
47
|
+
// Middle Panel
|
|
48
|
+
var middlePanel = document.createElement('div');
|
|
49
|
+
middlePanel.id = 'middle_panel';
|
|
50
|
+
var listResizeHandlerEl = (0, _resizeHandler.createResizeHandler)(leftPanel, middlePanel, true, this._container);
|
|
51
|
+
this._container.appendChild(listResizeHandlerEl);
|
|
52
|
+
var tableViewEl = document.createElement('div');
|
|
53
|
+
tableViewEl.id = 'table_view';
|
|
54
|
+
middlePanel.appendChild(tableViewEl);
|
|
55
|
+
(0, _TableView.createTableView)(tableViewEl);
|
|
56
|
+
this._container.append(middlePanel);
|
|
57
|
+
|
|
58
|
+
// Right Panel
|
|
59
|
+
var rightPanel = document.createElement('div');
|
|
60
|
+
rightPanel.id = 'right_panel';
|
|
61
|
+
var rightPanelResizeHandlerEl = (0, _resizeHandler.createResizeHandler)(middlePanel, rightPanel, false, this._container);
|
|
62
|
+
this._container.appendChild(rightPanelResizeHandlerEl);
|
|
63
|
+
(0, _EditCellView.createEditCellView)(rightPanel);
|
|
64
|
+
(0, _ExecuteSQLView.createSQLExecutorView)(rightPanel);
|
|
65
|
+
(0, _SqlLogView.createSqlLogView)(rightPanel);
|
|
66
|
+
this._container.append(rightPanel);
|
|
67
|
+
}
|
|
68
|
+
}, {
|
|
69
|
+
key: "element",
|
|
70
|
+
get: function get() {
|
|
71
|
+
return this._container;
|
|
72
|
+
}
|
|
73
|
+
}]);
|
|
74
|
+
return Viewer;
|
|
75
|
+
}();
|
|
76
|
+
exports.Viewer = Viewer;
|
|
@@ -4,8 +4,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.EditCellView = void 0;
|
|
7
|
-
|
|
7
|
+
exports.createEditCellView = createEditCellView;
|
|
8
|
+
var Bus = _interopRequireWildcard(require("../../bus"));
|
|
9
|
+
var _QueryRunner = require("../../QueryRunner");
|
|
10
|
+
var _state = require("../../state");
|
|
8
11
|
require("./styles.css");
|
|
12
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
13
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
9
14
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
10
15
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
16
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -13,14 +18,12 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
13
18
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
14
19
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
15
20
|
var EditCellView = /*#__PURE__*/function () {
|
|
16
|
-
function EditCellView(
|
|
21
|
+
function EditCellView(rootEl) {
|
|
17
22
|
var _this = this;
|
|
18
23
|
_classCallCheck(this, EditCellView);
|
|
19
|
-
this.viewerElem = viewerElem;
|
|
20
24
|
this.rootEl = rootEl;
|
|
21
25
|
this.buildDom();
|
|
22
|
-
|
|
23
|
-
var cell = event.detail;
|
|
26
|
+
Bus.listen('cell-selected', function (cell) {
|
|
24
27
|
_this.currentCell = cell;
|
|
25
28
|
_this.textArea.value = cell.value;
|
|
26
29
|
_this.textArea.select();
|
|
@@ -48,27 +51,30 @@ var EditCellView = /*#__PURE__*/function () {
|
|
|
48
51
|
key: "handleApplyEdit",
|
|
49
52
|
value: function handleApplyEdit() {
|
|
50
53
|
if (this.textArea.value) {
|
|
51
|
-
var _this$
|
|
52
|
-
if (!
|
|
53
|
-
|
|
54
|
-
(_this$queryRunner = this.queryRunner) === null || _this$queryRunner === void 0 ? void 0 : _this$queryRunner.runQuery({
|
|
54
|
+
var _this$currentCell, _this$currentCell2, _this$currentCell3;
|
|
55
|
+
if (!(0, _state.isDirty)()) {
|
|
56
|
+
_QueryRunner.queryRunner.runQuery({
|
|
55
57
|
sql: 'SAVEPOINT "RESTOREPOINT"',
|
|
56
58
|
parameters: []
|
|
57
59
|
});
|
|
58
60
|
}
|
|
59
|
-
|
|
61
|
+
_QueryRunner.queryRunner.runQuery({
|
|
60
62
|
sql: "UPDATE ".concat((_this$currentCell = this.currentCell) === null || _this$currentCell === void 0 ? void 0 : _this$currentCell.tableName, " SET \"").concat((_this$currentCell2 = this.currentCell) === null || _this$currentCell2 === void 0 ? void 0 : _this$currentCell2.columnName, "\"=? WHERE \"_rowid_\"='").concat((_this$currentCell3 = this.currentCell) === null || _this$currentCell3 === void 0 ? void 0 : _this$currentCell3.cellRowId, "'"),
|
|
61
63
|
parameters: [this.textArea.value]
|
|
62
64
|
});
|
|
63
|
-
|
|
65
|
+
if (this.currentCell) {
|
|
66
|
+
Bus.emit('cell-edited', {
|
|
67
|
+
cell: this.currentCell,
|
|
68
|
+
value: this.textArea.value
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
(0, _state.setDirty)(true);
|
|
64
72
|
}
|
|
65
73
|
}
|
|
66
|
-
}, {
|
|
67
|
-
key: "setDb",
|
|
68
|
-
value: function setDb(queryRunner) {
|
|
69
|
-
this.queryRunner = queryRunner;
|
|
70
|
-
}
|
|
71
74
|
}]);
|
|
72
75
|
return EditCellView;
|
|
73
76
|
}();
|
|
74
|
-
exports.EditCellView = EditCellView;
|
|
77
|
+
exports.EditCellView = EditCellView;
|
|
78
|
+
function createEditCellView(rootEl) {
|
|
79
|
+
return new EditCellView(rootEl);
|
|
80
|
+
}
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createSQLExecutorView = createSQLExecutorView;
|
|
7
|
+
var _QueryRunner = require("../../QueryRunner");
|
|
7
8
|
require("./styles.css");
|
|
8
9
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
9
10
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
@@ -39,19 +40,15 @@ var ExecuteSQLView = /*#__PURE__*/function () {
|
|
|
39
40
|
key: "handleExecuteSql",
|
|
40
41
|
value: function handleExecuteSql() {
|
|
41
42
|
if (this.textArea.value) {
|
|
42
|
-
|
|
43
|
-
(_this$queryRunner = this.queryRunner) === null || _this$queryRunner === void 0 ? void 0 : _this$queryRunner.runQuery({
|
|
43
|
+
_QueryRunner.queryRunner.runQuery({
|
|
44
44
|
sql: this.textArea.value,
|
|
45
45
|
parameters: []
|
|
46
46
|
});
|
|
47
47
|
}
|
|
48
48
|
}
|
|
49
|
-
}, {
|
|
50
|
-
key: "setDb",
|
|
51
|
-
value: function setDb(queryRunner) {
|
|
52
|
-
this.queryRunner = queryRunner;
|
|
53
|
-
}
|
|
54
49
|
}]);
|
|
55
50
|
return ExecuteSQLView;
|
|
56
51
|
}();
|
|
57
|
-
|
|
52
|
+
function createSQLExecutorView(rootEl) {
|
|
53
|
+
return new ExecuteSQLView(rootEl);
|
|
54
|
+
}
|
|
@@ -4,8 +4,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.ExplorerView = void 0;
|
|
7
|
-
|
|
7
|
+
exports.createExplorerView = createExplorerView;
|
|
8
|
+
var Bus = _interopRequireWildcard(require("../../bus"));
|
|
9
|
+
var _state = require("../../state");
|
|
8
10
|
require("./styles.css");
|
|
11
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
12
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
9
13
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
10
14
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
15
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -16,11 +20,15 @@ function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input ==
|
|
|
16
20
|
var EXPANDED_EXPLORER_ITEMS_KEY = 'expanded_explorer_items';
|
|
17
21
|
var ExplorerView = /*#__PURE__*/function () {
|
|
18
22
|
function ExplorerView(rootEl, viewEl) {
|
|
19
|
-
var
|
|
23
|
+
var _this = this,
|
|
24
|
+
_localStorage$getItem;
|
|
20
25
|
_classCallCheck(this, ExplorerView);
|
|
21
26
|
_defineProperty(this, "expandedItems", {});
|
|
22
27
|
_defineProperty(this, "selectedItem", null);
|
|
23
28
|
_defineProperty(this, "showFullItemLabelTimeout", 0);
|
|
29
|
+
Bus.listen('db-found', function (table) {
|
|
30
|
+
_this.addDatabaseItem(table);
|
|
31
|
+
});
|
|
24
32
|
this.dbs = [];
|
|
25
33
|
this.scheduleShowFullItemLabel = this.scheduleShowFullItemLabel.bind(this);
|
|
26
34
|
this.hideFullItemLabel = this.hideFullItemLabel.bind(this);
|
|
@@ -52,16 +60,16 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
52
60
|
}, {
|
|
53
61
|
key: "buildDom",
|
|
54
62
|
value: function buildDom() {
|
|
55
|
-
var
|
|
63
|
+
var _this2 = this;
|
|
56
64
|
this.containerEl.innerHTML = '';
|
|
57
65
|
this.dbs.forEach(function (db) {
|
|
58
|
-
|
|
66
|
+
_this2.buildDbGroupDom(db);
|
|
59
67
|
});
|
|
60
68
|
}
|
|
61
69
|
}, {
|
|
62
70
|
key: "buildDbGroupDom",
|
|
63
71
|
value: function buildDbGroupDom(db) {
|
|
64
|
-
var
|
|
72
|
+
var _this3 = this;
|
|
65
73
|
var dbRoot = document.createDocumentFragment();
|
|
66
74
|
var dbItem = document.createElement('div');
|
|
67
75
|
this.setupCommonItemDom(dbItem);
|
|
@@ -74,7 +82,7 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
74
82
|
this.buildExpandArrowDom(dbItem, tablesContainer, db, isExpanded);
|
|
75
83
|
dbRoot.appendChild(dbItem);
|
|
76
84
|
db.tables.forEach(function (table) {
|
|
77
|
-
|
|
85
|
+
_this3.buildTableDom(tablesContainer, table, db);
|
|
78
86
|
});
|
|
79
87
|
tablesContainer.style.display = isExpanded ? 'block' : 'none';
|
|
80
88
|
dbRoot.appendChild(tablesContainer);
|
|
@@ -83,7 +91,7 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
83
91
|
}, {
|
|
84
92
|
key: "buildExpandArrowDom",
|
|
85
93
|
value: function buildExpandArrowDom(itemElem, tablesContainer, db, isExpanded) {
|
|
86
|
-
var
|
|
94
|
+
var _this4 = this;
|
|
87
95
|
var expandArrow = document.createElement('div');
|
|
88
96
|
expandArrow.className = 'expand';
|
|
89
97
|
expandArrow.innerHTML = '▸';
|
|
@@ -92,24 +100,24 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
92
100
|
expandArrow.classList.add('expanded');
|
|
93
101
|
}
|
|
94
102
|
expandArrow.onclick = function () {
|
|
95
|
-
|
|
96
|
-
tablesContainer.style.display =
|
|
103
|
+
_this4.expandedItems[db.filename] = !_this4.expandedItems[db.filename];
|
|
104
|
+
tablesContainer.style.display = _this4.expandedItems[db.filename] ? 'block' : 'none';
|
|
97
105
|
expandArrow.classList.toggle('expanded');
|
|
98
|
-
localStorage.setItem(EXPANDED_EXPLORER_ITEMS_KEY, JSON.stringify(
|
|
106
|
+
localStorage.setItem(EXPANDED_EXPLORER_ITEMS_KEY, JSON.stringify(_this4.expandedItems));
|
|
99
107
|
};
|
|
100
108
|
itemElem.appendChild(expandArrow);
|
|
101
109
|
}
|
|
102
110
|
}, {
|
|
103
111
|
key: "buildTableDom",
|
|
104
112
|
value: function buildTableDom(tablesContainer, tableName, db) {
|
|
105
|
-
var
|
|
113
|
+
var _this5 = this,
|
|
106
114
|
_this$selectedItem,
|
|
107
115
|
_this$selectedItem2;
|
|
108
116
|
var tableItem = document.createElement('div');
|
|
109
117
|
this.setupCommonItemDom(tableItem);
|
|
110
118
|
tableItem.classList.add('table');
|
|
111
119
|
tableItem.onclick = function () {
|
|
112
|
-
|
|
120
|
+
_this5.selectTable(tableItem, db);
|
|
113
121
|
};
|
|
114
122
|
if (((_this$selectedItem = this.selectedItem) === null || _this$selectedItem === void 0 ? void 0 : _this$selectedItem.tableName) === tableName && ((_this$selectedItem2 = this.selectedItem) === null || _this$selectedItem2 === void 0 ? void 0 : _this$selectedItem2.dbName) === db.filename) {
|
|
115
123
|
this.selectedItem.tableElem = tableItem;
|
|
@@ -132,7 +140,7 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
132
140
|
tableElem: tableEl
|
|
133
141
|
};
|
|
134
142
|
var databasePath = databaseItem.filename;
|
|
135
|
-
|
|
143
|
+
(0, _state.selectTable)({
|
|
136
144
|
tableName: tableName,
|
|
137
145
|
databasePath: databasePath
|
|
138
146
|
});
|
|
@@ -156,13 +164,13 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
156
164
|
}, {
|
|
157
165
|
key: "scheduleShowFullItemLabel",
|
|
158
166
|
value: function scheduleShowFullItemLabel(event) {
|
|
159
|
-
var
|
|
167
|
+
var _this6 = this;
|
|
160
168
|
var item = event.target;
|
|
161
169
|
var label = item.querySelector('.label');
|
|
162
170
|
if (label && label.offsetWidth < label.scrollWidth) {
|
|
163
171
|
clearTimeout(this.showFullItemLabelTimeout);
|
|
164
172
|
this.showFullItemLabelTimeout = window.setTimeout(function () {
|
|
165
|
-
|
|
173
|
+
_this6.showFullItemLabel(item);
|
|
166
174
|
}, 300);
|
|
167
175
|
}
|
|
168
176
|
}
|
|
@@ -190,4 +198,12 @@ var ExplorerView = /*#__PURE__*/function () {
|
|
|
190
198
|
}]);
|
|
191
199
|
return ExplorerView;
|
|
192
200
|
}();
|
|
193
|
-
exports.ExplorerView = ExplorerView;
|
|
201
|
+
exports.ExplorerView = ExplorerView;
|
|
202
|
+
var _explorerView;
|
|
203
|
+
function createExplorerView(rootEl, viewEl) {
|
|
204
|
+
if (!_explorerView) {
|
|
205
|
+
_explorerView = new ExplorerView(rootEl, viewEl);
|
|
206
|
+
} else {
|
|
207
|
+
console.warn('ExplorerView is already created');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
@@ -3,8 +3,11 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.createSqlLogView = createSqlLogView;
|
|
7
|
+
var Bus = _interopRequireWildcard(require("../../bus"));
|
|
7
8
|
require("./styles.css");
|
|
9
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
10
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
8
11
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
9
12
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
13
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -12,10 +15,16 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
|
|
|
12
15
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
13
16
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
17
|
var SqlLogView = /*#__PURE__*/function () {
|
|
15
|
-
function SqlLogView(rootEl
|
|
18
|
+
function SqlLogView(rootEl) {
|
|
16
19
|
var _this = this;
|
|
17
20
|
_classCallCheck(this, SqlLogView);
|
|
18
|
-
|
|
21
|
+
Bus.listen('query-run', function (query) {
|
|
22
|
+
if (query.errorMsg) {
|
|
23
|
+
_this.textArea.value += "Error while running previous query: ".concat(query.errorMsg, "\n");
|
|
24
|
+
} else {
|
|
25
|
+
_this.textArea.value += "".concat(query.sql, "\n");
|
|
26
|
+
}
|
|
27
|
+
});
|
|
19
28
|
var container = document.createElement('div');
|
|
20
29
|
container.id = 'sql_log_container';
|
|
21
30
|
var header = document.createElement('div');
|
|
@@ -43,6 +52,6 @@ var SqlLogView = /*#__PURE__*/function () {
|
|
|
43
52
|
}]);
|
|
44
53
|
return SqlLogView;
|
|
45
54
|
}();
|
|
46
|
-
function
|
|
47
|
-
return new SqlLogView(rootEl
|
|
55
|
+
function createSqlLogView(rootEl) {
|
|
56
|
+
return new SqlLogView(rootEl);
|
|
48
57
|
}
|
|
@@ -4,10 +4,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.TableView = void 0;
|
|
7
|
-
|
|
7
|
+
exports.createTableView = createTableView;
|
|
8
|
+
var _state = require("../../state");
|
|
9
|
+
var Bus = _interopRequireWildcard(require("../../bus"));
|
|
8
10
|
var _ListVirtualizer = require("../../ListVirtualizer");
|
|
9
|
-
require("
|
|
11
|
+
var _QueryRunner = require("../../QueryRunner");
|
|
10
12
|
var _TableViewModel = require("./TableViewModel");
|
|
13
|
+
require("./styles.css");
|
|
14
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
11
16
|
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
12
17
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
13
18
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
@@ -16,18 +21,33 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
|
|
|
16
21
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return _typeof(key) === "symbol" ? key : String(key); }
|
|
17
22
|
function _toPrimitive(input, hint) { if (_typeof(input) !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (_typeof(res) !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
18
23
|
var TableView = /*#__PURE__*/function () {
|
|
19
|
-
function TableView(
|
|
24
|
+
function TableView(rootElement) {
|
|
20
25
|
var _this = this;
|
|
21
26
|
_classCallCheck(this, TableView);
|
|
22
27
|
_defineProperty(this, "updateTimer", null);
|
|
23
|
-
this.viewerElem = viewerElem;
|
|
24
28
|
this.rootElement = rootElement;
|
|
25
|
-
this.queryRunner = queryRunner;
|
|
26
29
|
this.buildDomTemplate();
|
|
27
30
|
this.model = new _TableViewModel.TableViewModel();
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
Bus.listen('table-selected', function (table) {
|
|
32
|
+
_this.setTable(table.tableName);
|
|
33
|
+
});
|
|
34
|
+
Bus.listen('query-results', function (data) {
|
|
35
|
+
if ((data === null || data === void 0 ? void 0 : data.label) === 'tableViewColumns') {
|
|
36
|
+
_this.setTableColumns(data.result.resultRows || []);
|
|
37
|
+
} else if ((data === null || data === void 0 ? void 0 : data.label) === 'tableView') {
|
|
38
|
+
_this.setTableResults(data.result.resultRows || []);
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
Bus.listen('cell-edited', function (_ref) {
|
|
42
|
+
var cell = _ref.cell,
|
|
43
|
+
value = _ref.value;
|
|
44
|
+
var row = _this.model.rows.find(function (r) {
|
|
45
|
+
return r.rowid === cell.cellRowId;
|
|
46
|
+
});
|
|
47
|
+
if (row) {
|
|
48
|
+
row[cell.columnName] = value;
|
|
49
|
+
_this.virtualizer.update();
|
|
50
|
+
}
|
|
31
51
|
});
|
|
32
52
|
this.virtualizer = new _ListVirtualizer.ListVirtualizer({
|
|
33
53
|
width: 500,
|
|
@@ -37,19 +57,38 @@ var TableView = /*#__PURE__*/function () {
|
|
|
37
57
|
contentRoot: this.bodyRoot,
|
|
38
58
|
container: this.container,
|
|
39
59
|
generatorFn: function generatorFn(i) {
|
|
40
|
-
var _row$rowid;
|
|
41
60
|
var row = _this.model.rows[i];
|
|
42
61
|
if (!row) {
|
|
43
62
|
return null;
|
|
44
63
|
}
|
|
45
64
|
var tr = document.createElement('tr');
|
|
46
|
-
var rowId =
|
|
65
|
+
var rowId = row.rowid;
|
|
66
|
+
tr.onclick = function (event) {
|
|
67
|
+
var _event$target;
|
|
68
|
+
var element = (_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.parentElement;
|
|
69
|
+
if (element !== null && element !== void 0 && element.id) {
|
|
70
|
+
var _selectedTable;
|
|
71
|
+
var value = row[element.id];
|
|
72
|
+
(0, _state.selectCell)({
|
|
73
|
+
value: value,
|
|
74
|
+
cellRowId: rowId,
|
|
75
|
+
columnName: element.id,
|
|
76
|
+
tableName: ((_selectedTable = (0, _state.selectedTable)()) === null || _selectedTable === void 0 ? void 0 : _selectedTable.tableName) || ''
|
|
77
|
+
});
|
|
78
|
+
if (_this.model.selectedCell) {
|
|
79
|
+
_this.model.selectedCell.classList.remove('selected');
|
|
80
|
+
}
|
|
81
|
+
element.classList.add('selected');
|
|
82
|
+
_this.model.selectedCell = element;
|
|
83
|
+
}
|
|
84
|
+
};
|
|
47
85
|
Object.keys(row).forEach(function (columnKey) {
|
|
48
86
|
if (columnKey === 'rowid') {
|
|
49
87
|
return;
|
|
50
88
|
}
|
|
51
89
|
var value = row[columnKey];
|
|
52
90
|
var td = document.createElement('td');
|
|
91
|
+
td.id = columnKey;
|
|
53
92
|
var contentEl = document.createElement('div');
|
|
54
93
|
if (value !== null) {
|
|
55
94
|
contentEl.innerHTML = value;
|
|
@@ -57,20 +96,6 @@ var TableView = /*#__PURE__*/function () {
|
|
|
57
96
|
contentEl.innerHTML = 'NULL';
|
|
58
97
|
contentEl.className = 'nullValue';
|
|
59
98
|
}
|
|
60
|
-
td.onclick = function () {
|
|
61
|
-
var _ViewerState$instance;
|
|
62
|
-
_viewerState.ViewerState.instance.setSelectedCell({
|
|
63
|
-
value: value,
|
|
64
|
-
cellRowId: rowId,
|
|
65
|
-
columnName: columnKey,
|
|
66
|
-
tableName: ((_ViewerState$instance = _viewerState.ViewerState.instance.selectedTable) === null || _ViewerState$instance === void 0 ? void 0 : _ViewerState$instance.tableName) || ''
|
|
67
|
-
});
|
|
68
|
-
if (_this.model.selectedCell) {
|
|
69
|
-
_this.model.selectedCell.classList.remove('selected');
|
|
70
|
-
}
|
|
71
|
-
td.classList.add('selected');
|
|
72
|
-
_this.model.selectedCell = td;
|
|
73
|
-
};
|
|
74
99
|
td.appendChild(contentEl);
|
|
75
100
|
tr.appendChild(td);
|
|
76
101
|
});
|
|
@@ -139,9 +164,8 @@ var TableView = /*#__PURE__*/function () {
|
|
|
139
164
|
this.bodyRoot = table.createTBody();
|
|
140
165
|
this.container.appendChild(table);
|
|
141
166
|
this.rootElement.appendChild(this.container);
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
if (hasChanges) {
|
|
167
|
+
Bus.listen('db-dirtied', function (dirty) {
|
|
168
|
+
if (dirty) {
|
|
145
169
|
saveBtn.removeAttribute('disabled');
|
|
146
170
|
revertBtn.removeAttribute('disabled');
|
|
147
171
|
} else {
|
|
@@ -202,12 +226,12 @@ var TableView = /*#__PURE__*/function () {
|
|
|
202
226
|
value: function requestRows(refetchColumns) {
|
|
203
227
|
if (refetchColumns) {
|
|
204
228
|
var _sql = "PRAGMA table_info(".concat(this.model.tableName, ");");
|
|
205
|
-
|
|
229
|
+
_QueryRunner.queryRunner.runQuery({
|
|
206
230
|
sql: _sql,
|
|
207
231
|
parameters: []
|
|
208
232
|
}, 'tableViewColumns');
|
|
209
233
|
}
|
|
210
|
-
var sql = "SELECT \"_rowid_\",* FROM ".concat(this.model.tableName);
|
|
234
|
+
var sql = "SELECT \"_rowid_\" as rowid,* FROM ".concat(this.model.tableName);
|
|
211
235
|
var filterSql = [];
|
|
212
236
|
Object.entries(this.model.fitlers).forEach(function (filterEntry) {
|
|
213
237
|
var column = filterEntry[0];
|
|
@@ -219,7 +243,7 @@ var TableView = /*#__PURE__*/function () {
|
|
|
219
243
|
if (filterSql.length > 0) {
|
|
220
244
|
sql += " WHERE ".concat(filterSql.join(' AND '), " ESCAPE '\\'");
|
|
221
245
|
}
|
|
222
|
-
|
|
246
|
+
_QueryRunner.queryRunner.runQuery({
|
|
223
247
|
sql: sql,
|
|
224
248
|
parameters: []
|
|
225
249
|
}, 'tableView');
|
|
@@ -228,42 +252,42 @@ var TableView = /*#__PURE__*/function () {
|
|
|
228
252
|
key: "saveChanges",
|
|
229
253
|
value: function saveChanges() {
|
|
230
254
|
var sql = 'RELEASE "RESTOREPOINT";';
|
|
231
|
-
|
|
255
|
+
_QueryRunner.queryRunner.runQuery({
|
|
232
256
|
sql: sql,
|
|
233
257
|
parameters: []
|
|
234
258
|
});
|
|
235
|
-
|
|
259
|
+
(0, _state.setDirty)(false);
|
|
236
260
|
}
|
|
237
261
|
}, {
|
|
238
262
|
key: "revertChanges",
|
|
239
263
|
value: function revertChanges() {
|
|
240
264
|
var sql = 'ROLLBACK TO SAVEPOINT "RESTOREPOINT";';
|
|
241
|
-
|
|
265
|
+
_QueryRunner.queryRunner.runQuery({
|
|
242
266
|
sql: sql,
|
|
243
267
|
parameters: []
|
|
244
268
|
});
|
|
245
269
|
this.requestRows(true);
|
|
246
|
-
|
|
270
|
+
(0, _state.setDirty)(false);
|
|
247
271
|
}
|
|
248
272
|
}, {
|
|
249
273
|
key: "deleteTable",
|
|
250
274
|
value: function deleteTable() {
|
|
251
|
-
|
|
275
|
+
var table = (0, _state.selectedTable)();
|
|
276
|
+
if (!table) {
|
|
252
277
|
return;
|
|
253
278
|
}
|
|
254
|
-
if (!
|
|
255
|
-
|
|
256
|
-
(_this$queryRunner = this.queryRunner) === null || _this$queryRunner === void 0 ? void 0 : _this$queryRunner.runQuery({
|
|
279
|
+
if (!(0, _state.isDirty)()) {
|
|
280
|
+
_QueryRunner.queryRunner === null || _QueryRunner.queryRunner === void 0 ? void 0 : _QueryRunner.queryRunner.runQuery({
|
|
257
281
|
sql: 'SAVEPOINT "RESTOREPOINT"',
|
|
258
282
|
parameters: []
|
|
259
283
|
});
|
|
260
284
|
}
|
|
261
|
-
var sql = "DROP TABLE \"".concat(
|
|
262
|
-
|
|
285
|
+
var sql = "DROP TABLE \"".concat(table.tableName, "\";");
|
|
286
|
+
_QueryRunner.queryRunner.runQuery({
|
|
263
287
|
sql: sql,
|
|
264
288
|
parameters: []
|
|
265
289
|
});
|
|
266
|
-
|
|
290
|
+
(0, _state.setDirty)(true);
|
|
267
291
|
}
|
|
268
292
|
}, {
|
|
269
293
|
key: "scheduleUpdate",
|
|
@@ -280,4 +304,12 @@ var TableView = /*#__PURE__*/function () {
|
|
|
280
304
|
}]);
|
|
281
305
|
return TableView;
|
|
282
306
|
}();
|
|
283
|
-
exports.TableView = TableView;
|
|
307
|
+
exports.TableView = TableView;
|
|
308
|
+
var _tableView;
|
|
309
|
+
function createTableView(rootEl) {
|
|
310
|
+
if (!_tableView) {
|
|
311
|
+
_tableView = new TableView(rootEl);
|
|
312
|
+
} else {
|
|
313
|
+
console.warn('TableView is already created');
|
|
314
|
+
}
|
|
315
|
+
}
|