@design.estate/dees-catalog 3.47.1 → 3.48.3

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 (33) hide show
  1. package/dist_bundle/bundle.js +4903 -2056
  2. package/dist_ts_web/00_commitinfo_data.js +1 -1
  3. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-browser.d.ts +50 -0
  4. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-browser.demo.d.ts +2 -0
  5. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-browser.demo.js +148 -0
  6. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-browser.js +520 -0
  7. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-columns.d.ts +99 -0
  8. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-columns.js +1731 -0
  9. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.d.ts +64 -0
  10. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.js +1232 -0
  11. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-preview.d.ts +37 -0
  12. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-preview.js +626 -0
  13. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/index.d.ts +6 -0
  14. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/index.js +7 -0
  15. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/interfaces.d.ts +48 -0
  16. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/interfaces.js +5 -0
  17. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/utilities.d.ts +39 -0
  18. package/dist_ts_web/elements/00group-dataview/dees-storage-browser/utilities.js +109 -0
  19. package/dist_ts_web/elements/00group-dataview/index.d.ts +1 -0
  20. package/dist_ts_web/elements/00group-dataview/index.js +2 -1
  21. package/dist_watch/bundle.js +4928 -2090
  22. package/dist_watch/bundle.js.map +4 -4
  23. package/package.json +3 -3
  24. package/ts_web/00_commitinfo_data.ts +1 -1
  25. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-browser.demo.ts +156 -0
  26. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-browser.ts +439 -0
  27. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-columns.ts +1652 -0
  28. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-keys.ts +1094 -0
  29. package/ts_web/elements/00group-dataview/dees-storage-browser/dees-storage-preview.ts +540 -0
  30. package/ts_web/elements/00group-dataview/dees-storage-browser/index.ts +6 -0
  31. package/ts_web/elements/00group-dataview/dees-storage-browser/interfaces.ts +37 -0
  32. package/ts_web/elements/00group-dataview/dees-storage-browser/utilities.ts +120 -0
  33. package/ts_web/elements/00group-dataview/index.ts +1 -0
