@design.estate/dees-wcctools 1.0.98 → 1.0.99

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.99',
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
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsOEJBQThCO0lBQ3BDLE9BQU8sRUFBRSxRQUFRO0lBQ2pCLFdBQVcsRUFBRSxtSkFBbUo7Q0FDakssQ0FBQSJ9
@@ -19,6 +19,8 @@ export declare class WccDashboard extends DeesElement {
19
19
  [key: string]: DeesElement;
20
20
  };
21
21
  warning: string;
22
+ frameScrollY: number;
23
+ sidebarScrollY: number;
22
24
  wccFrame: Promise<WccFrame>;
23
25
  constructor(elementsArg?: {
24
26
  [key: string]: DeesElement;
@@ -30,4 +32,9 @@ export declare class WccDashboard extends DeesElement {
30
32
  firstUpdated(): Promise<void>;
31
33
  updated(changedPropertiesArg: Map<string, any>): Promise<void>;
32
34
  buildUrl(): void;
35
+ private scrollUpdateTimeout;
36
+ setupScrollListeners(): Promise<void>;
37
+ private debouncedScrollUpdate;
38
+ private updateUrlWithScrollState;
39
+ applyScrollPositions(): Promise<void>;
33
40
  }
@@ -25,6 +25,8 @@ 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;
28
30
  if (elementsArg) {
29
31
  this.elements = elementsArg;
30
32
  console.log('got elements:');
@@ -88,6 +90,10 @@ let WccDashboard = class WccDashboard extends DeesElement {
88
90
  }
89
91
  async firstUpdated() {
90
92
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
93
+ // Set up scroll listeners after DOM is ready
94
+ setTimeout(() => {
95
+ this.setupScrollListeners();
96
+ }, 500);
91
97
  this.domtools.router.on('/wcctools-route/:itemType/:itemName/:viewport/:theme', async (routeInfo) => {
92
98
  this.selectedType = routeInfo.params.itemType;
93
99
  this.selectedItemName = routeInfo.params.itemName;
@@ -99,6 +105,21 @@ let WccDashboard = class WccDashboard extends DeesElement {
99
105
  else if (routeInfo.params.itemType === 'page') {
100
106
  this.selectedItem = this.pages[routeInfo.params.itemName];
101
107
  }
108
+ // Restore scroll positions from query parameters
109
+ if (routeInfo.queryParams) {
110
+ const frameScrollY = routeInfo.queryParams.frameScrollY;
111
+ const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
112
+ if (frameScrollY) {
113
+ this.frameScrollY = parseInt(frameScrollY);
114
+ }
115
+ if (sidebarScrollY) {
116
+ this.sidebarScrollY = parseInt(sidebarScrollY);
117
+ }
118
+ // Apply scroll positions after a short delay to ensure DOM is ready
119
+ setTimeout(() => {
120
+ this.applyScrollPositions();
121
+ }, 100);
122
+ }
102
123
  const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
103
124
  this.selectedTheme === 'bright'
104
125
  ? domtoolsInstance.themeManager.goBright()
@@ -108,7 +129,6 @@ let WccDashboard = class WccDashboard extends DeesElement {
108
129
  async updated(changedPropertiesArg) {
109
130
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
110
131
  await this.domtools.router._handleRouteState();
111
- const storeElement = this.selectedItem;
112
132
  const wccFrame = this.shadowRoot.querySelector('wcc-frame');
113
133
  if (changedPropertiesArg.has('selectedItemName')) {
114
134
  document.title = this.selectedItemName;
@@ -144,7 +164,67 @@ let WccDashboard = class WccDashboard extends DeesElement {
144
164
  }
145
165
  }
146
166
  buildUrl() {
147
- this.domtools.router.pushUrl(`/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`);
167
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
168
+ const queryParams = new URLSearchParams();
169
+ if (this.frameScrollY > 0) {
170
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
171
+ }
172
+ if (this.sidebarScrollY > 0) {
173
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
174
+ }
175
+ const queryString = queryParams.toString();
176
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
177
+ this.domtools.router.pushUrl(fullUrl);
178
+ }
179
+ async setupScrollListeners() {
180
+ const wccFrame = await this.wccFrame;
181
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
182
+ if (wccFrame) {
183
+ // The frame element itself is the scrollable container
184
+ wccFrame.addEventListener('scroll', () => {
185
+ this.frameScrollY = wccFrame.scrollTop;
186
+ this.debouncedScrollUpdate();
187
+ });
188
+ }
189
+ if (wccSidebar) {
190
+ // The sidebar element itself is the scrollable container
191
+ wccSidebar.addEventListener('scroll', () => {
192
+ this.sidebarScrollY = wccSidebar.scrollTop;
193
+ this.debouncedScrollUpdate();
194
+ });
195
+ }
196
+ }
197
+ debouncedScrollUpdate() {
198
+ clearTimeout(this.scrollUpdateTimeout);
199
+ this.scrollUpdateTimeout = setTimeout(() => {
200
+ this.updateUrlWithScrollState();
201
+ }, 300);
202
+ }
203
+ updateUrlWithScrollState() {
204
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
205
+ const queryParams = new URLSearchParams();
206
+ if (this.frameScrollY > 0) {
207
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
208
+ }
209
+ if (this.sidebarScrollY > 0) {
210
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
211
+ }
212
+ const queryString = queryParams.toString();
213
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
214
+ // Use replaceState to update URL without navigation
215
+ window.history.replaceState(null, '', fullUrl);
216
+ }
217
+ async applyScrollPositions() {
218
+ const wccFrame = await this.wccFrame;
219
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
220
+ if (wccFrame && this.frameScrollY > 0) {
221
+ // The frame element itself is the scrollable container
222
+ wccFrame.scrollTop = this.frameScrollY;
223
+ }
224
+ if (wccSidebar && this.sidebarScrollY > 0) {
225
+ // The sidebar element itself is the scrollable container
226
+ wccSidebar.scrollTop = this.sidebarScrollY;
227
+ }
148
228
  }
149
229
  };
150
230
  __decorate([
@@ -179,6 +259,14 @@ __decorate([
179
259
  property(),
180
260
  __metadata("design:type", String)
181
261
  ], WccDashboard.prototype, "warning", void 0);
262
+ __decorate([
263
+ property(),
264
+ __metadata("design:type", Number)
265
+ ], WccDashboard.prototype, "frameScrollY", void 0);
266
+ __decorate([
267
+ property(),
268
+ __metadata("design:type", Number)
269
+ ], WccDashboard.prototype, "sidebarScrollY", void 0);
182
270
  __decorate([
183
271
  queryAsync('wcc-frame'),
184
272
  __metadata("design:type", Promise)
@@ -188,4 +276,4 @@ WccDashboard = __decorate([
188
276
  __metadata("design:paramtypes", [Object, Object])
189
277
  ], WccDashboard);
190
278
  export { WccDashboard };
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUksT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFdBQVc7SUE2QjNDLFlBQ0UsV0FBNEMsRUFDNUMsUUFBa0Q7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUFyQkgscUJBQWdCLEdBQStDLFNBQVMsQ0FBQztRQUd6RSxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUcvQixVQUFLLEdBQTRDLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUc5QyxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBVTVCLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUM3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
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2NjLWRhc2hib2FyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3RzX3dlYi9lbGVtZW50cy93Y2MtZGFzaGJvYXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxhQUFhLEVBQXVCLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUksT0FBTyxLQUFLLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQztBQUVsRCxZQUFZO0FBQ1osT0FBTyxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFlLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFxQixNQUFNLGtCQUFrQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFdBQVc7SUFtQzNDLFlBQ0UsV0FBNEMsRUFDNUMsUUFBa0Q7UUFFbEQsS0FBSyxFQUFFLENBQUM7UUEzQkgscUJBQWdCLEdBQStDLFNBQVMsQ0FBQztRQUd6RSxrQkFBYSxHQUFXLE1BQU0sQ0FBQztRQUcvQixVQUFLLEdBQTRDLEVBQUUsQ0FBQztRQUdwRCxhQUFRLEdBQW1DLEVBQUUsQ0FBQztRQUc5QyxZQUFPLEdBQVcsSUFBSSxDQUFDO1FBR3ZCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBR3pCLG1CQUFjLEdBQVcsQ0FBQyxDQUFDO1FBVWhDLElBQUksV0FBVyxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxXQUFXLENBQUM7WUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZ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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.99",
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.99',
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,12 @@ 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
+
41
47
  @queryAsync('wcc-frame')
42
48
  public wccFrame: Promise<WccFrame>;
43
49
 
@@ -113,6 +119,12 @@ export class WccDashboard extends DeesElement {
113
119
 
114
120
  public async firstUpdated() {
115
121
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
122
+
123
+ // Set up scroll listeners after DOM is ready
124
+ setTimeout(() => {
125
+ this.setupScrollListeners();
126
+ }, 500);
127
+
116
128
  this.domtools.router.on(
117
129
  '/wcctools-route/:itemType/:itemName/:viewport/:theme',
118
130
  async (routeInfo) => {
@@ -125,6 +137,25 @@ export class WccDashboard extends DeesElement {
125
137
  } else if (routeInfo.params.itemType === 'page') {
126
138
  this.selectedItem = this.pages[routeInfo.params.itemName];
127
139
  }
140
+
141
+ // Restore scroll positions from query parameters
142
+ if (routeInfo.queryParams) {
143
+ const frameScrollY = routeInfo.queryParams.frameScrollY;
144
+ const sidebarScrollY = routeInfo.queryParams.sidebarScrollY;
145
+
146
+ if (frameScrollY) {
147
+ this.frameScrollY = parseInt(frameScrollY);
148
+ }
149
+ if (sidebarScrollY) {
150
+ this.sidebarScrollY = parseInt(sidebarScrollY);
151
+ }
152
+
153
+ // Apply scroll positions after a short delay to ensure DOM is ready
154
+ setTimeout(() => {
155
+ this.applyScrollPositions();
156
+ }, 100);
157
+ }
158
+
128
159
  const domtoolsInstance = await plugins.deesDomtools.elementBasic.setup();
129
160
  this.selectedTheme === 'bright'
130
161
  ? domtoolsInstance.themeManager.goBright()
@@ -136,7 +167,6 @@ export class WccDashboard extends DeesElement {
136
167
  public async updated(changedPropertiesArg: Map<string, any>) {
137
168
  this.domtools = await plugins.deesDomtools.DomTools.setupDomTools();
138
169
  await this.domtools.router._handleRouteState();
139
- const storeElement = this.selectedItem;
140
170
  const wccFrame: WccFrame = this.shadowRoot.querySelector('wcc-frame');
141
171
 
142
172
  if (changedPropertiesArg.has('selectedItemName')) {
@@ -173,8 +203,82 @@ export class WccDashboard extends DeesElement {
173
203
  }
174
204
 
175
205
  public buildUrl() {
176
- this.domtools.router.pushUrl(
177
- `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`
178
- );
206
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
207
+ const queryParams = new URLSearchParams();
208
+
209
+ if (this.frameScrollY > 0) {
210
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
211
+ }
212
+ if (this.sidebarScrollY > 0) {
213
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
214
+ }
215
+
216
+ const queryString = queryParams.toString();
217
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
218
+
219
+ this.domtools.router.pushUrl(fullUrl);
220
+ }
221
+
222
+ private scrollUpdateTimeout: NodeJS.Timeout;
223
+
224
+ public async setupScrollListeners() {
225
+ const wccFrame = await this.wccFrame;
226
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
227
+
228
+ if (wccFrame) {
229
+ // The frame element itself is the scrollable container
230
+ wccFrame.addEventListener('scroll', () => {
231
+ this.frameScrollY = wccFrame.scrollTop;
232
+ this.debouncedScrollUpdate();
233
+ });
234
+ }
235
+
236
+ if (wccSidebar) {
237
+ // The sidebar element itself is the scrollable container
238
+ wccSidebar.addEventListener('scroll', () => {
239
+ this.sidebarScrollY = wccSidebar.scrollTop;
240
+ this.debouncedScrollUpdate();
241
+ });
242
+ }
243
+ }
244
+
245
+ private debouncedScrollUpdate() {
246
+ clearTimeout(this.scrollUpdateTimeout);
247
+ this.scrollUpdateTimeout = setTimeout(() => {
248
+ this.updateUrlWithScrollState();
249
+ }, 300);
250
+ }
251
+
252
+ private updateUrlWithScrollState() {
253
+ const baseUrl = `/wcctools-route/${this.selectedType}/${this.selectedItemName}/${this.selectedViewport}/${this.selectedTheme}`;
254
+ const queryParams = new URLSearchParams();
255
+
256
+ if (this.frameScrollY > 0) {
257
+ queryParams.set('frameScrollY', this.frameScrollY.toString());
258
+ }
259
+ if (this.sidebarScrollY > 0) {
260
+ queryParams.set('sidebarScrollY', this.sidebarScrollY.toString());
261
+ }
262
+
263
+ const queryString = queryParams.toString();
264
+ const fullUrl = queryString ? `${baseUrl}?${queryString}` : baseUrl;
265
+
266
+ // Use replaceState to update URL without navigation
267
+ window.history.replaceState(null, '', fullUrl);
268
+ }
269
+
270
+ public async applyScrollPositions() {
271
+ const wccFrame = await this.wccFrame;
272
+ const wccSidebar = this.shadowRoot.querySelector('wcc-sidebar');
273
+
274
+ if (wccFrame && this.frameScrollY > 0) {
275
+ // The frame element itself is the scrollable container
276
+ wccFrame.scrollTop = this.frameScrollY;
277
+ }
278
+
279
+ if (wccSidebar && this.sidebarScrollY > 0) {
280
+ // The sidebar element itself is the scrollable container
281
+ wccSidebar.scrollTop = this.sidebarScrollY;
282
+ }
179
283
  }
180
284
  }