@dso-toolkit/core 34.0.0 → 34.2.1

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 (58) hide show
  1. package/dist/cjs/dso-date-picker.cjs.entry.js +47 -25
  2. package/dist/cjs/dso-header.cjs.entry.js +1 -1
  3. package/dist/cjs/dso-info_2.cjs.entry.js +4 -1
  4. package/dist/cjs/dso-map-base-layers.cjs.entry.js +14 -1
  5. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-map-overlays.cjs.entry.js +14 -1
  7. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  8. package/dist/cjs/dso-viewer-grid.cjs.entry.js +56 -19
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/collection/collection-manifest.json +2 -2
  11. package/dist/collection/components/date-picker/date-picker.css +3 -2
  12. package/dist/collection/components/date-picker/date-picker.js +47 -25
  13. package/dist/collection/components/date-picker/date-picker.template.js +2 -1
  14. package/dist/collection/components/header/header.css +21 -13
  15. package/dist/collection/components/info/info.css +20 -0
  16. package/dist/collection/components/map-base-layers/map-base-layers.js +16 -1
  17. package/dist/collection/components/map-controls/map-controls.css +12 -0
  18. package/dist/collection/components/map-overlays/map-overlays.js +16 -1
  19. package/dist/collection/components/selectable/selectable.js +25 -1
  20. package/dist/collection/components/viewer-grid/viewer-grid-filterpanel-buttons.js +7 -0
  21. package/dist/collection/components/viewer-grid/viewer-grid.css +480 -25
  22. package/dist/collection/components/viewer-grid/viewer-grid.js +112 -21
  23. package/dist/collection/components/viewer-grid/viewer-grid.template.js +7 -3
  24. package/dist/custom-elements/index.js +138 -50
  25. package/dist/dso-toolkit/dso-toolkit.css +1 -1
  26. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  27. package/dist/dso-toolkit/p-3c4dbd89.entry.js +1 -0
  28. package/dist/dso-toolkit/p-50b63cf4.entry.js +1 -0
  29. package/dist/dso-toolkit/{p-10aa1fba.entry.js → p-88bc5873.entry.js} +1 -1
  30. package/dist/dso-toolkit/p-8b6e3abc.entry.js +1 -0
  31. package/dist/dso-toolkit/p-94b79e43.entry.js +1 -0
  32. package/dist/dso-toolkit/p-ad540748.entry.js +1 -0
  33. package/dist/dso-toolkit/p-de3ab027.entry.js +5 -0
  34. package/dist/esm/dso-date-picker.entry.js +47 -25
  35. package/dist/esm/dso-header.entry.js +1 -1
  36. package/dist/esm/dso-info_2.entry.js +4 -1
  37. package/dist/esm/dso-map-base-layers.entry.js +14 -1
  38. package/dist/esm/dso-map-controls.entry.js +1 -1
  39. package/dist/esm/dso-map-overlays.entry.js +14 -1
  40. package/dist/esm/dso-toolkit.js +1 -1
  41. package/dist/esm/dso-viewer-grid.entry.js +57 -20
  42. package/dist/esm/loader.js +1 -1
  43. package/dist/types/components/date-picker/date-picker.d.ts +3 -1
  44. package/dist/types/components/date-picker/date-picker.template.d.ts +1 -1
  45. package/dist/types/components/map-base-layers/map-base-layers.d.ts +7 -2
  46. package/dist/types/components/map-overlays/map-overlays.d.ts +7 -2
  47. package/dist/types/components/selectable/selectable.d.ts +1 -0
  48. package/dist/types/components/viewer-grid/viewer-grid-filterpanel-buttons.d.ts +6 -0
  49. package/dist/types/components/viewer-grid/viewer-grid.d.ts +14 -3
  50. package/dist/types/components/viewer-grid/viewer-grid.template.d.ts +1 -1
  51. package/dist/types/components.d.ts +6 -0
  52. package/package.json +1 -1
  53. package/dist/dso-toolkit/p-06de0fa1.entry.js +0 -1
  54. package/dist/dso-toolkit/p-17f073d1.entry.js +0 -1
  55. package/dist/dso-toolkit/p-7b006b11.entry.js +0 -1
  56. package/dist/dso-toolkit/p-8f21d07d.entry.js +0 -5
  57. package/dist/dso-toolkit/p-a6c9e063.entry.js +0 -1
  58. package/dist/dso-toolkit/p-aadc4f8e.entry.js +0 -1
@@ -1,9 +1,13 @@
1
1
  import { h, Component, Prop, State, Host, Element, Event, } from "@stencil/core";
