@design.estate/dees-wcctools 1.2.0 → 1.3.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.
- package/dist_bundle/bundle.js +1700 -264
- package/dist_bundle/bundle.js.map +4 -4
- package/dist_ts_demotools/demotools.d.ts +1 -1
- package/dist_ts_demotools/demotools.js +86 -38
- package/dist_ts_web/00_commitinfo_data.js +1 -1
- package/dist_ts_web/elements/wcc-dashboard.d.ts +10 -10
- package/dist_ts_web/elements/wcc-dashboard.js +317 -245
- package/dist_ts_web/elements/wcc-frame.d.ts +3 -3
- package/dist_ts_web/elements/wcc-frame.js +108 -57
- package/dist_ts_web/elements/wcc-properties.d.ts +14 -8
- package/dist_ts_web/elements/wcc-properties.js +442 -323
- package/dist_ts_web/elements/wcc-record-button.d.ts +12 -0
- package/dist_ts_web/elements/wcc-record-button.js +165 -0
- package/dist_ts_web/elements/wcc-recording-panel.d.ts +42 -0
- package/dist_ts_web/elements/wcc-recording-panel.js +1063 -0
- package/dist_ts_web/elements/wcc-sidebar.d.ts +4 -4
- package/dist_ts_web/elements/wcc-sidebar.js +125 -71
- package/dist_ts_web/index.d.ts +3 -0
- package/dist_ts_web/index.js +5 -1
- package/dist_ts_web/services/recorder.service.d.ts +44 -0
- package/dist_ts_web/services/recorder.service.js +306 -0
- package/dist_watch/bundle.js +1939 -521
- package/dist_watch/bundle.js.map +4 -4
- package/package.json +10 -10
- package/readme.md +133 -141
- package/ts_web/00_commitinfo_data.ts +1 -1
- package/ts_web/elements/wcc-dashboard.ts +10 -10
- package/ts_web/elements/wcc-frame.ts +3 -3
- package/ts_web/elements/wcc-properties.ts +53 -9
- package/ts_web/elements/wcc-record-button.ts +108 -0
- package/ts_web/elements/wcc-recording-panel.ts +974 -0
- package/ts_web/elements/wcc-sidebar.ts +4 -4
- package/ts_web/index.ts +5 -0
- package/ts_web/readme.md +123 -0
- package/ts_web/services/recorder.service.ts +391 -0
|
@@ -1,11 +1,36 @@
|
|
|
1
|
-
var
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
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;
|
|
6
27
|
};
|
|
7
|
-
var
|
|
8
|
-
|
|
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;
|
|
9
34
|
};
|
|
10
35
|
import { DeesElement, property, html, customElement, queryAsync, render, domtools } from '@design.estate/dees-element';
|
|
11
36
|
import { resolveTemplateFactory } from './wcctools.helpers.js';
|
|
@@ -18,30 +43,117 @@ import {} from './wcc-properties.js';
|
|
|
18
43
|
import {} from './wcc-sidebar.js';
|
|
19
44
|
import { breakpoints } from '@design.estate/dees-domtools';
|
|
20
45
|
import { WccFrame } from './wcc-frame.js';
|
|
21
|
-
let WccDashboard =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
46
|
+
let WccDashboard = (() => {
|
|
47
|
+
let _classDecorators = [customElement('wcc-dashboard')];
|
|
48
|
+
let _classDescriptor;
|
|
49
|
+
let _classExtraInitializers = [];
|
|
50
|
+
let _classThis;
|
|
51
|
+
let _classSuper = DeesElement;
|
|
52
|
+
let _selectedType_decorators;
|
|
53
|
+
let _selectedType_initializers = [];
|
|
54
|
+
let _selectedType_extraInitializers = [];
|
|
55
|
+
let _selectedItemName_decorators;
|
|
56
|
+
let _selectedItemName_initializers = [];
|
|
57
|
+
let _selectedItemName_extraInitializers = [];
|
|
58
|
+
let _selectedItem_decorators;
|
|
59
|
+
let _selectedItem_initializers = [];
|
|
60
|
+
let _selectedItem_extraInitializers = [];
|
|
61
|
+
let _selectedViewport_decorators;
|
|
62
|
+
let _selectedViewport_initializers = [];
|
|
63
|
+
let _selectedViewport_extraInitializers = [];
|
|
64
|
+
let _selectedTheme_decorators;
|
|
65
|
+
let _selectedTheme_initializers = [];
|
|
66
|
+
let _selectedTheme_extraInitializers = [];
|
|
67
|
+
let _isFullscreen_decorators;
|
|
68
|
+
let _isFullscreen_initializers = [];
|
|
69
|
+
let _isFullscreen_extraInitializers = [];
|
|
70
|
+
let _pages_decorators;
|
|
71
|
+
let _pages_initializers = [];
|
|
72
|
+
let _pages_extraInitializers = [];
|
|
73
|
+
let _elements_decorators;
|
|
74
|
+
let _elements_initializers = [];
|
|
75
|
+
let _elements_extraInitializers = [];
|
|
76
|
+
let _warning_decorators;
|
|
77
|
+
let _warning_initializers = [];
|
|
78
|
+
let _warning_extraInitializers = [];
|
|
79
|
+
let _wccFrame_decorators;
|
|
80
|
+
let _wccFrame_initializers = [];
|
|
81
|
+
let _wccFrame_extraInitializers = [];
|
|
82
|
+
var WccDashboard = class extends _classSuper {
|
|
83
|
+
static { _classThis = this; }
|
|
84
|
+
static {
|
|
85
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
86
|
+
_selectedType_decorators = [property()];
|
|
87
|
+
_selectedItemName_decorators = [property()];
|
|
88
|
+
_selectedItem_decorators = [property()];
|
|
89
|
+
_selectedViewport_decorators = [property()];
|
|
90
|
+
_selectedTheme_decorators = [property()];
|
|
91
|
+
_isFullscreen_decorators = [property()];
|
|
92
|
+
_pages_decorators = [property()];
|
|
93
|
+
_elements_decorators = [property()];
|
|
94
|
+
_warning_decorators = [property()];
|
|
95
|
+
_wccFrame_decorators = [queryAsync('wcc-frame')];
|
|
96
|
+
__esDecorate(this, null, _selectedType_decorators, { kind: "accessor", name: "selectedType", static: false, private: false, access: { has: obj => "selectedType" in obj, get: obj => obj.selectedType, set: (obj, value) => { obj.selectedType = value; } }, metadata: _metadata }, _selectedType_initializers, _selectedType_extraInitializers);
|
|
97
|
+
__esDecorate(this, null, _selectedItemName_decorators, { kind: "accessor", name: "selectedItemName", static: false, private: false, access: { has: obj => "selectedItemName" in obj, get: obj => obj.selectedItemName, set: (obj, value) => { obj.selectedItemName = value; } }, metadata: _metadata }, _selectedItemName_initializers, _selectedItemName_extraInitializers);
|
|
98
|
+
__esDecorate(this, null, _selectedItem_decorators, { kind: "accessor", name: "selectedItem", static: false, private: false, access: { has: obj => "selectedItem" in obj, get: obj => obj.selectedItem, set: (obj, value) => { obj.selectedItem = value; } }, metadata: _metadata }, _selectedItem_initializers, _selectedItem_extraInitializers);
|
|
99
|
+
__esDecorate(this, null, _selectedViewport_decorators, { kind: "accessor", name: "selectedViewport", static: false, private: false, access: { has: obj => "selectedViewport" in obj, get: obj => obj.selectedViewport, set: (obj, value) => { obj.selectedViewport = value; } }, metadata: _metadata }, _selectedViewport_initializers, _selectedViewport_extraInitializers);
|
|
100
|
+
__esDecorate(this, null, _selectedTheme_decorators, { kind: "accessor", name: "selectedTheme", static: false, private: false, access: { has: obj => "selectedTheme" in obj, get: obj => obj.selectedTheme, set: (obj, value) => { obj.selectedTheme = value; } }, metadata: _metadata }, _selectedTheme_initializers, _selectedTheme_extraInitializers);
|
|
101
|
+
__esDecorate(this, null, _isFullscreen_decorators, { kind: "accessor", name: "isFullscreen", static: false, private: false, access: { has: obj => "isFullscreen" in obj, get: obj => obj.isFullscreen, set: (obj, value) => { obj.isFullscreen = value; } }, metadata: _metadata }, _isFullscreen_initializers, _isFullscreen_extraInitializers);
|
|
102
|
+
__esDecorate(this, null, _pages_decorators, { kind: "accessor", name: "pages", static: false, private: false, access: { has: obj => "pages" in obj, get: obj => obj.pages, set: (obj, value) => { obj.pages = value; } }, metadata: _metadata }, _pages_initializers, _pages_extraInitializers);
|
|
103
|
+
__esDecorate(this, null, _elements_decorators, { kind: "accessor", name: "elements", static: false, private: false, access: { has: obj => "elements" in obj, get: obj => obj.elements, set: (obj, value) => { obj.elements = value; } }, metadata: _metadata }, _elements_initializers, _elements_extraInitializers);
|
|
104
|
+
__esDecorate(this, null, _warning_decorators, { kind: "accessor", name: "warning", static: false, private: false, access: { has: obj => "warning" in obj, get: obj => obj.warning, set: (obj, value) => { obj.warning = value; } }, metadata: _metadata }, _warning_initializers, _warning_extraInitializers);
|
|
105
|
+
__esDecorate(this, null, _wccFrame_decorators, { kind: "accessor", name: "wccFrame", static: false, private: false, access: { has: obj => "wccFrame" in obj, get: obj => obj.wccFrame, set: (obj, value) => { obj.wccFrame = value; } }, metadata: _metadata }, _wccFrame_initializers, _wccFrame_extraInitializers);
|
|
106
|
+
__esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
|
|
107
|
+
WccDashboard = _classThis = _classDescriptor.value;
|
|
108
|
+
if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
|
|
109
|
+
__runInitializers(_classThis, _classExtraInitializers);
|
|
38
110
|
}
|
|
39
|
-
|
|
40
|
-
|
|
111
|
+
#selectedType_accessor_storage = __runInitializers(this, _selectedType_initializers, void 0);
|
|
112
|
+
get selectedType() { return this.#selectedType_accessor_storage; }
|
|
113
|
+
set selectedType(value) { this.#selectedType_accessor_storage = value; }
|
|
114
|
+
#selectedItemName_accessor_storage = (__runInitializers(this, _selectedType_extraInitializers), __runInitializers(this, _selectedItemName_initializers, void 0));
|
|
115
|
+
get selectedItemName() { return this.#selectedItemName_accessor_storage; }
|
|
116
|
+
set selectedItemName(value) { this.#selectedItemName_accessor_storage = value; }
|
|
117
|
+
#selectedItem_accessor_storage = (__runInitializers(this, _selectedItemName_extraInitializers), __runInitializers(this, _selectedItem_initializers, void 0));
|
|
118
|
+
get selectedItem() { return this.#selectedItem_accessor_storage; }
|
|
119
|
+
set selectedItem(value) { this.#selectedItem_accessor_storage = value; }
|
|
120
|
+
#selectedViewport_accessor_storage = (__runInitializers(this, _selectedItem_extraInitializers), __runInitializers(this, _selectedViewport_initializers, 'desktop'));
|
|
121
|
+
get selectedViewport() { return this.#selectedViewport_accessor_storage; }
|
|
122
|
+
set selectedViewport(value) { this.#selectedViewport_accessor_storage = value; }
|
|
123
|
+
#selectedTheme_accessor_storage = (__runInitializers(this, _selectedViewport_extraInitializers), __runInitializers(this, _selectedTheme_initializers, 'dark'));
|
|
124
|
+
get selectedTheme() { return this.#selectedTheme_accessor_storage; }
|
|
125
|
+
set selectedTheme(value) { this.#selectedTheme_accessor_storage = value; }
|
|
126
|
+
#isFullscreen_accessor_storage = (__runInitializers(this, _selectedTheme_extraInitializers), __runInitializers(this, _isFullscreen_initializers, false));
|
|
127
|
+
get isFullscreen() { return this.#isFullscreen_accessor_storage; }
|
|
128
|
+
set isFullscreen(value) { this.#isFullscreen_accessor_storage = value; }
|
|
129
|
+
#pages_accessor_storage = (__runInitializers(this, _isFullscreen_extraInitializers), __runInitializers(this, _pages_initializers, {}));
|
|
130
|
+
get pages() { return this.#pages_accessor_storage; }
|
|
131
|
+
set pages(value) { this.#pages_accessor_storage = value; }
|
|
132
|
+
#elements_accessor_storage = (__runInitializers(this, _pages_extraInitializers), __runInitializers(this, _elements_initializers, {}));
|
|
133
|
+
get elements() { return this.#elements_accessor_storage; }
|
|
134
|
+
set elements(value) { this.#elements_accessor_storage = value; }
|
|
135
|
+
#warning_accessor_storage = (__runInitializers(this, _elements_extraInitializers), __runInitializers(this, _warning_initializers, null));
|
|
136
|
+
get warning() { return this.#warning_accessor_storage; }
|
|
137
|
+
set warning(value) { this.#warning_accessor_storage = value; }
|
|
138
|
+
frameScrollY = (__runInitializers(this, _warning_extraInitializers), 0);
|
|
139
|
+
sidebarScrollY = 0;
|
|
140
|
+
scrollPositionsApplied = false;
|
|
141
|
+
#wccFrame_accessor_storage = __runInitializers(this, _wccFrame_initializers, void 0);
|
|
142
|
+
get wccFrame() { return this.#wccFrame_accessor_storage; }
|
|
143
|
+
set wccFrame(value) { this.#wccFrame_accessor_storage = value; }
|
|
144
|
+
constructor(elementsArg, pagesArg) {
|
|
145
|
+
super();
|
|
146
|
+
if (elementsArg) {
|
|
147
|
+
this.elements = elementsArg;
|
|
148
|
+
console.log('got elements:');
|
|
149
|
+
console.log(this.elements);
|
|
150
|
+
}
|
|
151
|
+
if (pagesArg) {
|
|
152
|
+
this.pages = pagesArg;
|
|
153
|
+
}
|
|
41
154
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return html `
|
|
155
|
+
render() {
|
|
156
|
+
return html `
|
|
45
157
|
<style>
|
|
46
158
|
:host {
|
|
47
159
|
background: #fcfcfc;
|
|
@@ -57,14 +169,14 @@ let WccDashboard = class WccDashboard extends DeesElement {
|
|
|
57
169
|
.selectedItem=${this.selectedItem}
|
|
58
170
|
.isFullscreen=${this.isFullscreen}
|
|
59
171
|
@selectedType=${(eventArg) => {
|
|
60
|
-
|
|
61
|
-
|
|
172
|
+
this.selectedType = eventArg.detail;
|
|
173
|
+
}}
|
|
62
174
|
@selectedItemName=${(eventArg) => {
|
|
63
|
-
|
|
64
|
-
|
|
175
|
+
this.selectedItemName = eventArg.detail;
|
|
176
|
+
}}
|
|
65
177
|
@selectedItem=${(eventArg) => {
|
|
66
|
-
|
|
67
|
-
|
|
178
|
+
this.selectedItem = eventArg.detail;
|
|
179
|
+
}}
|
|
68
180
|
></wcc-sidebar>
|
|
69
181
|
<wcc-properties
|
|
70
182
|
.dashboardRef=${this}
|
|
@@ -74,239 +186,199 @@ let WccDashboard = class WccDashboard extends DeesElement {
|
|
|
74
186
|
.selectedTheme=${this.selectedTheme}
|
|
75
187
|
.isFullscreen=${this.isFullscreen}
|
|
76
188
|
@selectedViewport=${(eventArg) => {
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
189
|
+
this.selectedViewport = eventArg.detail;
|
|
190
|
+
this.scheduleUpdate();
|
|
191
|
+
}}
|
|
80
192
|
@selectedTheme=${(eventArg) => {
|
|
81
|
-
|
|
82
|
-
|
|
193
|
+
this.selectedTheme = eventArg.detail;
|
|
194
|
+
}}
|
|
83
195
|
@editorStateChanged=${async (eventArg) => {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
196
|
+
const frame = await this.wccFrame;
|
|
197
|
+
if (frame) {
|
|
198
|
+
frame.advancedEditorOpen = eventArg.detail.isOpen;
|
|
199
|
+
frame.requestUpdate();
|
|
200
|
+
}
|
|
201
|
+
}}
|
|
90
202
|
@toggleFullscreen=${() => {
|
|
91
|
-
|
|
92
|
-
|
|
203
|
+
this.toggleFullscreen();
|
|
204
|
+
}}
|
|
93
205
|
></wcc-properties>
|
|
94
206
|
<wcc-frame id="wccFrame" viewport=${this.selectedViewport} .isFullscreen=${this.isFullscreen}>
|
|
95
207
|
</wcc-frame>
|
|
96
208
|
`;
|
|
97
|
-
}
|
|
98
|
-
setWarning(warningTextArg) {
|
|
99
|
-
if (this.warning !== warningTextArg) {
|
|
100
|
-
console.log(warningTextArg);
|
|
101
|
-
this.warning = warningTextArg;
|
|
102
|
-
setTimeout(() => {
|
|
103
|
-
this.scheduleUpdate();
|
|
104
|
-
}, 0);
|
|
105
209
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
document.addEventListener('keydown', (event) => {
|
|
114
|
-
if (event.key === 'Escape' && this.isFullscreen) {
|
|
115
|
-
this.isFullscreen = false;
|
|
210
|
+
setWarning(warningTextArg) {
|
|
211
|
+
if (this.warning !== warningTextArg) {
|
|
212
|
+
console.log(warningTextArg);
|
|
213
|
+
this.warning = warningTextArg;
|
|
214
|
+
setTimeout(() => {
|
|
215
|
+
this.scheduleUpdate();
|
|
216
|
+
}, 0);
|
|
116
217
|
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
218
|
+
}
|
|
219
|
+
toggleFullscreen() {
|
|
220
|
+
this.isFullscreen = !this.isFullscreen;
|
|
221
|
+
}
|
|
222
|
+
async firstUpdated() {
|
|
223
|
+
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
|
224
|
+
// Add ESC key handler for fullscreen mode
|
|
225
|
+
document.addEventListener('keydown', (event) => {
|
|
226
|
+
if (event.key === 'Escape' && this.isFullscreen) {
|
|
227
|
+
this.isFullscreen = false;
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
// Set up scroll listeners after DOM is ready
|
|
231
|
+
setTimeout(() => {
|
|
232
|
+
this.setupScrollListeners();
|
|
233
|
+
}, 500);
|
|
234
|
+
this.domtools.router.on('/wcctools-route/:itemType/:itemName/:viewport/:theme', async (routeInfo) => {
|
|
235
|
+
this.selectedType = routeInfo.params.itemType;
|
|
236
|
+
this.selectedItemName = routeInfo.params.itemName;
|
|
237
|
+
this.selectedViewport = routeInfo.params.viewport;
|
|
238
|
+
this.selectedTheme = routeInfo.params.theme;
|
|
239
|
+
if (routeInfo.params.itemType === 'element') {
|
|
240
|
+
this.selectedItem = this.elements[routeInfo.params.itemName];
|
|
241
|
+
}
|
|
242
|
+
else if (routeInfo.params.itemType === 'page') {
|
|
243
|
+
this.selectedItem = this.pages[routeInfo.params.itemName];
|
|
244
|
+
}
|
|
245
|
+
// Restore scroll positions from query parameters
|
|
246
|
+
if (routeInfo.queryParams) {
|
|
247
|
+
const frameScrollY = routeInfo.queryParams.frameScrollY;
|
|
248
|
+
const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
|
|
249
|
+
if (frameScrollY) {
|
|
250
|
+
this.frameScrollY = parseInt(frameScrollY);
|
|
251
|
+
}
|
|
252
|
+
if (sidebarScrollY) {
|
|
253
|
+
this.sidebarScrollY = parseInt(sidebarScrollY);
|
|
254
|
+
}
|
|
255
|
+
// Apply scroll positions after a short delay to ensure DOM is ready
|
|
256
|
+
setTimeout(() => {
|
|
257
|
+
this.applyScrollPositions();
|
|
258
|
+
}, 100);
|
|
259
|
+
}
|
|
260
|
+
const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
|
|
261
|
+
this.selectedTheme === 'bright'
|
|
262
|
+
? domtoolsInstance.themeManager.goBright()
|
|
263
|
+
: domtoolsInstance.themeManager.goDark();
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
async updated(changedPropertiesArg) {
|
|
267
|
+
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
|
268
|
+
await this.domtools.router._handleRouteState();
|
|
269
|
+
const wccFrame = this.shadowRoot.querySelector('wcc-frame');
|
|
270
|
+
if (changedPropertiesArg.has('selectedItemName')) {
|
|
271
|
+
document.title = this.selectedItemName;
|
|
129
272
|
}
|
|
130
|
-
|
|
131
|
-
|
|
273
|
+
;
|
|
274
|
+
if (this.selectedType === 'page' && this.selectedItem) {
|
|
275
|
+
if (typeof this.selectedItem === 'function') {
|
|
276
|
+
console.log('slotting page.');
|
|
277
|
+
const viewport = await wccFrame.getViewportElement();
|
|
278
|
+
const pageFactory = this.selectedItem;
|
|
279
|
+
const pageTemplate = await resolveTemplateFactory(pageFactory);
|
|
280
|
+
render(pageTemplate, viewport);
|
|
281
|
+
console.log('rendered page.');
|
|
282
|
+
}
|
|
283
|
+
else {
|
|
284
|
+
console.error('The selected item looks strange:');
|
|
285
|
+
console.log(this.selectedItem);
|
|
286
|
+
}
|
|
132
287
|
}
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
const
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
288
|
+
else if (this.selectedType === 'element' && this.selectedItem) {
|
|
289
|
+
console.log('slotting element.');
|
|
290
|
+
const anonItem = this.selectedItem;
|
|
291
|
+
if (!anonItem.demo) {
|
|
292
|
+
this.setWarning(`component ${anonItem.name} does not expose a demo property.`);
|
|
293
|
+
return;
|
|
139
294
|
}
|
|
140
|
-
if (
|
|
141
|
-
this.
|
|
295
|
+
if (!(typeof anonItem.demo === 'function')) {
|
|
296
|
+
this.setWarning(`component ${anonItem.name} has demo property, but it is not of type function`);
|
|
297
|
+
return;
|
|
142
298
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
299
|
+
this.setWarning(null);
|
|
300
|
+
const viewport = await wccFrame.getViewportElement();
|
|
301
|
+
const demoTemplate = await resolveTemplateFactory(() => anonItem.demo());
|
|
302
|
+
render(demoTemplate, viewport);
|
|
147
303
|
}
|
|
148
|
-
const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
|
|
149
|
-
this.selectedTheme === 'bright'
|
|
150
|
-
? domtoolsInstance.themeManager.goBright()
|
|
151
|
-
: domtoolsInstance.themeManager.goDark();
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
async updated(changedPropertiesArg) {
|
|
155
|
-
this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
|
|
156
|
-
await this.domtools.router._handleRouteState();
|
|
157
|
-
const wccFrame = this.shadowRoot.querySelector('wcc-frame');
|
|
158
|
-
if (changedPropertiesArg.has('selectedItemName')) {
|
|
159
|
-
document.title = this.selectedItemName;
|
|
160
304
|
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
const pageFactory = this.selectedItem;
|
|
167
|
-
const pageTemplate = await resolveTemplateFactory(pageFactory);
|
|
168
|
-
render(pageTemplate, viewport);
|
|
169
|
-
console.log('rendered page.');
|
|
305
|
+
buildUrl() {
|
|
306
|
+
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
307
|
+
const queryParams = new URLSearchParams();
|
|
308
|
+
if (this.frameScrollY > 0) {
|
|
309
|
+
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
170
310
|
}
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
console.log(this.selectedItem);
|
|
311
|
+
if (this.sidebarScrollY > 0) {
|
|
312
|
+
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
174
313
|
}
|
|
314
|
+
const queryString = queryParams.toString();
|
|
315
|
+
const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
316
|
+
this.domtools.router.pushUrl(fullUrl);
|
|
175
317
|
}
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
318
|
+
scrollUpdateTimeout = __runInitializers(this, _wccFrame_extraInitializers);
|
|
319
|
+
scrollListenersAttached = false;
|
|
320
|
+
async setupScrollListeners() {
|
|
321
|
+
// Prevent duplicate listeners
|
|
322
|
+
if (this.scrollListenersAttached) {
|
|
181
323
|
return;
|
|
182
324
|
}
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
325
|
+
const wccFrame = await this.wccFrame;
|
|
326
|
+
const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
|
|
327
|
+
if (wccFrame) {
|
|
328
|
+
// The frame element itself is the scrollable container
|
|
329
|
+
wccFrame.addEventListener('scroll', () => {
|
|
330
|
+
this.frameScrollY = wccFrame.scrollTop;
|
|
331
|
+
this.debouncedScrollUpdate();
|
|
332
|
+
});
|
|
333
|
+
this.scrollListenersAttached = true;
|
|
334
|
+
}
|
|
335
|
+
if (wccSidebar) {
|
|
336
|
+
// The sidebar element itself is the scrollable container
|
|
337
|
+
wccSidebar.addEventListener('scroll', () => {
|
|
338
|
+
this.sidebarScrollY = wccSidebar.scrollTop;
|
|
339
|
+
this.debouncedScrollUpdate();
|
|
340
|
+
});
|
|
186
341
|
}
|
|
187
|
-
this.setWarning(null);
|
|
188
|
-
const viewport = await wccFrame.getViewportElement();
|
|
189
|
-
const demoTemplate = await resolveTemplateFactory(() => anonItem.demo());
|
|
190
|
-
render(demoTemplate, viewport);
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
buildUrl() {
|
|
194
|
-
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
195
|
-
const queryParams = new URLSearchParams();
|
|
196
|
-
if (this.frameScrollY > 0) {
|
|
197
|
-
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
198
|
-
}
|
|
199
|
-
if (this.sidebarScrollY > 0) {
|
|
200
|
-
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
201
|
-
}
|
|
202
|
-
const queryString = queryParams.toString();
|
|
203
|
-
const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
204
|
-
this.domtools.router.pushUrl(fullUrl);
|
|
205
|
-
}
|
|
206
|
-
async setupScrollListeners() {
|
|
207
|
-
// Prevent duplicate listeners
|
|
208
|
-
if (this.scrollListenersAttached) {
|
|
209
|
-
return;
|
|
210
|
-
}
|
|
211
|
-
const wccFrame = await this.wccFrame;
|
|
212
|
-
const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
|
|
213
|
-
if (wccFrame) {
|
|
214
|
-
// The frame element itself is the scrollable container
|
|
215
|
-
wccFrame.addEventListener('scroll', () => {
|
|
216
|
-
this.frameScrollY = wccFrame.scrollTop;
|
|
217
|
-
this.debouncedScrollUpdate();
|
|
218
|
-
});
|
|
219
|
-
this.scrollListenersAttached = true;
|
|
220
|
-
}
|
|
221
|
-
if (wccSidebar) {
|
|
222
|
-
// The sidebar element itself is the scrollable container
|
|
223
|
-
wccSidebar.addEventListener('scroll', () => {
|
|
224
|
-
this.sidebarScrollY = wccSidebar.scrollTop;
|
|
225
|
-
this.debouncedScrollUpdate();
|
|
226
|
-
});
|
|
227
|
-
}
|
|
228
|
-
}
|
|
229
|
-
debouncedScrollUpdate() {
|
|
230
|
-
clearTimeout(this.scrollUpdateTimeout);
|
|
231
|
-
this.scrollUpdateTimeout = setTimeout(() => {
|
|
232
|
-
this.updateUrlWithScrollState();
|
|
233
|
-
}, 300);
|
|
234
|
-
}
|
|
235
|
-
updateUrlWithScrollState() {
|
|
236
|
-
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
237
|
-
const queryParams = new URLSearchParams();
|
|
238
|
-
if (this.frameScrollY > 0) {
|
|
239
|
-
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
240
|
-
}
|
|
241
|
-
if (this.sidebarScrollY > 0) {
|
|
242
|
-
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
243
342
|
}
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
async applyScrollPositions() {
|
|
250
|
-
// Only apply scroll positions once to avoid interfering with user scrolling
|
|
251
|
-
if (this.scrollPositionsApplied) {
|
|
252
|
-
return;
|
|
343
|
+
debouncedScrollUpdate() {
|
|
344
|
+
clearTimeout(this.scrollUpdateTimeout);
|
|
345
|
+
this.scrollUpdateTimeout = setTimeout(() => {
|
|
346
|
+
this.updateUrlWithScrollState();
|
|
347
|
+
}, 300);
|
|
253
348
|
}
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
349
|
+
updateUrlWithScrollState() {
|
|
350
|
+
const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
|
|
351
|
+
const queryParams = new URLSearchParams();
|
|
352
|
+
if (this.frameScrollY > 0) {
|
|
353
|
+
queryParams.set('frameScrollY', this.frameScrollY.toString());
|
|
354
|
+
}
|
|
355
|
+
if (this.sidebarScrollY > 0) {
|
|
356
|
+
queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
|
|
357
|
+
}
|
|
358
|
+
const queryString = queryParams.toString();
|
|
359
|
+
const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
|
|
360
|
+
// Use replaceState to update URL without navigation
|
|
361
|
+
window.history.replaceState(null, '', fullUrl);
|
|
259
362
|
}
|
|
260
|
-
|
|
261
|
-
//
|
|
262
|
-
|
|
363
|
+
async applyScrollPositions() {
|
|
364
|
+
// Only apply scroll positions once to avoid interfering with user scrolling
|
|
365
|
+
if (this.scrollPositionsApplied) {
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
const wccFrame = await this.wccFrame;
|
|
369
|
+
const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
|
|
370
|
+
if (wccFrame && this.frameScrollY > 0) {
|
|
371
|
+
// The frame element itself is the scrollable container
|
|
372
|
+
wccFrame.scrollTop = this.frameScrollY;
|
|
373
|
+
}
|
|
374
|
+
if (wccSidebar && this.sidebarScrollY > 0) {
|
|
375
|
+
// The sidebar element itself is the scrollable container
|
|
376
|
+
wccSidebar.scrollTop = this.sidebarScrollY;
|
|
377
|
+
}
|
|
378
|
+
this.scrollPositionsApplied = true;
|
|
263
379
|
}
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
};
|
|
267
|
-
__decorate([
|
|
268
|
-
property(),
|
|
269
|
-
__metadata("design:type", String)
|
|
270
|
-
], WccDashboard.prototype, "selectedType", void 0);
|
|
271
|
-
__decorate([
|
|
272
|
-
property(),
|
|
273
|
-
__metadata("design:type", String)
|
|
274
|
-
], WccDashboard.prototype, "selectedItemName", void 0);
|
|
275
|
-
__decorate([
|
|
276
|
-
property(),
|
|
277
|
-
__metadata("design:type", Object)
|
|
278
|
-
], WccDashboard.prototype, "selectedItem", void 0);
|
|
279
|
-
__decorate([
|
|
280
|
-
property(),
|
|
281
|
-
__metadata("design:type", String)
|
|
282
|
-
], WccDashboard.prototype, "selectedViewport", void 0);
|
|
283
|
-
__decorate([
|
|
284
|
-
property(),
|
|
285
|
-
__metadata("design:type", String)
|
|
286
|
-
], WccDashboard.prototype, "selectedTheme", void 0);
|
|
287
|
-
__decorate([
|
|
288
|
-
property(),
|
|
289
|
-
__metadata("design:type", Boolean)
|
|
290
|
-
], WccDashboard.prototype, "isFullscreen", void 0);
|
|
291
|
-
__decorate([
|
|
292
|
-
property(),
|
|
293
|
-
__metadata("design:type", Object)
|
|
294
|
-
], WccDashboard.prototype, "pages", void 0);
|
|
295
|
-
__decorate([
|
|
296
|
-
property(),
|
|
297
|
-
__metadata("design:type", Object)
|
|
298
|
-
], WccDashboard.prototype, "elements", void 0);
|
|
299
|
-
__decorate([
|
|
300
|
-
property(),
|
|
301
|
-
__metadata("design:type", String)
|
|
302
|
-
], WccDashboard.prototype, "warning", void 0);
|
|
303
|
-
__decorate([
|
|
304
|
-
queryAsync('wcc-frame'),
|
|
305
|
-
__metadata("design:type", Promise)
|
|
306
|
-
], WccDashboard.prototype, "wccFrame", void 0);
|
|
307
|
-
WccDashboard = __decorate([
|
|
308
|
-
customElement('wcc-dashboard'),
|
|
309
|
-
__metadata("design:paramtypes", [Object, Object])
|
|
310
|
-
], WccDashboard);
|
|
380
|
+
};
|
|
381
|
+
return WccDashboard = _classThis;
|
|
382
|
+
})();
|
|
311
383
|
export { WccDashboard };
|
|
312
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUksT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHL0QsT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFdBQVc7SUFvQzNDLFlBQ0UsV0FBNEMsRUFDNUMsUUFBMkM7UUFFM0MsS0FBSyxFQUFFLENBQUM7UUE1QkgscUJBQWdCLEdBQStDLFNBQVMsQ0FBQztRQUd6RSxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUcvQixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUc5QixVQUFLLEdBQXFDLEVBQUUsQ0FBQztRQUc3QyxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUc5QyxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBRXRCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBQzNCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQTRN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
|
|
384
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUF1QixVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVJLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRy9ELE9BQU8sS0FBSyxPQUFPLE1BQU0sd0JBQXdCLENBQUM7QUFFbEQsWUFBWTtBQUNaLE9BQU8sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBZSxNQUFNLHFCQUFxQixDQUFDO0FBQ2xELE9BQU8sRUFBcUIsTUFBTSxrQkFBa0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0lBRzdCLFlBQVk7NEJBRHhCLGFBQWEsQ0FBQyxlQUFlLENBQUM7Ozs7c0JBQ0csV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs0QkFBbkIsU0FBUSxXQUFXOzs7O3dDQUUxQyxRQUFRLEVBQUU7NENBR1YsUUFBUSxFQUFFO3dDQUdWLFFBQVEsRUFBRTs0Q0FHVixRQUFRLEVBQUU7eUNBR1YsUUFBUSxFQUFFO3dDQUdWLFFBQVEsRUFBRTtpQ0FHVixRQUFRLEVBQUU7b0NBR1YsUUFBUSxFQUFFO21DQUdWLFFBQVEsRUFBRTtvQ0FPVixVQUFVLENBQUMsV0FBVyxDQUFDO1lBOUJ4Qix5TEFBUyxZQUFZLDZCQUFaLFlBQVksbUdBQWU7WUFHcEMscU1B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
|