@design.estate/dees-wcctools 1.0.98 → 1.0.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * autocreated commitinfo by @pushrocks/commitinfo
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
3
  */
4
4
  export declare const commitinfo: {
5
5
  name: string;
@@ -1,9 +1,9 @@
1
1
  /**
2
- * autocreated commitinfo by @pushrocks/commitinfo
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-wcctools',
6
- version: '1.0.90',
6
+ version: '1.0.100',
7
7
  description: 'A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxtSkFBbUo7Q0FDakssQ0FBQSJ9
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLFdBQVcsRUFBRSxtSkFBbUo7Q0FDakssQ0FBQSJ9
@@ -19,6 +19,9 @@ export declare class WccDashboard extends DeesElement {
19
19
  [key: string]: DeesElement;
20
20
  };
21
21
  warning: string;
22
+ frameScrollY: number;
23
+ sidebarScrollY: number;
24
+ private scrollPositionsApplied;
22
25
  wccFrame: Promise<WccFrame>;
23
26
  constructor(elementsArg?: {
24
27
  [key: string]: DeesElement;
@@ -30,4 +33,9 @@ export declare class WccDashboard extends DeesElement {
30
33
  firstUpdated(): Promise<void>;
31
34
  updated(changedPropertiesArg: Map<string, any>): Promise<void>;
32
35
  buildUrl(): void;
36
+ private scrollUpdateTimeout;
37
+ setupScrollListeners(): Promise<void>;
38
+ private debouncedScrollUpdate;
39
+ private updateUrlWithScrollState;
40
+ applyScrollPositions(): Promise<void>;
33
41
  }
@@ -25,6 +25,9 @@ let WccDashboard = class WccDashboard extends DeesElement {
25
25
  this.pages = {};
26
26
  this.elements = {};
27
27
  this.warning = null;
28
+ this.frameScrollY = 0;
29
+ this.sidebarScrollY = 0;
30
+ this.scrollPositionsApplied = false;
28
31
  if (elementsArg) {
29
32
  this.elements = elementsArg;
30
33
  console.log('got elements:');
@@ -88,6 +91,10 @@ let WccDashboard = class WccDashboard extends DeesElement {
88
91
  }
89
92
  async firstUpdated() {
90
93
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
94
+ // Set up scroll listeners after DOM is ready
95
+ setTimeout(() => {
96
+ this.setupScrollListeners();
97
+ }, 500);
91
98
  this.domtools.router.on('/wcctools-route/:itemType/:itemName/:viewport/:theme', async (routeInfo) => {
92
99
  this.selectedType = routeInfo.params.itemType;
93
100
  this.selectedItemName = routeInfo.params.itemName;
@@ -99,6 +106,21 @@ let WccDashboard = class WccDashboard extends DeesElement {
99
106
  else if (routeInfo.params.itemType === 'page') {
100
107
  this.selectedItem = this.pages[routeInfo.params.itemName];
101
108
  }
109
+ // Restore scroll positions from query parameters
110
+ if (routeInfo.queryParams) {
111
+ const frameScrollY = routeInfo.queryParams.frameScrollY;
112
+ const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
113
+ if (frameScrollY) {
114
+ this.frameScrollY = parseInt(frameScrollY);
115
+ }
116
+ if (sidebarScrollY) {
117
+ this.sidebarScrollY = parseInt(sidebarScrollY);
118
+ }
119
+ // Apply scroll positions after a short delay to ensure DOM is ready
120
+ setTimeout(() => {
121
+ this.applyScrollPositions();
122
+ }, 100);
123
+ }
102
124
  const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
103
125
  this.selectedTheme === 'bright'
104
126
  ? domtoolsInstance.themeManager.goBright()
@@ -108,7 +130,6 @@ let WccDashboard = class WccDashboard extends DeesElement {
108
130
  async updated(changedPropertiesArg) {
109
131
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
110
132
  await this.domtools.router._handleRouteState();
111
- const storeElement = this.selectedItem;
112
133
  const wccFrame = this.shadowRoot.querySelector('wcc-frame');
113
134
  if (changedPropertiesArg.has('selectedItemName')) {
114
135
  document.title = this.selectedItemName;
@@ -144,7 +165,72 @@ let WccDashboard = class WccDashboard extends DeesElement {
144
165
  }
145
166
  }
146
167
  buildUrl() {
147
- this.domtools.router.pushUrl(`/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`);
168
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
169
+ const queryParams = new URLSearchParams();
170
+ if (this.frameScrollY > 0) {
171
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
172
+ }
173
+ if (this.sidebarScrollY > 0) {
174
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
175
+ }
176
+ const queryString = queryParams.toString();
177
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
178
+ this.domtools.router.pushUrl(fullUrl);
179
+ }
180
+ async setupScrollListeners() {
181
+ const wccFrame = await this.wccFrame;
182
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
183
+ if (wccFrame) {
184
+ // The frame element itself is the scrollable container
185
+ wccFrame.addEventListener('scroll', () => {
186
+ this.frameScrollY = wccFrame.scrollTop;
187
+ this.debouncedScrollUpdate();
188
+ });
189
+ }
190
+ if (wccSidebar) {
191
+ // The sidebar element itself is the scrollable container
192
+ wccSidebar.addEventListener('scroll', () => {
193
+ this.sidebarScrollY = wccSidebar.scrollTop;
194
+ this.debouncedScrollUpdate();
195
+ });
196
+ }
197
+ }
198
+ debouncedScrollUpdate() {
199
+ clearTimeout(this.scrollUpdateTimeout);
200
+ this.scrollUpdateTimeout = setTimeout(() => {
201
+ this.updateUrlWithScrollState();
202
+ }, 300);
203
+ }
204
+ updateUrlWithScrollState() {
205
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
206
+ const queryParams = new URLSearchParams();
207
+ if (this.frameScrollY > 0) {
208
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
209
+ }
210
+ if (this.sidebarScrollY > 0) {
211
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
212
+ }
213
+ const queryString = queryParams.toString();
214
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
215
+ // Use replaceState to update URL without navigation
216
+ window.history.replaceState(null, '', fullUrl);
217
+ }
218
+ async applyScrollPositions() {
219
+ // Only apply scroll positions once to avoid interfering with user scrolling
220
+ if (this.scrollPositionsApplied) {
221
+ return;
222
+ }
223
+ const wccFrame = await this.wccFrame;
224
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
225
+ if (wccFrame && this.frameScrollY > 0) {
226
+ // The frame element itself is the scrollable container
227
+ wccFrame.scrollTop = this.frameScrollY;
228
+ }
229
+ if (wccSidebar && this.sidebarScrollY > 0) {
230
+ // The sidebar element itself is the scrollable container
231
+ wccSidebar.scrollTop = this.sidebarScrollY;
232
+ }
233
+ this.scrollPositionsApplied = true;
148
234
  }
149
235
  };
150
236
  __decorate([
@@ -179,6 +265,14 @@ __decorate([
179
265
  property(),
180
266
  __metadata("design:type", String)
181
267
  ], WccDashboard.prototype, "warning", void 0);
268
+ __decorate([
269
+ property(),
270
+ __metadata("design:type", Number)
271
+ ], WccDashboard.prototype, "frameScrollY", void 0);
272
+ __decorate([
273
+ property(),
274
+ __metadata("design:type", Number)
275
+ ], WccDashboard.prototype, "sidebarScrollY", void 0);
182
276
  __decorate([
183
277
  queryAsync('wcc-frame'),
184
278
  __metadata("design:type", Promise)
@@ -188,4 +282,4 @@ WccDashboard = __decorate([
188
282
  __metadata("design:paramtypes", [Object, Object])
189
283
  ], WccDashboard);
190
284
  export { WccDashboard };
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUksT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFdBQVc7SUE2QjNDLFlBQ0UsV0FBNEMsRUFDNUMsUUFBa0Q7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFyQkgscUJBQWdCLEdBQStDLFNBQVMsQ0FBQztRQUd6RSxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUcvQixVQUFLLEdBQTRDLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUc5QyxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBVTVCLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3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
285
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUksT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFdBQVc7SUFxQzNDLFlBQ0UsV0FBNEMsRUFDNUMsUUFBa0Q7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUE3QkgscUJBQWdCLEdBQStDLFNBQVMsQ0FBQztRQUd6RSxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUcvQixVQUFLLEdBQTRDLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUc5QyxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBR3ZCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBR3pCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBRTFCLDJCQUFzQixHQUFZLEtBQUssQ0FBQztRQVU5QyxJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxRQUFRLEdBQUcsV0FBVyxDQUFDO1lBQzVCLE9BQU8sQ0FB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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@design.estate/dees-wcctools",
3
- "version": "1.0.98",
3
+ "version": "1.0.100",
4
4
  "private": false,
5
5
  "description": "A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.",
6
6
  "exports": {
@@ -1,8 +1,8 @@
1
1
  /**
2
- * autocreated commitinfo by @pushrocks/commitinfo
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@design.estate/dees-wcctools',
6
- version: '1.0.90',
6
+ version: '1.0.100',
7
7
  description: 'A set of web component tools for creating element catalogues, enabling the structured development and documentation of custom elements and pages.'
8
8
  }
@@ -38,6 +38,14 @@ export class WccDashboard extends DeesElement {
38
38
  @property()
39
39
  public warning: string = null;
40
40
 
41
+ @property()
42
+ public frameScrollY: number = 0;
43
+
44
+ @property()
45
+ public sidebarScrollY: number = 0;
46
+
47
+ private scrollPositionsApplied: boolean = false;
48
+
41
49
  @queryAsync('wcc-frame')
42
50
  public wccFrame: Promise<WccFrame>;
43
51
 
@@ -113,6 +121,12 @@ export class WccDashboard extends DeesElement {
113
121
 
114
122
  public async firstUpdated() {
115
123
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
124
+
125
+ // Set up scroll listeners after DOM is ready
126
+ setTimeout(() => {
127
+ this.setupScrollListeners();
128
+ }, 500);
129
+
116
130
  this.domtools.router.on(
117
131
  '/wcctools-route/:itemType/:itemName/:viewport/:theme',
118
132
  async (routeInfo) => {
@@ -125,6 +139,25 @@ export class WccDashboard extends DeesElement {
125
139
  } else if (routeInfo.params.itemType === 'page') {
126
140
  this.selectedItem = this.pages[routeInfo.params.itemName];
127
141
  }
142
+
143
+ // Restore scroll positions from query parameters
144
+ if (routeInfo.queryParams) {
145
+ const frameScrollY = routeInfo.queryParams.frameScrollY;
146
+ const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
147
+
148
+ if (frameScrollY) {
149
+ this.frameScrollY = parseInt(frameScrollY);
150
+ }
151
+ if (sidebarScrollY) {
152
+ this.sidebarScrollY = parseInt(sidebarScrollY);
153
+ }
154
+
155
+ // Apply scroll positions after a short delay to ensure DOM is ready
156
+ setTimeout(() => {
157
+ this.applyScrollPositions();
158
+ }, 100);
159
+ }
160
+
128
161
  const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
129
162
  this.selectedTheme === 'bright'
130
163
  ? domtoolsInstance.themeManager.goBright()
@@ -136,7 +169,6 @@ export class WccDashboard extends DeesElement {
136
169
  public async updated(changedPropertiesArg: Map<string, any>) {
137
170
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
138
171
  await this.domtools.router._handleRouteState();
139
- const storeElement = this.selectedItem;
140
172
  const wccFrame: WccFrame = this.shadowRoot.querySelector('wcc-frame');
141
173
 
142
174
  if (changedPropertiesArg.has('selectedItemName')) {
@@ -173,8 +205,89 @@ export class WccDashboard extends DeesElement {
173
205
  }
174
206
 
175
207
  public buildUrl() {
176
- this.domtools.router.pushUrl(
177
- `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`
178
- );
208
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
209
+ const queryParams = new URLSearchParams();
210
+
211
+ if (this.frameScrollY > 0) {
212
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
213
+ }
214
+ if (this.sidebarScrollY > 0) {
215
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
216
+ }
217
+
218
+ const queryString = queryParams.toString();
219
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
220
+
221
+ this.domtools.router.pushUrl(fullUrl);
222
+ }
223
+
224
+ private scrollUpdateTimeout: NodeJS.Timeout;
225
+
226
+ public async setupScrollListeners() {
227
+ const wccFrame = await this.wccFrame;
228
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
229
+
230
+ if (wccFrame) {
231
+ // The frame element itself is the scrollable container
232
+ wccFrame.addEventListener('scroll', () => {
233
+ this.frameScrollY = wccFrame.scrollTop;
234
+ this.debouncedScrollUpdate();
235
+ });
236
+ }
237
+
238
+ if (wccSidebar) {
239
+ // The sidebar element itself is the scrollable container
240
+ wccSidebar.addEventListener('scroll', () => {
241
+ this.sidebarScrollY = wccSidebar.scrollTop;
242
+ this.debouncedScrollUpdate();
243
+ });
244
+ }
245
+ }
246
+
247
+ private debouncedScrollUpdate() {
248
+ clearTimeout(this.scrollUpdateTimeout);
249
+ this.scrollUpdateTimeout = setTimeout(() => {
250
+ this.updateUrlWithScrollState();
251
+ }, 300);
252
+ }
253
+
254
+ private updateUrlWithScrollState() {
255
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
256
+ const queryParams = new URLSearchParams();
257
+
258
+ if (this.frameScrollY > 0) {
259
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
260
+ }
261
+ if (this.sidebarScrollY > 0) {
262
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
263
+ }
264
+
265
+ const queryString = queryParams.toString();
266
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
267
+
268
+ // Use replaceState to update URL without navigation
269
+ window.history.replaceState(null, '', fullUrl);
270
+ }
271
+
272
+ public async applyScrollPositions() {
273
+ // Only apply scroll positions once to avoid interfering with user scrolling
274
+ if (this.scrollPositionsApplied) {
275
+ return;
276
+ }
277
+
278
+ const wccFrame = await this.wccFrame;
279
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
280
+
281
+ if (wccFrame && this.frameScrollY > 0) {
282
+ // The frame element itself is the scrollable container
283
+ wccFrame.scrollTop = this.frameScrollY;
284
+ }
285
+
286
+ if (wccSidebar && this.sidebarScrollY > 0) {
287
+ // The sidebar element itself is the scrollable container
288
+ wccSidebar.scrollTop = this.sidebarScrollY;
289
+ }
290
+
291
+ this.scrollPositionsApplied = true;
179
292
  }
180
293
  }