@@ -0,0 +1,520 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { customElement, html, css, cssManager, property, state, DeesElement } from '@design.estate/dees-element';
36
+ import { themeDefaultStyles } from '../../00theme.js';
37
+ import { demoFunc } from './dees-storage-browser.demo.js';
38
+ import './dees-storage-columns.js';
39
+ import './dees-storage-keys.js';
40
+ import './dees-storage-preview.js';
41
+ let DeesStorageBrowser = (() => {
42
+ let _classDecorators = [customElement('dees-storage-browser')];
43
+ let _classDescriptor;
44
+ let _classExtraInitializers = [];
45
+ let _classThis;
46
+ let _classSuper = DeesElement;
47
+ let _dataProvider_decorators;
48
+ let _dataProvider_initializers = [];
49
+ let _dataProvider_extraInitializers = [];
50
+ let _bucketName_decorators;
51
+ let _bucketName_initializers = [];
52
+ let _bucketName_extraInitializers = [];
53
+ let _onChangeEvent_decorators;
54
+ let _onChangeEvent_initializers = [];
55
+ let _onChangeEvent_extraInitializers = [];
56
+ let _viewType_decorators;
57
+ let _viewType_initializers = [];
58
+ let _viewType_extraInitializers = [];
59
+ let _currentPrefix_decorators;
60
+ let _currentPrefix_initializers = [];
61
+ let _currentPrefix_extraInitializers = [];
62
+ let _selectedKey_decorators;
63
+ let _selectedKey_initializers = [];
64
+ let _selectedKey_extraInitializers = [];
65
+ let _refreshKey_decorators;
66
+ let _refreshKey_initializers = [];
67
+ let _refreshKey_extraInitializers = [];
68
+ let _previewWidth_decorators;
69
+ let _previewWidth_initializers = [];
70
+ let _previewWidth_extraInitializers = [];
71
+ let _isResizingPreview_decorators;
72
+ let _isResizingPreview_initializers = [];
73
+ let _isResizingPreview_extraInitializers = [];
74
+ let _recentChangeCount_decorators;
75
+ let _recentChangeCount_initializers = [];
76
+ let _recentChangeCount_extraInitializers = [];
77
+ let _isStreamConnected_decorators;
78
+ let _isStreamConnected_initializers = [];
79
+ let _isStreamConnected_extraInitializers = [];
80
+ var DeesStorageBrowser = class extends _classSuper {
81
+ static { _classThis = this; }
82
+ static {
83
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
84
+ _dataProvider_decorators = [property({ type: Object })];
85
+ _bucketName_decorators = [property({ type: String })];
86
+ _onChangeEvent_decorators = [property({ type: Object })];
87
+ _viewType_decorators = [state()];
88
+ _currentPrefix_decorators = [state()];
89
+ _selectedKey_decorators = [state()];
90
+ _refreshKey_decorators = [state()];
91
+ _previewWidth_decorators = [state()];
92
+ _isResizingPreview_decorators = [state()];
93
+ _recentChangeCount_decorators = [state()];
94
+ _isStreamConnected_decorators = [state()];
95
+ __esDecorate(this, null, _dataProvider_decorators, { kind: "accessor", name: "dataProvider", static: false, private: false, access: { has: obj => "dataProvider" in obj, get: obj => obj.dataProvider, set: (obj, value) => { obj.dataProvider = value; } }, metadata: _metadata }, _dataProvider_initializers, _dataProvider_extraInitializers);
96
+ __esDecorate(this, null, _bucketName_decorators, { kind: "accessor", name: "bucketName", static: false, private: false, access: { has: obj => "bucketName" in obj, get: obj => obj.bucketName, set: (obj, value) => { obj.bucketName = value; } }, metadata: _metadata }, _bucketName_initializers, _bucketName_extraInitializers);
97
+ __esDecorate(this, null, _onChangeEvent_decorators, { kind: "accessor", name: "onChangeEvent", static: false, private: false, access: { has: obj => "onChangeEvent" in obj, get: obj => obj.onChangeEvent, set: (obj, value) => { obj.onChangeEvent = value; } }, metadata: _metadata }, _onChangeEvent_initializers, _onChangeEvent_extraInitializers);
98
+ __esDecorate(this, null, _viewType_decorators, { kind: "accessor", name: "viewType", static: false, private: false, access: { has: obj => "viewType" in obj, get: obj => obj.viewType, set: (obj, value) => { obj.viewType = value; } }, metadata: _metadata }, _viewType_initializers, _viewType_extraInitializers);
99
+ __esDecorate(this, null, _currentPrefix_decorators, { kind: "accessor", name: "currentPrefix", static: false, private: false, access: { has: obj => "currentPrefix" in obj, get: obj => obj.currentPrefix, set: (obj, value) => { obj.currentPrefix = value; } }, metadata: _metadata }, _currentPrefix_initializers, _currentPrefix_extraInitializers);
100
+ __esDecorate(this, null, _selectedKey_decorators, { kind: "accessor", name: "selectedKey", static: false, private: false, access: { has: obj => "selectedKey" in obj, get: obj => obj.selectedKey, set: (obj, value) => { obj.selectedKey = value; } }, metadata: _metadata }, _selectedKey_initializers, _selectedKey_extraInitializers);
101
+ __esDecorate(this, null, _refreshKey_decorators, { kind: "accessor", name: "refreshKey", static: false, private: false, access: { has: obj => "refreshKey" in obj, get: obj => obj.refreshKey, set: (obj, value) => { obj.refreshKey = value; } }, metadata: _metadata }, _refreshKey_initializers, _refreshKey_extraInitializers);
102
+ __esDecorate(this, null, _previewWidth_decorators, { kind: "accessor", name: "previewWidth", static: false, private: false, access: { has: obj => "previewWidth" in obj, get: obj => obj.previewWidth, set: (obj, value) => { obj.previewWidth = value; } }, metadata: _metadata }, _previewWidth_initializers, _previewWidth_extraInitializers);
103
+ __esDecorate(this, null, _isResizingPreview_decorators, { kind: "accessor", name: "isResizingPreview", static: false, private: false, access: { has: obj => "isResizingPreview" in obj, get: obj => obj.isResizingPreview, set: (obj, value) => { obj.isResizingPreview = value; } }, metadata: _metadata }, _isResizingPreview_initializers, _isResizingPreview_extraInitializers);
104
+ __esDecorate(this, null, _recentChangeCount_decorators, { kind: "accessor", name: "recentChangeCount", static: false, private: false, access: { has: obj => "recentChangeCount" in obj, get: obj => obj.recentChangeCount, set: (obj, value) => { obj.recentChangeCount = value; } }, metadata: _metadata }, _recentChangeCount_initializers, _recentChangeCount_extraInitializers);
105
+ __esDecorate(this, null, _isStreamConnected_decorators, { kind: "accessor", name: "isStreamConnected", static: false, private: false, access: { has: obj => "isStreamConnected" in obj, get: obj => obj.isStreamConnected, set: (obj, value) => { obj.isStreamConnected = value; } }, metadata: _metadata }, _isStreamConnected_initializers, _isStreamConnected_extraInitializers);
106
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
107
+ DeesStorageBrowser = _classThis = _classDescriptor.value;
108
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
109
+ }
110
+ static demo = demoFunc;
111
+ static demoGroups = ['Data View'];
112
+ #dataProvider_accessor_storage = __runInitializers(this, _dataProvider_initializers, null);
113
+ get dataProvider() { return this.#dataProvider_accessor_storage; }
114
+ set dataProvider(value) { this.#dataProvider_accessor_storage = value; }
115
+ #bucketName_accessor_storage = (__runInitializers(this, _dataProvider_extraInitializers), __runInitializers(this, _bucketName_initializers, ''));
116
+ get bucketName() { return this.#bucketName_accessor_storage; }
117
+ set bucketName(value) { this.#bucketName_accessor_storage = value; }
118
+ #onChangeEvent_accessor_storage = (__runInitializers(this, _bucketName_extraInitializers), __runInitializers(this, _onChangeEvent_initializers, null));
119
+ /**
120
+ * Optional change stream subscription.
121
+ * Pass a function that takes a callback and returns an unsubscribe function.
122
+ */
123
+ get onChangeEvent() { return this.#onChangeEvent_accessor_storage; }
124
+ set onChangeEvent(value) { this.#onChangeEvent_accessor_storage = value; }
125
+ #viewType_accessor_storage = (__runInitializers(this, _onChangeEvent_extraInitializers), __runInitializers(this, _viewType_initializers, 'columns'));
126
+ get viewType() { return this.#viewType_accessor_storage; }
127
+ set viewType(value) { this.#viewType_accessor_storage = value; }
128
+ #currentPrefix_accessor_storage = (__runInitializers(this, _viewType_extraInitializers), __runInitializers(this, _currentPrefix_initializers, ''));
129
+ get currentPrefix() { return this.#currentPrefix_accessor_storage; }
130
+ set currentPrefix(value) { this.#currentPrefix_accessor_storage = value; }
131
+ #selectedKey_accessor_storage = (__runInitializers(this, _currentPrefix_extraInitializers), __runInitializers(this, _selectedKey_initializers, ''));
132
+ get selectedKey() { return this.#selectedKey_accessor_storage; }
133
+ set selectedKey(value) { this.#selectedKey_accessor_storage = value; }
134
+ #refreshKey_accessor_storage = (__runInitializers(this, _selectedKey_extraInitializers), __runInitializers(this, _refreshKey_initializers, 0));
135
+ get refreshKey() { return this.#refreshKey_accessor_storage; }
136
+ set refreshKey(value) { this.#refreshKey_accessor_storage = value; }
137
+ #previewWidth_accessor_storage = (__runInitializers(this, _refreshKey_extraInitializers), __runInitializers(this, _previewWidth_initializers, 700));
138
+ get previewWidth() { return this.#previewWidth_accessor_storage; }
139
+ set previewWidth(value) { this.#previewWidth_accessor_storage = value; }
140
+ #isResizingPreview_accessor_storage = (__runInitializers(this, _previewWidth_extraInitializers), __runInitializers(this, _isResizingPreview_initializers, false));
141
+ get isResizingPreview() { return this.#isResizingPreview_accessor_storage; }
142
+ set isResizingPreview(value) { this.#isResizingPreview_accessor_storage = value; }
143
+ #recentChangeCount_accessor_storage = (__runInitializers(this, _isResizingPreview_extraInitializers), __runInitializers(this, _recentChangeCount_initializers, 0));
144
+ get recentChangeCount() { return this.#recentChangeCount_accessor_storage; }
145
+ set recentChangeCount(value) { this.#recentChangeCount_accessor_storage = value; }
146
+ #isStreamConnected_accessor_storage = (__runInitializers(this, _recentChangeCount_extraInitializers), __runInitializers(this, _isStreamConnected_initializers, false));
147
+ get isStreamConnected() { return this.#isStreamConnected_accessor_storage; }
148
+ set isStreamConnected(value) { this.#isStreamConnected_accessor_storage = value; }
149
+ changeUnsubscribe = (__runInitializers(this, _isStreamConnected_extraInitializers), null);
150
+ static styles = [
151
+ cssManager.defaultStyles,
152
+ themeDefaultStyles,
153
+ css `
154
+ :host {
155
+ display: block;
156
+ height: 100%;
157
+ }
158
+
159
+ .browser-container {
160
+ display: flex;
161
+ flex-direction: column;
162
+ height: 100%;
163
+ }
164
+
165
+ .toolbar {
166
+ display: flex;
167
+ align-items: center;
168
+ gap: 12px;
169
+ padding: 12px;
170
+ background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.03)', 'rgba(0, 0, 0, 0.2)')};
171
+ border-radius: 8px;
172
+ margin-bottom: 16px;
173
+ }
174
+
175
+ .breadcrumb {
176
+ display: flex;
177
+ align-items: center;
178
+ gap: 4px;
179
+ flex: 1;
180
+ font-size: 14px;
181
+ color: ${cssManager.bdTheme('#71717a', '#999')};
182
+ }
183
+
184
+ .breadcrumb-item {
185
+ cursor: pointer;
186
+ padding: 4px 8px;
187
+ border-radius: 4px;
188
+ transition: background 0.15s;
189
+ }
190
+
191
+ .breadcrumb-item:hover {
192
+ background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.1)')};
193
+ color: ${cssManager.bdTheme('#18181b', '#fff')};
194
+ }
195
+
196
+ .breadcrumb-separator {
197
+ color: ${cssManager.bdTheme('#d4d4d8', '#555')};
198
+ }
199
+
200
+ .view-toggle {
201
+ display: flex;
202
+ gap: 4px;
203
+ }
204
+
205
+ .view-btn {
206
+ padding: 6px 12px;
207
+ background: transparent;
208
+ border: 1px solid ${cssManager.bdTheme('#d4d4d8', '#444')};
209
+ color: ${cssManager.bdTheme('#71717a', '#888')};
210
+ border-radius: 4px;
211
+ cursor: pointer;
212
+ font-size: 13px;
213
+ transition: all 0.15s;
214
+ }
215
+
216
+ .view-btn:hover {
217
+ border-color: ${cssManager.bdTheme('#a1a1aa', '#666')};
218
+ color: ${cssManager.bdTheme('#3f3f46', '#aaa')};
219
+ }
220
+
221
+ .view-btn.active {
222
+ background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.05)', 'rgba(255, 255, 255, 0.1)')};
223
+ border-color: ${cssManager.bdTheme('#a1a1aa', '#404040')};
224
+ color: ${cssManager.bdTheme('#18181b', '#e0e0e0')};
225
+ }
226
+
227
+ .content {
228
+ flex: 1;
229
+ display: grid;
230
+ grid-template-columns: 1fr;
231
+ gap: 0;
232
+ overflow: hidden;
233
+ }
234
+
235
+ .content.has-preview {
236
+ grid-template-columns: 1fr 4px var(--preview-width, 700px);
237
+ }
238
+
239
+ .resize-divider {
240
+ width: 4px;
241
+ background: transparent;
242
+ cursor: col-resize;
243
+ transition: background 0.2s;
244
+ }
245
+
246
+ .resize-divider:hover,
247
+ .resize-divider.active {
248
+ background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.1)', 'rgba(255, 255, 255, 0.2)')};
249
+ }
250
+
251
+ .main-view {
252
+ overflow: auto;
253
+ background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.02)', 'rgba(0, 0, 0, 0.2)')};
254
+ border-radius: 8px;
255
+ }
256
+
257
+ .preview-panel {
258
+ background: ${cssManager.bdTheme('rgba(0, 0, 0, 0.02)', 'rgba(0, 0, 0, 0.2)')};
259
+ border-radius: 8px;
260
+ overflow: hidden;
261
+ margin-left: 12px;
262
+ }
263
+
264
+ @media (max-width: 1024px) {
265
+ .content,
266
+ .content.has-preview {
267
+ grid-template-columns: 1fr;
268
+ }
269
+
270
+ .preview-panel,
271
+ .resize-divider {
272
+ display: none;
273
+ }
274
+ }
275
+
276
+ .stream-status {
277
+ display: flex;
278
+ align-items: center;
279
+ gap: 4px;
280
+ font-size: 11px;
281
+ color: ${cssManager.bdTheme('#71717a', '#888')};
282
+ margin-left: auto;
283
+ margin-right: 12px;
284
+ }
285
+
286
+ .stream-dot {
287
+ width: 6px;
288
+ height: 6px;
289
+ border-radius: 50%;
290
+ background: ${cssManager.bdTheme('#a1a1aa', '#888')};
291
+ }
292
+
293
+ .stream-dot.connected {
294
+ background: #22c55e;
295
+ }
296
+
297
+ .change-indicator {
298
+ display: flex;
299
+ align-items: center;
300
+ gap: 6px;
301
+ padding: 4px 8px;
302
+ background: rgba(245, 158, 11, 0.2);
303
+ border-radius: 4px;
304
+ font-size: 11px;
305
+ color: #f59e0b;
306
+ margin-right: 12px;
307
+ }
308
+
309
+ .change-indicator.pulse {
310
+ animation: pulse-orange 1s ease-in-out;
311
+ }
312
+
313
+ @keyframes pulse-orange {
314
+ 0% { background: rgba(245, 158, 11, 0.4); }
315
+ 100% { background: rgba(245, 158, 11, 0.2); }
316
+ }
317
+ `,
318
+ ];
319
+ async connectedCallback() {
320
+ super.connectedCallback();
321
+ this.subscribeToChanges();
322
+ }
323
+ async disconnectedCallback() {
324
+ await super.disconnectedCallback();
325
+ this.unsubscribeFromChanges();
326
+ }
327
+ /**
328
+ * Public method to trigger a refresh of child components
329
+ */
330
+ refresh() {
331
+ this.refreshKey++;
332
+ }
333
+ setViewType(type) {
334
+ this.viewType = type;
335
+ }
336
+ navigateToPrefix(prefix) {
337
+ this.currentPrefix = prefix;
338
+ this.selectedKey = '';
339
+ }
340
+ handleKeySelected(e) {
341
+ this.selectedKey = e.detail.key;
342
+ }
343
+ handleNavigate(e) {
344
+ this.navigateToPrefix(e.detail.prefix);
345
+ }
346
+ handleObjectDeleted(e) {
347
+ this.selectedKey = '';
348
+ this.refreshKey++;
349
+ }
350
+ updated(changedProperties) {
351
+ if (changedProperties.has('bucketName')) {
352
+ this.selectedKey = '';
353
+ this.currentPrefix = '';
354
+ this.recentChangeCount = 0;
355
+ this.unsubscribeFromChanges();
356
+ this.subscribeToChanges();
357
+ }
358
+ if (changedProperties.has('onChangeEvent')) {
359
+ this.unsubscribeFromChanges();
360
+ this.subscribeToChanges();
361
+ }
362
+ }
363
+ subscribeToChanges() {
364
+ if (!this.onChangeEvent) {
365
+ this.isStreamConnected = false;
366
+ return;
367
+ }
368
+ try {
369
+ this.changeUnsubscribe = this.onChangeEvent((event) => {
370
+ this.handleChange(event);
371
+ });
372
+ this.isStreamConnected = true;
373
+ }
374
+ catch (error) {
375
+ console.warn('[StorageBrowser] Failed to subscribe to changes:', error);
376
+ this.isStreamConnected = false;
377
+ }
378
+ }
379
+ unsubscribeFromChanges() {
380
+ if (this.changeUnsubscribe) {
381
+ this.changeUnsubscribe();
382
+ this.changeUnsubscribe = null;
383
+ }
384
+ this.isStreamConnected = false;
385
+ }
386
+ handleChange(event) {
387
+ this.recentChangeCount++;
388
+ this.refreshKey++;
389
+ }
390
+ startPreviewResize = (e) => {
391
+ e.preventDefault();
392
+ this.isResizingPreview = true;
393
+ document.addEventListener('mousemove', this.handlePreviewResize);
394
+ document.addEventListener('mouseup', this.endPreviewResize);
395
+ };
396
+ handlePreviewResize = (e) => {
397
+ if (!this.isResizingPreview)
398
+ return;
399
+ const contentEl = this.shadowRoot?.querySelector('.content');
400
+ if (!contentEl)
401
+ return;
402
+ const containerRect = contentEl.getBoundingClientRect();
403
+ const newWidth = Math.min(Math.max(containerRect.right - e.clientX, 250), 1000);
404
+ this.previewWidth = newWidth;
405
+ };
406
+ endPreviewResize = () => {
407
+ this.isResizingPreview = false;
408
+ document.removeEventListener('mousemove', this.handlePreviewResize);
409
+ document.removeEventListener('mouseup', this.endPreviewResize);
410
+ };
411
+ render() {
412
+ const breadcrumbParts = this.currentPrefix
413
+ ? this.currentPrefix.split('/').filter(Boolean)
414
+ : [];
415
+ return html `
416
+ <div class="browser-container">
417
+ <div class="toolbar">
418
+ <div class="breadcrumb">
419
+ <span
420
+ class="breadcrumb-item"
421
+ @click=${() => this.navigateToPrefix('')}
422
+ >
423
+ ${this.bucketName}
424
+ </span>
425
+ ${breadcrumbParts.map((part, index) => {
426
+ const prefix = breadcrumbParts.slice(0, index + 1).join('/') + '/';
427
+ return html `
428
+ <span class="breadcrumb-separator">/</span>
429
+ <span
430
+ class="breadcrumb-item"
431
+ @click=${() => this.navigateToPrefix(prefix)}
432
+ >
433
+ ${part}
434
+ </span>
435
+ `;
436
+ })}
437
+ </div>
438
+
439
+ ${this.onChangeEvent ? html `
440
+ <div class="stream-status">
441
+ <span class="stream-dot ${this.isStreamConnected ? 'connected' : ''}"></span>
442
+ ${this.isStreamConnected ? 'Live' : 'Offline'}
443
+ </div>
444
+ ` : ''}
445
+ ${this.recentChangeCount > 0
446
+ ? html `
447
+ <div class="change-indicator pulse">
448
+ ${this.recentChangeCount} change${this.recentChangeCount > 1 ? 's' : ''}
449
+ </div>
450
+ `
451
+ : ''}
452
+ <div class="view-toggle">
453
+ <button
454
+ class="view-btn ${this.viewType === 'columns' ? 'active' : ''}"
455
+ @click=${() => this.setViewType('columns')}
456
+ >
457
+ Columns
458
+ </button>
459
+ <button
460
+ class="view-btn ${this.viewType === 'keys' ? 'active' : ''}"
461
+ @click=${() => this.setViewType('keys')}
462
+ >
463
+ List
464
+ </button>
465
+ </div>
466
+ </div>
467
+
468
+ <div class="content ${this.selectedKey ? 'has-preview' : ''}" style="--preview-width: ${this.previewWidth}px">
469
+ <div class="main-view">
470
+ ${this.viewType === 'columns'
471
+ ? html `
472
+ <dees-storage-columns
473
+ .dataProvider=${this.dataProvider}
474
+ .bucketName=${this.bucketName}
475
+ .currentPrefix=${this.currentPrefix}
476
+ .refreshKey=${this.refreshKey}
477
+ @key-selected=${this.handleKeySelected}
478
+ @navigate=${this.handleNavigate}
479
+ ></dees-storage-columns>
480
+ `
481
+ : html `
482
+ <dees-storage-keys
483
+ .dataProvider=${this.dataProvider}
484
+ .bucketName=${this.bucketName}
485
+ .currentPrefix=${this.currentPrefix}
486
+ .refreshKey=${this.refreshKey}
487
+ @key-selected=${this.handleKeySelected}
488
+ @navigate=${this.handleNavigate}
489
+ ></dees-storage-keys>
490
+ `}
491
+ </div>
492
+
493
+ ${this.selectedKey
494
+ ? html `
495
+ <div
496
+ class="resize-divider ${this.isResizingPreview ? 'active' : ''}"
497
+ @mousedown=${this.startPreviewResize}
498
+ ></div>
499
+ <div class="preview-panel">
500
+ <dees-storage-preview
501
+ .dataProvider=${this.dataProvider}
502
+ .bucketName=${this.bucketName}
503
+ .objectKey=${this.selectedKey}
504
+ @object-deleted=${this.handleObjectDeleted}
505
+ ></dees-storage-preview>
506
+ </div>
507
+ `
508
+ : ''}
509
+ </div>
510
+ </div>
511
+ `;
512
+ }
513
+ static {
514
+ __runInitializers(_classThis, _classExtraInitializers);
515
+ }
516
+ };
517
+ return DeesStorageBrowser = _classThis;
518
+ })();
519
+ export { DeesStorageBrowser };
520
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVlcy1zdG9yYWdlLWJyb3dzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90c193ZWIvZWxlbWVudHMvMDBncm91cC1kYXRhdmlldy9kZWVzLXN0b3JhZ2UtYnJvd3Nlci9kZWVzLXN0b3JhZ2UtYnJvd3Nlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUUxRCxPQUFPLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sd0JBQXdCLENBQUM7QUFDaEMsT0FBTywyQkFBMkIsQ0FBQztJQVd0QixrQkFBa0I7NEJBRDlCLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQzs7OztzQkFDRSxXQUFXOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUFuQixTQUFRLFdBQVc7Ozs7d0NBSWhELFFBQVEsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsQ0FBQztzQ0FHMUIsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO3lDQU8xQixRQUFRLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7b0NBRzFCLEtBQUssRUFBRTt5Q0FHUCxLQUFLLEVBQUU7dUNBR1AsS0FBSyxFQUFFO3NDQUdQLEtBQUssRUFBRTt3Q0FHUCxLQUFLLEVBQUU7NkNBR1AsS0FBSyxFQUFFOzZDQUdQLEtBQUssRUFBRTs2Q0FHUCxLQUFLLEVBQUU7WUFqQ1IseUxBQWdCLFlBQVksNkJBQVosWUFBWSxtR0FBZ0M7WUFH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
@@ -0,0 +1,99 @@
1
+ import { DeesElement } from '@design.estate/dees-element';
2
+ import type { IS3DataProvider } from './interfaces.js';
3
+ declare global {
4
+ interface HTMLElementTagNameMap {
5
+ 'dees-storage-columns': DeesStorageColumns;
6
+ }
7
+ }
8
+ export declare class DeesStorageColumns extends DeesElement {
9
+ accessor dataProvider: IS3DataProvider | null;
10
+ accessor bucketName: string;
11
+ accessor currentPrefix: string;
12
+ accessor refreshKey: number;
13
+ private accessor columns;
14
+ private accessor loading;
15
+ private accessor showCreateDialog;
16
+ private accessor createDialogType;
17
+ private accessor createDialogPrefix;
18
+ private accessor createDialogName;
19
+ private accessor dragOverColumnIndex;
20
+ private accessor dragOverFolderPrefix;
21
+ private accessor uploading;
22
+ private accessor uploadProgress;
23
+ private accessor showMoveDialog;
24
+ private accessor moveSource;
25
+ private accessor moveDestination;
26
+ private accessor moveInProgress;
27
+ private accessor moveError;
28
+ private accessor showMovePickerDialog;
29
+ private accessor movePickerSource;
30
+ private accessor movePickerCurrentPrefix;
31
+ private accessor movePickerPrefixes;
32
+ private accessor movePickerLoading;
33
+ private accessor showRenameDialog;
34
+ private accessor renameSource;
35
+ private accessor renameName;
36
+ private accessor renameInProgress;
37
+ private accessor renameError;
38
+ private accessor draggedItem;
39
+ private resizing;
40
+ private readonly DEFAULT_COLUMN_WIDTH;
41
+ private readonly MIN_COLUMN_WIDTH;
42
+ private readonly MAX_COLUMN_WIDTH;
43
+ private dragCounters;
44
+ private folderHoverTimer;
45
+ private fileInputElement;
46
+ private folderInputElement;
47
+ static styles: import("@design.estate/dees-element").CSSResult[];
48
+ connectedCallback(): Promise<void>;
49
+ disconnectedCallback(): Promise<void>;
50
+ updated(changedProperties: Map<string, unknown>): void;
51
+ private loadInitialColumn;
52
+ private refreshAllColumns;
53
+ private selectFolder;
54
+ private scrollToEnd;
55
+ private startResize;
56
+ private handleResize;
57
+ private stopResize;
58
+ private selectFile;
59
+ private getFileIcon;
60
+ private handleFolderContextMenu;
61
+ private handleFileContextMenu;
62
+ private handleEmptySpaceContextMenu;
63
+ private openCreateDialog;
64
+ private ensureFileInputs;
65
+ private triggerFileUpload;
66
+ private uploadFiles;
67
+ private uploadFilesWithPaths;
68
+ private readFileAsBase64;
69
+ private refreshColumnByPrefix;
70
+ private handleColumnDragEnter;
71
+ private handleColumnDragOver;
72
+ private handleColumnDragLeave;
73
+ private handleColumnDrop;
74
+ private handleFolderDragEnter;
75
+ private handleFolderDragLeave;
76
+ private handleFolderDragOver;
77
+ private clearFolderHover;
78
+ private handleItemDragStart;
79
+ private handleItemDragEnd;
80
+ private openMovePickerDialog;
81
+ private navigateMovePicker;
82
+ private loadMovePickerPrefixes;
83
+ private selectMoveDestination;
84
+ private closeMovePickerDialog;
85
+ private initiateMove;
86
+ private executeMove;
87
+ private closeMoveDialog;
88
+ private openRenameDialog;
89
+ private executeRename;
90
+ private closeRenameDialog;
91
+ private renderRenameDialog;
92
+ private renderMoveDialog;
93
+ private renderMovePickerDialog;
94
+ private handleCreate;
95
+ private renderCreateDialog;
96
+ render(): import("@design.estate/dees-element").TemplateResult<1>;
97
+ private renderColumnWrapper;
98
+ private renderColumn;
99
+ }