@matdata/yasr 5.6.0 → 5.7.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.
@@ -1,453 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import "./index.scss";
11
- import "datatables.net-dt/css/dataTables.dataTables.min.css";
12
- import "datatables.net";
13
- import $ from "jquery";
14
- import { escape } from "lodash-es";
15
- import { drawSvgStringAsElement, drawFontAwesomeIconAsSvg, addClass, removeClass } from "@matdata/yasgui-utils";
16
- import * as faTableIcon from "@fortawesome/free-solid-svg-icons/faTable";
17
- import { cloneDeep } from "lodash-es";
18
- import sanitize from "../../helpers/sanitize";
19
- import ColumnResizer from "column-resizer";
20
- const DEFAULT_PAGE_SIZE = 50;
21
- function expand(event) {
22
- addClass(this, "expanded");
23
- event.preventDefault();
24
- }
25
- class Table {
26
- getIcon() {
27
- return drawSvgStringAsElement(drawFontAwesomeIconAsSvg(faTableIcon));
28
- }
29
- constructor(yasr) {
30
- this.persistentConfig = {};
31
- this.helpReference = "https://docs.triply.cc/yasgui/#table";
32
- this.label = "Table";
33
- this.priority = 10;
34
- this.setEllipsisHandlers = () => {
35
- var _a;
36
- (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.cells({ page: "current" }).every((rowIdx, colIdx) => {
37
- var _a, _b;
38
- const cell = (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.cell(rowIdx, colIdx);
39
- if ((cell === null || cell === void 0 ? void 0 : cell.data()) === "")
40
- return;
41
- const cellNode = cell === null || cell === void 0 ? void 0 : cell.node();
42
- if (cellNode) {
43
- const content = cellNode.firstChild;
44
- if ((((_b = content.firstElementChild) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect().width) || 0) > content.getBoundingClientRect().width) {
45
- if (!content.classList.contains("expandable")) {
46
- addClass(content, "expandable");
47
- content.addEventListener("click", expand, { once: true });
48
- }
49
- }
50
- else {
51
- if (content.classList.contains("expandable")) {
52
- removeClass(content, "expandable");
53
- content.removeEventListener("click", expand);
54
- }
55
- }
56
- }
57
- });
58
- };
59
- this.handleTableSearch = (event) => {
60
- var _a;
61
- (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.search(event.target.value).draw("page");
62
- };
63
- this.handleTableSizeSelect = (event) => {
64
- var _a;
65
- const pageLength = parseInt(event.target.value);
66
- (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.page.len(pageLength).draw("page");
67
- this.persistentConfig.pageSize = pageLength;
68
- this.yasr.storePluginConfig("table", this.persistentConfig);
69
- };
70
- this.handleSetCompactToggle = (event) => {
71
- this.persistentConfig.compact = event.target.checked;
72
- this.draw(this.persistentConfig);
73
- this.yasr.storePluginConfig("table", this.persistentConfig);
74
- };
75
- this.handleSetCompactViewToggle = (event) => {
76
- this.persistentConfig.isCompactView = event.target.checked;
77
- this.draw(this.persistentConfig);
78
- this.yasr.storePluginConfig("table", this.persistentConfig);
79
- };
80
- this.handleSetUriPrefixToggle = (event) => {
81
- this.persistentConfig.showUriPrefixes = event.target.checked;
82
- this.draw(this.persistentConfig);
83
- this.yasr.storePluginConfig("table", this.persistentConfig);
84
- };
85
- this.handleSetDatatypeToggle = (event) => {
86
- this.persistentConfig.showDatatypes = event.target.checked;
87
- this.draw(this.persistentConfig);
88
- this.yasr.storePluginConfig("table", this.persistentConfig);
89
- };
90
- this.handleCopyMarkdown = (event) => __awaiter(this, void 0, void 0, function* () {
91
- const markdown = this.getMarkdownTable();
92
- const button = event.target;
93
- if (button.disabled)
94
- return;
95
- button.disabled = true;
96
- const originalText = "Copy as Markdown";
97
- try {
98
- yield navigator.clipboard.writeText(markdown);
99
- button.textContent = "Copied!";
100
- setTimeout(() => {
101
- button.textContent = originalText;
102
- button.disabled = false;
103
- }, 2000);
104
- }
105
- catch (err) {
106
- button.textContent = "Copy failed";
107
- setTimeout(() => {
108
- button.textContent = originalText;
109
- button.disabled = false;
110
- }, 2000);
111
- }
112
- });
113
- this.yasr = yasr;
114
- this.config = Table.defaults;
115
- }
116
- getRows() {
117
- if (!this.yasr.results)
118
- return [];
119
- const bindings = this.yasr.results.getBindings();
120
- if (!bindings)
121
- return [];
122
- const vars = this.yasr.results.getVariables();
123
- return bindings.map((binding, rowId) => [rowId + 1, ...vars.map((variable) => { var _a; return (_a = binding[variable]) !== null && _a !== void 0 ? _a : ""; })]);
124
- }
125
- getMarkdownTable() {
126
- if (!this.yasr.results)
127
- return "";
128
- const bindings = this.yasr.results.getBindings();
129
- if (!bindings)
130
- return "";
131
- const vars = this.yasr.results.getVariables();
132
- const escapeMarkdown = (str) => str.replace(/\\/g, "\\\\").replace(/\|/g, "\\|");
133
- const getPlainValue = (binding) => {
134
- if (binding === "")
135
- return "";
136
- return escapeMarkdown(binding.value);
137
- };
138
- let markdown = "| " + vars.map(escapeMarkdown).join(" | ") + " |\n";
139
- markdown += "| " + vars.map(() => "---").join(" | ") + " |\n";
140
- bindings.forEach((binding) => {
141
- const row = vars.map((variable) => { var _a; return getPlainValue((_a = binding[variable]) !== null && _a !== void 0 ? _a : ""); });
142
- markdown += "| " + row.join(" | ") + " |\n";
143
- });
144
- return markdown;
145
- }
146
- getUriLinkFromBinding(binding, prefixes) {
147
- const href = sanitize(binding.value);
148
- let visibleString = href;
149
- let prefixed = false;
150
- if (this.persistentConfig.showUriPrefixes !== false && prefixes) {
151
- for (const prefixLabel in prefixes) {
152
- if (visibleString.indexOf(prefixes[prefixLabel]) == 0) {
153
- visibleString = prefixLabel + ":" + href.substring(prefixes[prefixLabel].length);
154
- prefixed = true;
155
- break;
156
- }
157
- }
158
- }
159
- const hideBrackets = prefixed || this.persistentConfig.compact;
160
- const uri = `${hideBrackets ? "" : "&lt;"}<a class='iri' target='${this.config.openIriInNewWindow ? "_blank" : "_self"}'${this.config.openIriInNewWindow ? " ref='noopener noreferrer'" : ""} href='${href}'>${sanitize(visibleString)}</a>${hideBrackets ? "" : "&gt;"}`;
161
- return sanitize(uri);
162
- }
163
- getCellContent(binding, prefixes) {
164
- let content;
165
- if (binding.type == "uri") {
166
- content = `<span>${this.getUriLinkFromBinding(binding, prefixes)}</span>`;
167
- }
168
- else {
169
- content = `<span class='nonIri'>${this.formatLiteral(binding, prefixes)}</span>`;
170
- }
171
- return `<div>${content}</div>`;
172
- }
173
- formatLiteral(literalBinding, prefixes) {
174
- let stringRepresentation = sanitize(escape(literalBinding.value));
175
- if (this.persistentConfig.compact)
176
- return stringRepresentation;
177
- if (this.persistentConfig.showDatatypes !== false) {
178
- if (literalBinding["xml:lang"]) {
179
- stringRepresentation = `"${stringRepresentation}"<sup>@${literalBinding["xml:lang"]}</sup>`;
180
- }
181
- else if (literalBinding.datatype) {
182
- const dataType = this.getUriLinkFromBinding({ type: "uri", value: literalBinding.datatype }, prefixes);
183
- stringRepresentation = `"${stringRepresentation}"<sup>^^${dataType}</sup>`;
184
- }
185
- }
186
- return stringRepresentation;
187
- }
188
- getColumns() {
189
- var _a;
190
- if (!this.yasr.results)
191
- return [];
192
- const prefixes = this.yasr.getPrefixes();
193
- return [
194
- {
195
- name: "",
196
- searchable: false,
197
- width: `${this.getSizeFirstColumn()}px`,
198
- type: "num",
199
- orderable: false,
200
- visible: this.persistentConfig.compact !== true,
201
- render: (data, type) => type === "filter" || type === "sort" || !type ? data : `<div class="rowNumber">${data}</div>`,
202
- },
203
- ...(_a = this.yasr.results) === null || _a === void 0 ? void 0 : _a.getVariables().map((name) => {
204
- return {
205
- name,
206
- title: sanitize(name),
207
- render: (data, type, _row, _meta) => {
208
- if (data === "")
209
- return data;
210
- if (type === "filter" || type === "sort" || !type)
211
- return sanitize(data.value);
212
- return this.getCellContent(data, prefixes);
213
- },
214
- };
215
- }),
216
- ];
217
- }
218
- getSizeFirstColumn() {
219
- var _a, _b;
220
- const numResults = ((_b = (_a = this.yasr.results) === null || _a === void 0 ? void 0 : _a.getBindings()) === null || _b === void 0 ? void 0 : _b.length) || 0;
221
- return numResults.toString().length * 8;
222
- }
223
- draw(persistentConfig) {
224
- var _a, _b;
225
- this.persistentConfig = Object.assign(Object.assign({}, this.persistentConfig), persistentConfig);
226
- this.tableEl = document.createElement("table");
227
- const rows = this.getRows();
228
- const columns = this.getColumns();
229
- if (rows.length <= ((persistentConfig === null || persistentConfig === void 0 ? void 0 : persistentConfig.pageSize) || DEFAULT_PAGE_SIZE)) {
230
- this.yasr.pluginControls;
231
- addClass(this.yasr.rootEl, "isSinglePage");
232
- }
233
- else {
234
- removeClass(this.yasr.rootEl, "isSinglePage");
235
- }
236
- if (this.dataTable) {
237
- this.destroyResizer();
238
- this.dataTable.destroy(true);
239
- this.dataTable = undefined;
240
- }
241
- this.yasr.resultsEl.appendChild(this.tableEl);
242
- const dtConfig = Object.assign(Object.assign({}, cloneDeep(this.config.tableConfig)), { pageLength: (persistentConfig === null || persistentConfig === void 0 ? void 0 : persistentConfig.pageSize) ? persistentConfig.pageSize : DEFAULT_PAGE_SIZE, data: rows, columns: columns });
243
- this.dataTable = $(this.tableEl).DataTable(dtConfig);
244
- this.tableEl.style.removeProperty("width");
245
- this.tableEl.style.width = this.tableEl.clientWidth + "px";
246
- const widths = Array.from(this.tableEl.querySelectorAll("th")).map((h) => h.offsetWidth - 26);
247
- this.tableResizer = new ColumnResizer(this.tableEl, {
248
- widths: this.persistentConfig.compact === true ? widths : [this.getSizeFirstColumn(), ...widths.slice(1)],
249
- partialRefresh: true,
250
- onResize: this.persistentConfig.isCompactView !== false && this.setEllipsisHandlers,
251
- headerOnly: true,
252
- });
253
- if (this.persistentConfig.isCompactView !== false) {
254
- (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.on("preDraw", () => {
255
- var _a, _b, _c;
256
- (_a = this.tableResizer) === null || _a === void 0 ? void 0 : _a.reset({ disable: true });
257
- removeClass(this.tableEl, "compactTable");
258
- (_b = this.tableEl) === null || _b === void 0 ? void 0 : _b.style.removeProperty("width");
259
- (_c = this.tableEl) === null || _c === void 0 ? void 0 : _c.style.setProperty("width", this.tableEl.clientWidth + "px");
260
- return true;
261
- });
262
- (_b = this.dataTable) === null || _b === void 0 ? void 0 : _b.on("draw", () => {
263
- var _a, _b;
264
- if (!this.tableEl)
265
- return;
266
- let targetSize = this.tableEl.clientWidth;
267
- this.tableEl.style.removeProperty("width");
268
- if (targetSize > this.tableEl.clientWidth)
269
- targetSize = this.tableEl.clientWidth;
270
- (_a = this.tableEl) === null || _a === void 0 ? void 0 : _a.style.setProperty("width", `${targetSize}px`);
271
- (_b = this.tableResizer) === null || _b === void 0 ? void 0 : _b.reset({
272
- disable: false,
273
- partialRefresh: true,
274
- onResize: this.setEllipsisHandlers,
275
- headerOnly: true,
276
- });
277
- addClass(this.tableEl, "compactTable");
278
- this.setEllipsisHandlers();
279
- });
280
- }
281
- this.drawControls();
282
- if (this.persistentConfig.isCompactView !== false) {
283
- addClass(this.tableEl, "compactTable");
284
- this.setEllipsisHandlers();
285
- }
286
- }
287
- drawControls() {
288
- var _a;
289
- this.removeControls();
290
- this.tableControls = document.createElement("div");
291
- this.tableControls.className = "tableControls";
292
- const toggleWrapper = document.createElement("div");
293
- const switchComponent = document.createElement("label");
294
- const textComponent = document.createElement("span");
295
- textComponent.innerText = "Simple view";
296
- addClass(textComponent, "label");
297
- switchComponent.appendChild(textComponent);
298
- addClass(switchComponent, "switch");
299
- toggleWrapper.appendChild(switchComponent);
300
- this.tableCompactSwitch = document.createElement("input");
301
- switchComponent.addEventListener("change", this.handleSetCompactToggle);
302
- this.tableCompactSwitch.type = "checkbox";
303
- switchComponent.appendChild(this.tableCompactSwitch);
304
- this.tableCompactSwitch.defaultChecked = !!this.persistentConfig.compact;
305
- this.tableControls.appendChild(toggleWrapper);
306
- const compactViewToggleWrapper = document.createElement("div");
307
- const compactViewSwitchComponent = document.createElement("label");
308
- const compactViewTextComponent = document.createElement("span");
309
- compactViewTextComponent.innerText = "Compact";
310
- addClass(compactViewTextComponent, "label");
311
- compactViewSwitchComponent.appendChild(compactViewTextComponent);
312
- addClass(compactViewSwitchComponent, "switch");
313
- compactViewToggleWrapper.appendChild(compactViewSwitchComponent);
314
- this.tableCompactViewSwitch = document.createElement("input");
315
- compactViewSwitchComponent.addEventListener("change", this.handleSetCompactViewToggle);
316
- this.tableCompactViewSwitch.type = "checkbox";
317
- compactViewSwitchComponent.appendChild(this.tableCompactViewSwitch);
318
- this.tableCompactViewSwitch.defaultChecked = this.persistentConfig.isCompactView !== false;
319
- this.tableControls.appendChild(compactViewToggleWrapper);
320
- const uriPrefixToggleWrapper = document.createElement("div");
321
- const uriPrefixSwitchComponent = document.createElement("label");
322
- const uriPrefixTextComponent = document.createElement("span");
323
- uriPrefixTextComponent.innerText = "Prefixes";
324
- addClass(uriPrefixTextComponent, "label");
325
- uriPrefixSwitchComponent.appendChild(uriPrefixTextComponent);
326
- addClass(uriPrefixSwitchComponent, "switch");
327
- uriPrefixToggleWrapper.appendChild(uriPrefixSwitchComponent);
328
- this.tableUriPrefixSwitch = document.createElement("input");
329
- uriPrefixSwitchComponent.addEventListener("change", this.handleSetUriPrefixToggle);
330
- this.tableUriPrefixSwitch.type = "checkbox";
331
- uriPrefixSwitchComponent.appendChild(this.tableUriPrefixSwitch);
332
- this.tableUriPrefixSwitch.defaultChecked = this.persistentConfig.showUriPrefixes !== false;
333
- this.tableControls.appendChild(uriPrefixToggleWrapper);
334
- const datatypeToggleWrapper = document.createElement("div");
335
- const datatypeSwitchComponent = document.createElement("label");
336
- const datatypeTextComponent = document.createElement("span");
337
- datatypeTextComponent.innerText = "Datatypes";
338
- addClass(datatypeTextComponent, "label");
339
- datatypeSwitchComponent.appendChild(datatypeTextComponent);
340
- addClass(datatypeSwitchComponent, "switch");
341
- datatypeToggleWrapper.appendChild(datatypeSwitchComponent);
342
- this.tableDatatypeSwitch = document.createElement("input");
343
- datatypeSwitchComponent.addEventListener("change", this.handleSetDatatypeToggle);
344
- this.tableDatatypeSwitch.type = "checkbox";
345
- datatypeSwitchComponent.appendChild(this.tableDatatypeSwitch);
346
- this.tableDatatypeSwitch.defaultChecked = this.persistentConfig.showDatatypes !== false;
347
- this.tableControls.appendChild(datatypeToggleWrapper);
348
- this.tableFilterField = document.createElement("input");
349
- this.tableFilterField.className = "tableFilter";
350
- this.tableFilterField.placeholder = "Filter query results";
351
- this.tableFilterField.setAttribute("aria-label", "Filter query results");
352
- this.tableControls.appendChild(this.tableFilterField);
353
- this.tableFilterField.addEventListener("keyup", this.handleTableSearch);
354
- const markdownButton = document.createElement("button");
355
- markdownButton.className = "copyMarkdownBtn";
356
- markdownButton.textContent = "Copy as Markdown";
357
- markdownButton.setAttribute("aria-label", "Copy table as markdown");
358
- markdownButton.addEventListener("click", this.handleCopyMarkdown);
359
- this.tableControls.appendChild(markdownButton);
360
- const pageSizerWrapper = document.createElement("div");
361
- pageSizerWrapper.className = "pageSizeWrapper";
362
- const pageSizerLabel = document.createElement("span");
363
- pageSizerLabel.textContent = "Page size: ";
364
- pageSizerLabel.className = "pageSizerLabel";
365
- pageSizerWrapper.appendChild(pageSizerLabel);
366
- this.tableSizeField = document.createElement("select");
367
- this.tableSizeField.className = "tableSizer";
368
- const options = [10, 50, 100, 1000, -1];
369
- for (const option of options) {
370
- const element = document.createElement("option");
371
- element.value = option + "";
372
- element.innerText = option > 0 ? option + "" : "All";
373
- if (((_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.page.len()) === option)
374
- element.selected = true;
375
- this.tableSizeField.appendChild(element);
376
- }
377
- pageSizerWrapper.appendChild(this.tableSizeField);
378
- this.tableSizeField.addEventListener("change", this.handleTableSizeSelect);
379
- this.tableControls.appendChild(pageSizerWrapper);
380
- this.yasr.pluginControls.appendChild(this.tableControls);
381
- }
382
- download(filename) {
383
- return {
384
- getData: () => { var _a; return ((_a = this.yasr.results) === null || _a === void 0 ? void 0 : _a.asCsv()) || ""; },
385
- contentType: "text/csv",
386
- title: "Download result",
387
- filename: `${filename || "queryResults"}.csv`,
388
- };
389
- }
390
- canHandleResults() {
391
- return !!this.yasr.results && this.yasr.results.getVariables() && this.yasr.results.getVariables().length > 0;
392
- }
393
- removeControls() {
394
- var _a, _b, _c, _d, _e, _f, _g, _h;
395
- (_a = this.tableFilterField) === null || _a === void 0 ? void 0 : _a.removeEventListener("keyup", this.handleTableSearch);
396
- this.tableFilterField = undefined;
397
- (_b = this.tableSizeField) === null || _b === void 0 ? void 0 : _b.removeEventListener("change", this.handleTableSizeSelect);
398
- this.tableSizeField = undefined;
399
- (_c = this.tableCompactSwitch) === null || _c === void 0 ? void 0 : _c.removeEventListener("change", this.handleSetCompactToggle);
400
- this.tableCompactSwitch = undefined;
401
- (_d = this.tableCompactViewSwitch) === null || _d === void 0 ? void 0 : _d.removeEventListener("change", this.handleSetCompactViewToggle);
402
- this.tableCompactViewSwitch = undefined;
403
- (_e = this.tableUriPrefixSwitch) === null || _e === void 0 ? void 0 : _e.removeEventListener("change", this.handleSetUriPrefixToggle);
404
- this.tableUriPrefixSwitch = undefined;
405
- (_f = this.tableDatatypeSwitch) === null || _f === void 0 ? void 0 : _f.removeEventListener("change", this.handleSetDatatypeToggle);
406
- this.tableDatatypeSwitch = undefined;
407
- while ((_g = this.tableControls) === null || _g === void 0 ? void 0 : _g.firstChild)
408
- this.tableControls.firstChild.remove();
409
- (_h = this.tableControls) === null || _h === void 0 ? void 0 : _h.remove();
410
- }
411
- destroyResizer() {
412
- if (this.tableResizer) {
413
- this.tableResizer.reset({ disable: true });
414
- window.removeEventListener("resize", this.tableResizer.onResize);
415
- this.tableResizer = undefined;
416
- }
417
- }
418
- destroy() {
419
- var _a;
420
- this.removeControls();
421
- this.destroyResizer();
422
- (_a = this.dataTable) === null || _a === void 0 ? void 0 : _a.destroy(true);
423
- this.dataTable = undefined;
424
- removeClass(this.yasr.rootEl, "isSinglePage");
425
- }
426
- }
427
- Table.defaults = {
428
- openIriInNewWindow: true,
429
- tableConfig: {
430
- layout: {
431
- top: null,
432
- topStart: null,
433
- topEnd: null,
434
- },
435
- pageLength: DEFAULT_PAGE_SIZE,
436
- lengthChange: true,
437
- data: [],
438
- columns: [],
439
- order: [],
440
- deferRender: true,
441
- orderClasses: false,
442
- language: {
443
- paginate: {
444
- first: "&lt;&lt;",
445
- last: "&gt;&gt;",
446
- next: "&gt;",
447
- previous: "&lt;",
448
- },
449
- },
450
- },
451
- };
452
- export default Table;
453
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/yasr/src/plugins/table/index.ts"],"names":[],"mappings":"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"}