@matdata/yasgui 5.10.0 → 5.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. package/README.md +6 -2
  2. package/build/ts/src/PersistentConfig.d.ts +10 -0
  3. package/build/ts/src/PersistentConfig.js +40 -0
  4. package/build/ts/src/PersistentConfig.js.map +1 -1
  5. package/build/ts/src/Tab.d.ts +17 -0
  6. package/build/ts/src/Tab.js +372 -15
  7. package/build/ts/src/Tab.js.map +1 -1
  8. package/build/ts/src/TabContextMenu.d.ts +1 -0
  9. package/build/ts/src/TabContextMenu.js +17 -0
  10. package/build/ts/src/TabContextMenu.js.map +1 -1
  11. package/build/ts/src/TabElements.d.ts +3 -0
  12. package/build/ts/src/TabElements.js +97 -28
  13. package/build/ts/src/TabElements.js.map +1 -1
  14. package/build/ts/src/TabSettingsModal.d.ts +2 -0
  15. package/build/ts/src/TabSettingsModal.js +44 -19
  16. package/build/ts/src/TabSettingsModal.js.map +1 -1
  17. package/build/ts/src/index.d.ts +3 -0
  18. package/build/ts/src/index.js +4 -0
  19. package/build/ts/src/index.js.map +1 -1
  20. package/build/ts/src/queryManagement/QueryBrowser.d.ts +64 -0
  21. package/build/ts/src/queryManagement/QueryBrowser.js +914 -0
  22. package/build/ts/src/queryManagement/QueryBrowser.js.map +1 -0
  23. package/build/ts/src/queryManagement/SaveManagedQueryModal.d.ts +55 -0
  24. package/build/ts/src/queryManagement/SaveManagedQueryModal.js +451 -0
  25. package/build/ts/src/queryManagement/SaveManagedQueryModal.js.map +1 -0
  26. package/build/ts/src/queryManagement/WorkspaceSettingsForm.d.ts +16 -0
  27. package/build/ts/src/queryManagement/WorkspaceSettingsForm.js +452 -0
  28. package/build/ts/src/queryManagement/WorkspaceSettingsForm.js.map +1 -0
  29. package/build/ts/src/queryManagement/backends/BaseGitProviderClient.d.ts +19 -0
  30. package/build/ts/src/queryManagement/backends/BaseGitProviderClient.js +77 -0
  31. package/build/ts/src/queryManagement/backends/BaseGitProviderClient.js.map +1 -0
  32. package/build/ts/src/queryManagement/backends/BitbucketProviderClient.d.ts +16 -0
  33. package/build/ts/src/queryManagement/backends/BitbucketProviderClient.js +269 -0
  34. package/build/ts/src/queryManagement/backends/BitbucketProviderClient.js.map +1 -0
  35. package/build/ts/src/queryManagement/backends/GitWorkspaceBackend.d.ts +26 -0
  36. package/build/ts/src/queryManagement/backends/GitWorkspaceBackend.js +93 -0
  37. package/build/ts/src/queryManagement/backends/GitWorkspaceBackend.js.map +1 -0
  38. package/build/ts/src/queryManagement/backends/GiteaProviderClient.d.ts +14 -0
  39. package/build/ts/src/queryManagement/backends/GiteaProviderClient.js +244 -0
  40. package/build/ts/src/queryManagement/backends/GiteaProviderClient.js.map +1 -0
  41. package/build/ts/src/queryManagement/backends/GithubProviderClient.d.ts +14 -0
  42. package/build/ts/src/queryManagement/backends/GithubProviderClient.js +252 -0
  43. package/build/ts/src/queryManagement/backends/GithubProviderClient.js.map +1 -0
  44. package/build/ts/src/queryManagement/backends/GitlabProviderClient.d.ts +16 -0
  45. package/build/ts/src/queryManagement/backends/GitlabProviderClient.js +246 -0
  46. package/build/ts/src/queryManagement/backends/GitlabProviderClient.js.map +1 -0
  47. package/build/ts/src/queryManagement/backends/InMemoryWorkspaceBackend.d.ts +21 -0
  48. package/build/ts/src/queryManagement/backends/InMemoryWorkspaceBackend.js +175 -0
  49. package/build/ts/src/queryManagement/backends/InMemoryWorkspaceBackend.js.map +1 -0
  50. package/build/ts/src/queryManagement/backends/SparqlWorkspaceBackend.d.ts +28 -0
  51. package/build/ts/src/queryManagement/backends/SparqlWorkspaceBackend.js +687 -0
  52. package/build/ts/src/queryManagement/backends/SparqlWorkspaceBackend.js.map +1 -0
  53. package/build/ts/src/queryManagement/backends/WorkspaceBackend.d.ts +15 -0
  54. package/build/ts/src/queryManagement/backends/WorkspaceBackend.js +2 -0
  55. package/build/ts/src/queryManagement/backends/WorkspaceBackend.js.map +1 -0
  56. package/build/ts/src/queryManagement/backends/errors.d.ts +7 -0
  57. package/build/ts/src/queryManagement/backends/errors.js +18 -0
  58. package/build/ts/src/queryManagement/backends/errors.js.map +1 -0
  59. package/build/ts/src/queryManagement/backends/getWorkspaceBackend.d.ts +8 -0
  60. package/build/ts/src/queryManagement/backends/getWorkspaceBackend.js +114 -0
  61. package/build/ts/src/queryManagement/backends/getWorkspaceBackend.js.map +1 -0
  62. package/build/ts/src/queryManagement/backends/gitRemote.d.ts +5 -0
  63. package/build/ts/src/queryManagement/backends/gitRemote.js +40 -0
  64. package/build/ts/src/queryManagement/backends/gitRemote.js.map +1 -0
  65. package/build/ts/src/queryManagement/browserFilter.d.ts +2 -0
  66. package/build/ts/src/queryManagement/browserFilter.js +7 -0
  67. package/build/ts/src/queryManagement/browserFilter.js.map +1 -0
  68. package/build/ts/src/queryManagement/index.d.ts +13 -0
  69. package/build/ts/src/queryManagement/index.js +14 -0
  70. package/build/ts/src/queryManagement/index.js.map +1 -0
  71. package/build/ts/src/queryManagement/normalizeQueryFilename.d.ts +1 -0
  72. package/build/ts/src/queryManagement/normalizeQueryFilename.js +10 -0
  73. package/build/ts/src/queryManagement/normalizeQueryFilename.js.map +1 -0
  74. package/build/ts/src/queryManagement/openManagedQuery.d.ts +15 -0
  75. package/build/ts/src/queryManagement/openManagedQuery.js +27 -0
  76. package/build/ts/src/queryManagement/openManagedQuery.js.map +1 -0
  77. package/build/ts/src/queryManagement/saveManagedQuery.d.ts +20 -0
  78. package/build/ts/src/queryManagement/saveManagedQuery.js +109 -0
  79. package/build/ts/src/queryManagement/saveManagedQuery.js.map +1 -0
  80. package/build/ts/src/queryManagement/textHash.d.ts +2 -0
  81. package/build/ts/src/queryManagement/textHash.js +13 -0
  82. package/build/ts/src/queryManagement/textHash.js.map +1 -0
  83. package/build/ts/src/queryManagement/types.d.ts +76 -0
  84. package/build/ts/src/queryManagement/types.js +2 -0
  85. package/build/ts/src/queryManagement/types.js.map +1 -0
  86. package/build/ts/src/queryManagement/validateWorkspaceConfig.d.ts +6 -0
  87. package/build/ts/src/queryManagement/validateWorkspaceConfig.js +33 -0
  88. package/build/ts/src/queryManagement/validateWorkspaceConfig.js.map +1 -0
  89. package/build/ts/src/version.d.ts +1 -1
  90. package/build/ts/src/version.js +1 -1
  91. package/build/yasgui.min.css +10 -1
  92. package/build/yasgui.min.css.map +3 -3
  93. package/build/yasgui.min.js +398 -172
  94. package/build/yasgui.min.js.map +4 -4
  95. package/package.json +1 -1
  96. package/src/PersistentConfig.ts +61 -0
  97. package/src/Tab.ts +431 -20
  98. package/src/TabContextMenu.ts +10 -0
  99. package/src/TabElements.scss +46 -7
  100. package/src/TabElements.ts +95 -27
  101. package/src/TabSettingsModal.scss +102 -5
  102. package/src/TabSettingsModal.ts +48 -25
  103. package/src/endpointSelect.scss +2 -3
  104. package/src/index.scss +4 -0
  105. package/src/index.ts +7 -0
  106. package/src/queryManagement/QueryBrowser.scss +418 -0
  107. package/src/queryManagement/QueryBrowser.ts +1079 -0
  108. package/src/queryManagement/SaveManagedQueryModal.scss +245 -0
  109. package/src/queryManagement/SaveManagedQueryModal.ts +554 -0
  110. package/src/queryManagement/WorkspaceSettingsForm.ts +546 -0
  111. package/src/queryManagement/backends/BaseGitProviderClient.ts +124 -0
  112. package/src/queryManagement/backends/BitbucketProviderClient.ts +403 -0
  113. package/src/queryManagement/backends/GitWorkspaceBackend.ts +96 -0
  114. package/src/queryManagement/backends/GiteaProviderClient.ts +316 -0
  115. package/src/queryManagement/backends/GithubProviderClient.ts +319 -0
  116. package/src/queryManagement/backends/GitlabProviderClient.ts +327 -0
  117. package/src/queryManagement/backends/InMemoryWorkspaceBackend.ts +175 -0
  118. package/src/queryManagement/backends/SparqlWorkspaceBackend.ts +729 -0
  119. package/src/queryManagement/backends/WorkspaceBackend.ts +41 -0
  120. package/src/queryManagement/backends/errors.ts +28 -0
  121. package/src/queryManagement/backends/getWorkspaceBackend.ts +132 -0
  122. package/src/queryManagement/backends/gitRemote.ts +54 -0
  123. package/src/queryManagement/browserFilter.ts +8 -0
  124. package/src/queryManagement/index.ts +15 -0
  125. package/src/queryManagement/normalizeQueryFilename.ts +8 -0
  126. package/src/queryManagement/openManagedQuery.ts +31 -0
  127. package/src/queryManagement/saveManagedQuery.ts +135 -0
  128. package/src/queryManagement/textHash.ts +15 -0
  129. package/src/queryManagement/types.ts +85 -0
  130. package/src/queryManagement/validateWorkspaceConfig.ts +40 -0
  131. package/src/tab.scss +4 -14
  132. package/src/themes.scss +14 -23
  133. package/src/version.ts +1 -1