2
- import * as focusTrap from "focus-trap";
2
+ import { createFocusTrap } from "focus-trap";
3
+ import { ViewerGridFilterpanelButtons } from './viewer-grid-filterpanel-buttons';
3
4
  export class ViewerGrid {
4
5
  constructor() {
6
+ this.filterpanelOpen = false;
5
7
  this.overlayOpen = false;
6
8
  this.mainSize = "large";
9
+ this.filterpanelSlot = null;
10
+ this.overlaySlot = null;
7
11
  this.shrinkMain = () => {
8
12
  this.mainSize = this.mainSize == "large" ? "medium" : "small";
9
13
  };
@@ -18,49 +22,80 @@ export class ViewerGrid {
18
22
  };
19
23
  }
20
24
  updateFocusTrap() {
21
- if (!this.trap) {
25
+ var _a, _b;
26
+ if (this.filterpanelOpen && this.overlayOpen) {
22
27
  return;
23
28
  }
24
- if (this.overlayOpen) {
25
- this.trap.activate();
26
- this.host.addEventListener("keydown", this.keyDownListener);
29
+ if (this.filterpanelFocustrap) {
30
+ if (this.filterpanelOpen && !((_a = this.filterpanel) === null || _a === void 0 ? void 0 : _a.hidden)) {
31
+ this.filterpanelFocustrap.activate();
32
+ this.host.addEventListener("keydown", this.keyDownListener);
33
+ }
34
+ else {
35
+ this.filterpanelFocustrap.deactivate();
36
+ this.host.removeEventListener("keydown", this.keyDownListener);
37
+ }
27
38
  }
28
- else {
29
- this.trap.deactivate();
30
- this.host.removeEventListener("keydown", this.keyDownListener);
39
+ if (this.overlayFocustrap) {
40
+ if (this.overlayOpen && !((_b = this.overlay) === null || _b === void 0 ? void 0 : _b.hidden)) {
41
+ this.overlayFocustrap.activate();
42
+ this.host.addEventListener("keydown", this.keyDownListener);
43
+ }
44
+ else {
45
+ this.overlayFocustrap.deactivate();
46
+ this.host.removeEventListener("keydown", this.keyDownListener);
47
+ }
31
48
  }
32
49
  }
33
50
  connectedCallback() {
34
- this.overlaySlot = this.host.querySelector("div[slot = 'overlay']");
51
+ this.filterpanelSlot = this.host.querySelector("div[slot='filterpanel']");
52
+ this.overlaySlot = this.host.querySelector("div[slot='overlay']");
35
53
  }
36
54
  componentDidLoad() {
37
- if (!this.overlay || !this.overlaySlot) {
38
- return;
55
+ if (this.filterpanel && this.filterpanelSlot) {
56
+ this.filterpanelFocustrap = createFocusTrap([this.filterpanel, this.filterpanelSlot], {
57
+ escapeDeactivates: false,
58
+ allowOutsideClick: true,
59
+ });
60
+ }
61
+ if (this.overlay && this.overlaySlot) {
62
+ this.overlayFocustrap = createFocusTrap([this.overlay, this.overlaySlot], {
63
+ escapeDeactivates: false,
64
+ allowOutsideClick: true,
65
+ });
39
66
  }
40
- this.trap = focusTrap.createFocusTrap([this.overlay, this.overlaySlot], {
41
- escapeDeactivates: false,
42
- allowOutsideClick: true,
43
- });
44
67
  this.updateFocusTrap();
45
68
  }
46
69
  componentDidUpdate() {
47
70
  this.updateFocusTrap();
48
71
  }
49
72
  disconnectedCallback() {
50
- if (this.trap) {
51
- this.trap.deactivate();
52
- }
73
+ var _a, _b;
74
+ (_a = this.overlayFocustrap) === null || _a === void 0 ? void 0 : _a.deactivate();
75
+ (_b = this.filterpanelFocustrap) === null || _b === void 0 ? void 0 : _b.deactivate();
53
76
  this.host.removeEventListener("keydown", this.keyDownListener);
54
77
  }
78
+ handleFilterpanelApply(mouseEvent) {
79
+ this.filterpanelApply.emit({ originalEvent: mouseEvent });
80
+ }
81
+ handleFilterpanelCancel(mouseEvent) {
82
+ this.filterpanelCancel.emit({ originalEvent: mouseEvent });
83
+ }
55
84
  render() {
56
85
  return (h(Host, Object.assign({}, { [this.mainSize]: true }),
57
- h("div", { class: "main" },
86
+ h("div", { class: "dso-map-panel" },
58
87
  h("div", { class: "sizing-buttons" },
59
88
  h("button", { type: "button", class: "shrink", disabled: this.mainSize == "small", onClick: this.shrinkMain },
60
89
  h("dso-icon", { icon: "chevron-left" })),
61
90
  h("button", { type: "button", class: "expand", disabled: this.mainSize == "large", onClick: this.expandMain },
62
91
  h("dso-icon", { icon: "chevron-right" }))),
63
- h("slot", { name: "main" })),
92
+ h("div", { class: "main" },
93
+ h("slot", { name: "main" }))),
94
+ h("div", { id: "filterpanel", hidden: !this.filterpanelOpen || !this.filterpanelSlot, ref: (element) => this.filterpanel = element },
95
+ h("h2", null, "Uw keuzes"),
96
+ h(ViewerGridFilterpanelButtons, { onApply: e => this.handleFilterpanelApply(e), onCancel: e => this.handleFilterpanelCancel(e) }),
97
+ h("slot", { name: "filterpanel" }),
98
+ h(ViewerGridFilterpanelButtons, { onApply: e => this.handleFilterpanelApply(e), onCancel: e => this.handleFilterpanelCancel(e) })),
64
99
  h("div", { class: "map" },
65
100
  h("slot", { name: "map" })),
66
101
  h("div", { class: "overlay", hidden: !this.overlayOpen || !this.overlaySlot, ref: (element) => (this.overlay = element) },
@@ -78,6 +113,24 @@ export class ViewerGrid {
78
113
  "$": ["viewer-grid.css"]
79
114
  }; }
80
115
  static get properties() { return {
116
+ "filterpanelOpen": {
117
+ "type": "boolean",
118
+ "mutable": false,
119
+ "complexType": {
120
+ "original": "boolean",
121
+ "resolved": "boolean",
122
+ "references": {}
123
+ },
124
+ "required": false,
125
+ "optional": false,
126
+ "docs": {
127
+ "tags": [],
128
+ "text": ""
129
+ },
130
+ "attribute": "filterpanel-open",
131
+ "reflect": true,
132
+ "defaultValue": "false"
133
+ },
81
134
  "overlayOpen": {
82
135
  "type": "boolean",
83
136
  "mutable": false,
@@ -93,7 +146,7 @@ export class ViewerGrid {
93
146
  "text": ""
94
147
  },
95
148
  "attribute": "overlay-open",
96
- "reflect": false,
149
+ "reflect": true,
97
150
  "defaultValue": "false"
98
151
  }
99
152
  }; }
@@ -122,6 +175,44 @@ export class ViewerGrid {
122
175
  }
123
176
  }
124
177
  }
178
+ }, {
179
+ "method": "filterpanelCancel",
180
+ "name": "filterpanelCancel",
181
+ "bubbles": true,
182
+ "cancelable": true,
183
+ "composed": true,
184
+ "docs": {
185
+ "tags": [],
186
+ "text": ""
187
+ },
188
+ "complexType": {
189
+ "original": "FilterpanelEvent",
190
+ "resolved": "FilterpanelEvent",
191
+ "references": {
192
+ "FilterpanelEvent": {
193
+ "location": "local"
194
+ }
195
+ }
196
+ }
197
+ }, {
198
+ "method": "filterpanelApply",
199
+ "name": "filterpanelApply",
200
+ "bubbles": true,
201
+ "cancelable": true,
202
+ "composed": true,
203
+ "docs": {
204
+ "tags": [],
205
+ "text": ""
206
+ },
207
+ "complexType": {
208
+ "original": "FilterpanelEvent",
209
+ "resolved": "FilterpanelEvent",
210
+ "references": {
211
+ "FilterpanelEvent": {
212
+ "location": "local"
213
+ }
214
+ }
215
+ }
125
216
  }]; }
126
217
  static get elementRef() { return "host"; }
127
218
  }
@@ -1,9 +1,9 @@
1
1
  import { html } from "lit-html";
2
- export function viewerGridTemplate({ main, map, overlay, noOverlay, overlayOpen, closeOverlay, }) {
2
+ export function viewerGridTemplate({ filterpanel, main, map, overlay, noOverlay, filterpanelOpen, overlayOpen, filterpanelApply, filterpanelCancel, closeOverlay, }) {
3
3
  return noOverlay
4
4
  ? html `
5
5
  <dso-viewer-grid
6
- overlay-open=${overlayOpen}
6
+ ?overlay-open=${overlayOpen}
7
7
  @closeOverlay=${closeOverlay}
8
8
  >
9
9
  <div slot="main">${main}</div>
@@ -12,9 +12,13 @@ export function viewerGridTemplate({ main, map, overlay, noOverlay, overlayOpen,
12
12
  `
13
13
  : html `
14
14
  <dso-viewer-grid
15
- overlay-open=${overlayOpen}
15
+ ?filterpanel-open=${filterpanelOpen}
16
+ ?overlay-open=${overlayOpen}
16
17
  @closeOverlay=${closeOverlay}
18
+ @filterpanelApply=${filterpanelApply}
19
+ @filterpanelCancel=${filterpanelCancel}
17
20
  >
21
+ <div slot="filterpanel">${filterpanel}</div>
18
22
  <div slot="main">${main}</div>
19
23
  <div slot="map">${map}</div>
20
24
  <div slot="overlay">${overlay}</div>