@matdata/yasqe 5.14.0 → 5.16.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.
@@ -86,7 +86,7 @@ describe("Share Functionality", () => {
86
86
  " }",
87
87
  ' ContentType = "application/x-www-form-urlencoded"',
88
88
  ' Body = "query=SELECT"',
89
- ' OutFile = "result.json"',
89
+ ' OutFile = "sparql-generated.json"',
90
90
  "}",
91
91
  "",
92
92
  "Invoke-WebRequest @params",
@@ -97,6 +97,35 @@ describe("Share Functionality", () => {
97
97
  expect(psString).to.include("Headers");
98
98
  expect(psString).to.include("OutFile");
99
99
  expect(psString).to.include("Accept");
100
+ expect(psString).to.include("sparql-generated");
101
+ });
102
+ it("should format PowerShell commands with here-string for query", () => {
103
+ const query = "SELECT * WHERE { ?s ?p ?o }";
104
+ const lines = [
105
+ '$query = @"',
106
+ query,
107
+ '"@',
108
+ "",
109
+ "$params = @{",
110
+ ' Uri = "https://example.com/sparql"',
111
+ ' Method = "Post"',
112
+ " Headers = @{",
113
+ ' "Accept" = "application/sparql-results+json"',
114
+ " }",
115
+ ' ContentType = "application/x-www-form-urlencoded"',
116
+ ' Body = "query=$([System.Net.WebUtility]::UrlEncode($query))"',
117
+ ' OutFile = "sparql-generated.json"',
118
+ "}",
119
+ "",
120
+ "Invoke-WebRequest @params",
121
+ ];
122
+ const psString = lines.join("\n");
123
+ expect(psString).to.include('$query = @"');
124
+ expect(psString).to.include('"@');
125
+ expect(psString).to.include(query);
126
+ expect(psString).to.include('Body = "query=$([System.Net.WebUtility]::UrlEncode($query))"');
127
+ expect(psString).to.not.include('Body = "query=`$query"');
128
+ expect(psString).to.include("sparql-generated");
100
129
  });
101
130
  it("should format wget commands with proper line breaks", () => {
102
131
  const segments = [
@@ -1 +1 @@
1
- {"version":3,"file":"share-test.js","sourceRoot":"","sources":["../../../../../../packages/yasqe/src/__tests__/share-test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"share-test.js","sourceRoot":"","sources":["../../../../../../packages/yasqe/src/__tests__/share-test.ts"],"names":[],"mappings":"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"}
@@ -63,7 +63,7 @@ export default function get(): {
63
63
  persistencyExpire: number;
64
64
  collapsePrefixesOnLoad: boolean;
65
65
  syntaxErrorCheck: boolean;
66
- createShareableLink: (yasqe: Yasqe) => string;
66
+ createShareableLink: ((yasqe: Yasqe) => string) | undefined | null;
67
67
  createShortLink: ((yasqe: Yasqe, longLink: string) => Promise<string>) | undefined;
68
68
  consumeShareLink: ((yasqe: Yasqe) => void) | undefined | null;
69
69
  showQueryButton: boolean;
@@ -30,6 +30,10 @@ export interface Yasqe {
30
30
  off(eventName: "autocompletionClose", handler: (instance: Yasqe) => void): void;
31
31
  on(eventName: "resize", handler: (instance: Yasqe, newSize: string) => void): void;
32
32
  off(eventName: "resize", handler: (instance: Yasqe, newSize: string) => void): void;
33
+ on(eventName: "saveManagedQuery", handler: () => void): void;
34
+ off(eventName: "saveManagedQuery", handler: () => void): void;
35
+ on(eventName: "downloadRqFile", handler: () => void): void;
36
+ off(eventName: "downloadRqFile", handler: () => void): void;
33
37
  on(eventName: string, handler: () => void): void;
34
38
  }
35
39
  export declare class Yasqe extends CodeMirror {
@@ -44,8 +48,11 @@ export declare class Yasqe extends CodeMirror {
44
48
  private abortController;
45
49
  private queryStatus;
46
50
  private queryBtn;
47
- private saveBtn;
51
+ private saveBtnWrapper;
48
52
  private fullscreenBtn;
53
+ private hamburgerBtn;
54
+ private hamburgerMenu;
55
+ private shareBtn;
49
56
  private isFullscreen;
50
57
  private horizontalResizeWrapper?;
51
58
  private snippetsBar?;
@@ -69,6 +76,8 @@ export declare class Yasqe extends CodeMirror {
69
76
  emit(event: string, ...data: any[]): void;
70
77
  getStorageId(getter?: Config["persistenceId"]): string | undefined;
71
78
  private drawButtons;
79
+ private toggleHamburgerMenu;
80
+ private closeHamburgerMenu;
72
81
  toggleFullscreen(): void;
73
82
  getIsFullscreen(): boolean;
74
83
  private insertSnippet;
@@ -200,7 +209,7 @@ export declare class Yasqe extends CodeMirror {
200
209
  persistencyExpire: number;
201
210
  collapsePrefixesOnLoad: boolean;
202
211
  syntaxErrorCheck: boolean;
203
- createShareableLink: (yasqe: Yasqe) => string;
212
+ createShareableLink: ((yasqe: Yasqe) => string) | undefined | null;
204
213
  createShortLink: ((yasqe: Yasqe, longLink: string) => Promise<string>) | undefined;
205
214
  consumeShareLink: ((yasqe: Yasqe) => void) | undefined | null;
206
215
  showQueryButton: boolean;
@@ -324,7 +333,7 @@ export interface Config extends Partial<CodeMirror.EditorConfiguration> {
324
333
  mode: string;
325
334
  collapsePrefixesOnLoad: boolean;
326
335
  syntaxErrorCheck: boolean;
327
- createShareableLink: (yasqe: Yasqe) => string;
336
+ createShareableLink: ((yasqe: Yasqe) => string) | undefined | null;
328
337
  createShortLink: ((yasqe: Yasqe, longLink: string) => Promise<string>) | undefined;
329
338
  consumeShareLink: ((yasqe: Yasqe) => void) | undefined | null;
330
339
  persistenceId: ((yasqe: Yasqe) => string) | string | undefined | null;
@@ -243,6 +243,7 @@ export class Yasqe extends CodeMirror {
243
243
  shareLinkWrapper.setAttribute("aria-label", "Share query");
244
244
  shareLinkWrapper.appendChild(shareIcon);
245
245
  buttons.appendChild(shareLinkWrapper);
246
+ this.shareBtn = shareLinkWrapper;
246
247
  shareLinkWrapper.addEventListener("click", (event) => showSharePopup(event));
247
248
  shareLinkWrapper.addEventListener("keydown", (event) => {
248
249
  if (event.code === "Enter") {
@@ -352,6 +353,8 @@ export class Yasqe extends CodeMirror {
352
353
  urlBtn.className = "yasqe_btn yasqe_btn-sm yasqe_shareBtn";
353
354
  buttonContainer.appendChild(urlBtn);
354
355
  urlBtn.onclick = () => __awaiter(this, void 0, void 0, function* () {
356
+ if (!this.config.createShareableLink)
357
+ return;
355
358
  const url = this.config.createShareableLink(this);
356
359
  yield copyToClipboard(url, "URL");
357
360
  });
@@ -365,6 +368,8 @@ export class Yasqe extends CodeMirror {
365
368
  shortenBtn.disabled = true;
366
369
  shortenBtn.innerText = "Shortening...";
367
370
  try {
371
+ if (!this.config.createShareableLink)
372
+ return;
368
373
  const longUrl = this.config.createShareableLink(this);
369
374
  const shortUrl = yield createShortLink(this, longUrl);
370
375
  yield copyToClipboard(shortUrl, "Shortened URL");
@@ -415,9 +420,22 @@ export class Yasqe extends CodeMirror {
415
420
  const positionPopup = () => {
416
421
  if (!popup)
417
422
  return;
418
- const sharePos = shareLinkWrapper.getBoundingClientRect();
419
- popup.style.top = shareLinkWrapper.offsetTop + sharePos.height + "px";
420
- popup.style.left = shareLinkWrapper.offsetLeft + shareLinkWrapper.clientWidth - popup.clientWidth + "px";
423
+ const buttonsRect = buttons.getBoundingClientRect();
424
+ const popupHeight = popup.offsetHeight || 300;
425
+ const viewportHeight = window.innerHeight;
426
+ const spaceAbove = buttonsRect.top;
427
+ const spaceBelow = viewportHeight - buttonsRect.bottom;
428
+ if (spaceAbove >= popupHeight + 20) {
429
+ popup.style.bottom = (buttons.clientHeight || 46) + "px";
430
+ popup.style.top = "auto";
431
+ popup.style.right = "0px";
432
+ }
433
+ else {
434
+ popup.style.position = "fixed";
435
+ popup.style.bottom = "auto";
436
+ popup.style.top = "20px";
437
+ popup.style.right = "20px";
438
+ }
421
439
  };
422
440
  if (typeof window !== "undefined" && typeof window.requestAnimationFrame === "function") {
423
441
  window.requestAnimationFrame(positionPopup);
@@ -427,21 +445,37 @@ export class Yasqe extends CodeMirror {
427
445
  }
428
446
  };
429
447
  }
430
- const saveBtn = document.createElement("button");
431
- addClass(saveBtn, "yasqe_saveButton");
432
- const saveIcon = document.createElement("i");
433
- addClass(saveIcon, "fas");
434
- addClass(saveIcon, "fa-save");
435
- saveIcon.setAttribute("aria-hidden", "true");
436
- saveBtn.appendChild(saveIcon);
437
- saveBtn.onclick = () => {
448
+ const saveBtnWrapper = document.createElement("div");
449
+ addClass(saveBtnWrapper, "yasqe_saveWrapper");
450
+ saveBtnWrapper.style.display = "none";
451
+ this.saveBtnWrapper = saveBtnWrapper;
452
+ const saveManagedBtn = document.createElement("button");
453
+ addClass(saveManagedBtn, "yasqe_saveManagedButton");
454
+ const saveManagedIcon = document.createElement("i");
455
+ addClass(saveManagedIcon, "fas");
456
+ addClass(saveManagedIcon, "fa-database");
457
+ saveManagedIcon.setAttribute("aria-hidden", "true");
458
+ saveManagedBtn.appendChild(saveManagedIcon);
459
+ saveManagedBtn.title = "Save as managed query";
460
+ saveManagedBtn.setAttribute("aria-label", "Save as managed query");
461
+ saveManagedBtn.onclick = () => {
438
462
  this.emit("saveManagedQuery");
439
463
  };
440
- saveBtn.title = "Save managed query (Ctrl+S)";
441
- saveBtn.setAttribute("aria-label", "Save managed query");
442
- saveBtn.style.display = "none";
443
- this.saveBtn = saveBtn;
444
- buttons.appendChild(saveBtn);
464
+ saveBtnWrapper.appendChild(saveManagedBtn);
465
+ const saveRqBtn = document.createElement("button");
466
+ addClass(saveRqBtn, "yasqe_saveRqButton");
467
+ const saveRqIcon = document.createElement("i");
468
+ addClass(saveRqIcon, "fas");
469
+ addClass(saveRqIcon, "fa-file-download");
470
+ saveRqIcon.setAttribute("aria-hidden", "true");
471
+ saveRqBtn.appendChild(saveRqIcon);
472
+ saveRqBtn.title = "Save as .rq file";
473
+ saveRqBtn.setAttribute("aria-label", "Save as .rq file");
474
+ saveRqBtn.onclick = () => {
475
+ this.emit("downloadRqFile");
476
+ };
477
+ saveBtnWrapper.appendChild(saveRqBtn);
478
+ buttons.appendChild(saveBtnWrapper);
445
479
  if (this.config.showFormatButton) {
446
480
  const formatBtn = document.createElement("button");
447
481
  addClass(formatBtn, "yasqe_formatButton");
@@ -477,6 +511,130 @@ export class Yasqe extends CodeMirror {
477
511
  this.fullscreenBtn.title = "Toggle fullscreen (F11)";
478
512
  this.fullscreenBtn.setAttribute("aria-label", "Toggle fullscreen");
479
513
  buttons.appendChild(this.fullscreenBtn);
514
+ this.hamburgerBtn = document.createElement("button");
515
+ addClass(this.hamburgerBtn, "yasqe_hamburgerButton");
516
+ const hamburgerIcon = document.createElement("i");
517
+ addClass(hamburgerIcon, "fas");
518
+ addClass(hamburgerIcon, "fa-bars");
519
+ hamburgerIcon.setAttribute("aria-hidden", "true");
520
+ this.hamburgerBtn.appendChild(hamburgerIcon);
521
+ this.hamburgerBtn.title = "More options";
522
+ this.hamburgerBtn.setAttribute("aria-label", "More options");
523
+ this.hamburgerBtn.setAttribute("aria-expanded", "false");
524
+ buttons.appendChild(this.hamburgerBtn);
525
+ this.hamburgerMenu = document.createElement("div");
526
+ this.hamburgerMenu.className = "yasqe_hamburgerMenu";
527
+ buttons.appendChild(this.hamburgerMenu);
528
+ if (this.config.createShareableLink) {
529
+ const shareItem = document.createElement("button");
530
+ shareItem.className = "yasqe_hamburgerMenuItem";
531
+ const shareIconMenu = document.createElement("i");
532
+ addClass(shareIconMenu, "fas");
533
+ addClass(shareIconMenu, "fa-share-nodes");
534
+ shareIconMenu.setAttribute("aria-hidden", "true");
535
+ shareItem.appendChild(shareIconMenu);
536
+ const shareLabel = document.createElement("span");
537
+ shareLabel.textContent = "Share";
538
+ shareItem.appendChild(shareLabel);
539
+ shareItem.onclick = () => {
540
+ var _a;
541
+ this.closeHamburgerMenu();
542
+ (_a = this.shareBtn) === null || _a === void 0 ? void 0 : _a.click();
543
+ };
544
+ this.hamburgerMenu.appendChild(shareItem);
545
+ }
546
+ const saveManagedItem = document.createElement("button");
547
+ saveManagedItem.className = "yasqe_hamburgerMenuItem";
548
+ const saveManagedIconMenu = document.createElement("i");
549
+ addClass(saveManagedIconMenu, "fas");
550
+ addClass(saveManagedIconMenu, "fa-database");
551
+ saveManagedIconMenu.setAttribute("aria-hidden", "true");
552
+ saveManagedItem.appendChild(saveManagedIconMenu);
553
+ const saveManagedLabel = document.createElement("span");
554
+ saveManagedLabel.textContent = "Save as managed query";
555
+ saveManagedItem.appendChild(saveManagedLabel);
556
+ saveManagedItem.onclick = () => {
557
+ this.closeHamburgerMenu();
558
+ this.emit("saveManagedQuery");
559
+ };
560
+ this.hamburgerMenu.appendChild(saveManagedItem);
561
+ const saveRqItem = document.createElement("button");
562
+ saveRqItem.className = "yasqe_hamburgerMenuItem";
563
+ const saveRqIconMenu = document.createElement("i");
564
+ addClass(saveRqIconMenu, "fas");
565
+ addClass(saveRqIconMenu, "fa-file-download");
566
+ saveRqIconMenu.setAttribute("aria-hidden", "true");
567
+ saveRqItem.appendChild(saveRqIconMenu);
568
+ const saveRqLabel = document.createElement("span");
569
+ saveRqLabel.textContent = "Save as .rq file";
570
+ saveRqItem.appendChild(saveRqLabel);
571
+ saveRqItem.onclick = () => {
572
+ this.closeHamburgerMenu();
573
+ this.emit("downloadRqFile");
574
+ };
575
+ this.hamburgerMenu.appendChild(saveRqItem);
576
+ if (this.config.showFormatButton) {
577
+ const formatItem = document.createElement("button");
578
+ formatItem.className = "yasqe_hamburgerMenuItem";
579
+ const formatIconMenu = document.createElement("i");
580
+ addClass(formatIconMenu, "fas");
581
+ addClass(formatIconMenu, "fa-align-left");
582
+ formatIconMenu.setAttribute("aria-hidden", "true");
583
+ formatItem.appendChild(formatIconMenu);
584
+ const formatLabel = document.createElement("span");
585
+ formatLabel.textContent = "Format";
586
+ formatItem.appendChild(formatLabel);
587
+ formatItem.onclick = () => {
588
+ this.closeHamburgerMenu();
589
+ this.format();
590
+ };
591
+ this.hamburgerMenu.appendChild(formatItem);
592
+ }
593
+ const fullscreenItem = document.createElement("button");
594
+ fullscreenItem.className = "yasqe_hamburgerMenuItem";
595
+ const fullscreenIconMenu = document.createElement("i");
596
+ addClass(fullscreenIconMenu, "fas");
597
+ addClass(fullscreenIconMenu, "fa-expand");
598
+ fullscreenIconMenu.setAttribute("aria-hidden", "true");
599
+ fullscreenItem.appendChild(fullscreenIconMenu);
600
+ const fullscreenLabel = document.createElement("span");
601
+ fullscreenLabel.textContent = "Fullscreen";
602
+ fullscreenItem.appendChild(fullscreenLabel);
603
+ fullscreenItem.onclick = () => {
604
+ this.closeHamburgerMenu();
605
+ this.toggleFullscreen();
606
+ };
607
+ this.hamburgerMenu.appendChild(fullscreenItem);
608
+ this.hamburgerBtn.onclick = (e) => {
609
+ e.stopPropagation();
610
+ this.toggleHamburgerMenu();
611
+ };
612
+ document.addEventListener("click", (e) => {
613
+ if (this.hamburgerMenu &&
614
+ this.hamburgerBtn &&
615
+ !this.hamburgerMenu.contains(e.target) &&
616
+ !this.hamburgerBtn.contains(e.target)) {
617
+ this.closeHamburgerMenu();
618
+ }
619
+ });
620
+ }
621
+ toggleHamburgerMenu() {
622
+ if (!this.hamburgerMenu || !this.hamburgerBtn)
623
+ return;
624
+ const isActive = this.hamburgerMenu.classList.contains("active");
625
+ if (isActive) {
626
+ this.closeHamburgerMenu();
627
+ }
628
+ else {
629
+ addClass(this.hamburgerMenu, "active");
630
+ this.hamburgerBtn.setAttribute("aria-expanded", "true");
631
+ }
632
+ }
633
+ closeHamburgerMenu() {
634
+ if (!this.hamburgerMenu || !this.hamburgerBtn)
635
+ return;
636
+ removeClass(this.hamburgerMenu, "active");
637
+ this.hamburgerBtn.setAttribute("aria-expanded", "false");
480
638
  }
481
639
  toggleFullscreen() {
482
640
  var _a, _b;
@@ -1132,8 +1290,8 @@ export class Yasqe extends CodeMirror {
1132
1290
  }
1133
1291
  }
1134
1292
  setSaveButtonVisible(visible) {
1135
- if (this.saveBtn) {
1136
- this.saveBtn.style.display = visible ? "inline-flex" : "none";
1293
+ if (this.saveBtnWrapper) {
1294
+ this.saveBtnWrapper.style.display = visible ? "inline-flex" : "none";
1137
1295
  }
1138
1296
  }
1139
1297
  checkConstructVariables() {