@@ -0,0 +1,418 @@
1
+ .yasgui {
2
+ .yasgui-query-browser {
3
+ &__tooltip {
4
+ position: fixed;
5
+ left: 0;
6
+ top: 0;
7
+ display: none;
8
+ z-index: 1000;
9
+
10
+ max-width: 520px;
11
+ max-height: 280px;
12
+ overflow: hidden;
13
+
14
+ white-space: pre-wrap;
15
+ word-break: break-word;
16
+
17
+ padding: 6px 8px;
18
+ border-radius: 4px;
19
+ border: 1px solid var(--yasgui-border-color, #e0e0e0);
20
+ background: var(--yasgui-bg-primary, white);
21
+ color: var(--yasgui-text-primary, #000);
22
+ pointer-events: none;
23
+ }
24
+
25
+ &__tooltip.open {
26
+ display: block;
27
+ }
28
+
29
+ display: none;
30
+ position: fixed;
31
+ top: 0;
32
+ left: 0;
33
+ right: 0;
34
+ bottom: 0;
35
+ background: var(--yasgui-overlay-bg, rgba(0, 0, 0, 0.5));
36
+ z-index: 10000;
37
+
38
+ &.open {
39
+ display: flex;
40
+ align-items: stretch;
41
+ justify-content: flex-end;
42
+ }
43
+
44
+ &__drawer {
45
+ width: 420px;
46
+ max-width: 90vw;
47
+ height: 100%;
48
+ background: var(--yasgui-bg-primary, white);
49
+ border-left: 1px solid var(--yasgui-border-color, #e0e0e0);
50
+ display: flex;
51
+ flex-direction: column;
52
+ }
53
+
54
+ &__header {
55
+ border-bottom: 1px solid var(--yasgui-border-color, #e0e0e0);
56
+ padding: 12px;
57
+ display: flex;
58
+ flex-direction: column;
59
+ gap: 8px;
60
+ }
61
+
62
+ &__header-top {
63
+ display: flex;
64
+ align-items: center;
65
+ justify-content: space-between;
66
+ gap: 12px;
67
+ }
68
+
69
+ &__header-buttons {
70
+ display: flex;
71
+ align-items: center;
72
+ gap: 4px;
73
+ }
74
+
75
+ &__help,
76
+ &__close {
77
+ background: none;
78
+ border: none;
79
+ padding: 6px;
80
+ color: var(--yasgui-text-secondary, #666);
81
+ cursor: pointer;
82
+ border-radius: 4px;
83
+ display: flex;
84
+ align-items: center;
85
+ justify-content: center;
86
+
87
+ i {
88
+ font-size: 20px;
89
+ }
90
+
91
+ &:hover {
92
+ color: var(--yasgui-text-primary, #000);
93
+ background: var(--yasgui-bg-secondary, #f5f5f5);
94
+ }
95
+ }
96
+
97
+ &__title {
98
+ font-weight: 600;
99
+ color: var(--yasgui-text-primary, #000);
100
+ }
101
+
102
+ &__header-controls {
103
+ display: flex;
104
+ gap: 8px;
105
+
106
+ select,
107
+ input {
108
+ flex: 1;
109
+ padding: 6px 8px;
110
+ border: 1px solid var(--yasgui-border-color, #e0e0e0);
111
+ border-radius: 4px;
112
+ background: var(--yasgui-bg-primary, white);
113
+ color: var(--yasgui-text-primary, #000);
114
+ }
115
+ }
116
+
117
+ &__body {
118
+ flex: 1;
119
+ overflow: auto;
120
+ padding: 12px;
121
+ display: flex;
122
+ flex-direction: column;
123
+ gap: 8px;
124
+ }
125
+
126
+ &__back {
127
+ display: none;
128
+ }
129
+
130
+ &__status {
131
+ color: var(--yasgui-text-secondary, #666);
132
+ font-size: 13px;
133
+ }
134
+
135
+ &__list {
136
+ display: flex;
137
+ flex-direction: column;
138
+ gap: 2px;
139
+ }
140
+
141
+ &__row {
142
+ width: 100%;
143
+ text-align: left;
144
+ padding: 8px 10px;
145
+ border: 1px solid var(--yasgui-border-color, #e0e0e0);
146
+ border-radius: 4px;
147
+ background: var(--yasgui-bg-primary, white);
148
+ color: var(--yasgui-text-primary, #000);
149
+ cursor: pointer;
150
+
151
+ &:hover {
152
+ opacity: 0.85;
153
+ }
154
+ .yasgui-query-browser__actions {
155
+ margin-left: auto;
156
+ display: inline-flex;
157
+ align-items: center;
158
+ gap: 6px;
159
+ opacity: 0;
160
+ pointer-events: none;
161
+ }
162
+
163
+ &:hover .yasgui-query-browser__actions,
164
+ &:focus-within .yasgui-query-browser__actions {
165
+ opacity: 1;
166
+ pointer-events: auto;
167
+ }
168
+
169
+ .yasgui-query-browser__action {
170
+ appearance: none;
171
+ background: transparent;
172
+ border: 0;
173
+ padding: 2px 6px;
174
+ cursor: pointer;
175
+ font: inherit;
176
+ color: inherit;
177
+ opacity: 0.85;
178
+ position: relative;
179
+
180
+ &.loading {
181
+ opacity: 0.5;
182
+ cursor: not-allowed;
183
+ padding-right: 20px;
184
+
185
+ &::after {
186
+ content: "";
187
+ position: absolute;
188
+ right: 4px;
189
+ top: 50%;
190
+ transform: translateY(-50%);
191
+ width: 10px;
192
+ height: 10px;
193
+ border: 2px solid currentColor;
194
+ border-top-color: transparent;
195
+ border-radius: 50%;
196
+ animation: queryBrowserActionSpin 0.8s linear infinite;
197
+ }
198
+ }
199
+
200
+ &:disabled {
201
+ opacity: 0.5;
202
+ cursor: not-allowed;
203
+ }
204
+ }
205
+
206
+ .yasgui-query-browser__action:hover,
207
+ .yasgui-query-browser__action:focus-visible {
208
+ opacity: 1;
209
+ text-decoration: underline;
210
+ outline: none;
211
+ }
212
+
213
+ .yasgui-query-browser__action--danger {
214
+ font-weight: 600;
215
+ }
216
+ }
217
+
218
+ &__footer {
219
+ border-top: 1px solid var(--yasgui-border-color, #e0e0e0);
220
+ padding: 12px;
221
+ }
222
+
223
+ &__tree-row {
224
+ width: 100%;
225
+ text-align: left;
226
+ display: flex;
227
+ align-items: center;
228
+ gap: 6px;
229
+ padding: 4px 6px;
230
+ border: 1px solid transparent;
231
+ border-radius: 4px;
232
+ background: transparent;
233
+ color: var(--yasgui-text-primary, #000);
234
+ cursor: pointer;
235
+
236
+ &:hover {
237
+ background: var(--yasgui-bg-secondary, #f7f7f7);
238
+ border-color: var(--yasgui-border-color, #e0e0e0);
239
+ }
240
+
241
+ .yasgui-query-browser__actions {
242
+ margin-left: auto;
243
+ display: inline-flex;
244
+ align-items: center;
245
+ gap: 6px;
246
+ opacity: 0;
247
+ pointer-events: none;
248
+ }
249
+
250
+ &:hover .yasgui-query-browser__actions,
251
+ &:focus-within .yasgui-query-browser__actions {
252
+ opacity: 1;
253
+ pointer-events: auto;
254
+ }
255
+
256
+ .yasgui-query-browser__action {
257
+ appearance: none;
258
+ background: transparent;
259
+ border: 0;
260
+ padding: 2px 6px;
261
+ cursor: pointer;
262
+ font: inherit;
263
+ color: inherit;
264
+ opacity: 0.85;
265
+ position: relative;
266
+
267
+ &.loading {
268
+ opacity: 0.5;
269
+ cursor: not-allowed;
270
+ padding-right: 20px;
271
+
272
+ &::after {
273
+ content: "";
274
+ position: absolute;
275
+ right: 4px;
276
+ top: 50%;
277
+ transform: translateY(-50%);
278
+ width: 10px;
279
+ height: 10px;
280
+ border: 2px solid currentColor;
281
+ border-top-color: transparent;
282
+ border-radius: 50%;
283
+ animation: queryBrowserActionSpin 0.8s linear infinite;
284
+ }
285
+ }
286
+
287
+ &:disabled {
288
+ opacity: 0.5;
289
+ cursor: not-allowed;
290
+ }
291
+ }
292
+
293
+ .yasgui-query-browser__action:hover,
294
+ .yasgui-query-browser__action:focus-visible {
295
+ opacity: 1;
296
+ text-decoration: underline;
297
+ outline: none;
298
+ }
299
+
300
+ .yasgui-query-browser__action--danger {
301
+ font-weight: 600;
302
+ }
303
+ }
304
+
305
+ &__tree-caret {
306
+ width: 16px;
307
+ color: var(--yasgui-text-secondary, #666);
308
+ flex: 0 0 auto;
309
+ }
310
+
311
+ &__tree-caret--placeholder {
312
+ visibility: hidden;
313
+ }
314
+
315
+ &__tree-icon {
316
+ width: 16px;
317
+ color: var(--yasgui-text-secondary, #666);
318
+ flex: 0 0 auto;
319
+ }
320
+
321
+ &__tree-label {
322
+ flex: 1;
323
+ overflow: hidden;
324
+ text-overflow: ellipsis;
325
+ white-space: nowrap;
326
+ }
327
+
328
+ &__tree-meta {
329
+ padding: 4px 8px;
330
+ font-size: 13px;
331
+ color: var(--yasgui-text-secondary, #666);
332
+ }
333
+
334
+ &__tree-meta--error {
335
+ color: var(--yasgui-text-secondary, #666);
336
+ }
337
+
338
+ &__empty-state {
339
+ display: flex;
340
+ flex-direction: column;
341
+ align-items: center;
342
+ justify-content: center;
343
+ padding: 40px 20px;
344
+ text-align: center;
345
+ gap: 16px;
346
+ }
347
+
348
+ &__empty-icon {
349
+ color: var(--yasgui-text-secondary, #999);
350
+ opacity: 0.6;
351
+
352
+ i {
353
+ font-size: 64px;
354
+ }
355
+ }
356
+
357
+ &__empty-title {
358
+ margin: 0;
359
+ font-size: 18px;
360
+ font-weight: 600;
361
+ color: var(--yasgui-text-primary, #000);
362
+ }
363
+
364
+ &__empty-description {
365
+ margin: 0;
366
+ max-width: 360px;
367
+ font-size: 14px;
368
+ line-height: 1.5;
369
+ color: var(--yasgui-text-secondary, #666);
370
+ }
371
+
372
+ &__empty-actions {
373
+ display: flex;
374
+ flex-direction: column;
375
+ align-items: center;
376
+ gap: 12px;
377
+ margin-top: 8px;
378
+ }
379
+
380
+ &__empty-button {
381
+ padding: 10px 20px;
382
+ border-radius: 6px;
383
+ border: none;
384
+ font-size: 14px;
385
+ font-weight: 500;
386
+ cursor: pointer;
387
+ transition: all 0.2s;
388
+
389
+ &--primary {
390
+ background: var(--yasgui-accent-color, #337ab7);
391
+ color: white;
392
+
393
+ &:hover {
394
+ background: var(--yasgui-accent-color-hover, #2a6496);
395
+ }
396
+
397
+ &:active {
398
+ transform: translateY(1px);
399
+ }
400
+ }
401
+ }
402
+
403
+ &__empty-link {
404
+ font-size: 14px;
405
+ color: var(--yasgui-accent-color, #337ab7);
406
+ text-decoration: none;
407
+
408
+ &:hover {
409
+ text-decoration: underline;
410
+ }
411
+ }
412
+ }
413
+ }
414
+ @keyframes queryBrowserActionSpin {
415
+ to {
416
+ transform: translateY(-50%) rotate(360deg);
417
+ }
418
+ }