@dso-toolkit/core 41.0.1 → 43.1.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.
Files changed (140) hide show
  1. package/dist/cjs/dso-alert.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-autosuggest.cjs.entry.js +30 -10
  3. package/dist/cjs/dso-badge.cjs.entry.js +1 -1
  4. package/dist/cjs/dso-banner.cjs.entry.js +1 -1
  5. package/dist/cjs/dso-date-picker.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-header.cjs.entry.js +31 -21
  7. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
  8. package/dist/cjs/dso-highlight-box.cjs.entry.js +1 -1
  9. package/dist/cjs/dso-icon.cjs.entry.js +15 -24
  10. package/dist/cjs/dso-image-overlay.cjs.entry.js +46 -8
  11. package/dist/cjs/dso-info-button.cjs.entry.js +5 -1
  12. package/dist/cjs/dso-label.cjs.entry.js +78 -3
  13. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  14. package/dist/cjs/dso-ozon-content.cjs.entry.js +60 -9
  15. package/dist/cjs/dso-pagination.cjs.entry.js +6 -3
  16. package/dist/cjs/dso-progress-bar.cjs.entry.js +1 -1
  17. package/dist/cjs/dso-toggletip.cjs.entry.js +3 -15
  18. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  19. package/dist/cjs/dso-tooltip.cjs.entry.js +8 -1
  20. package/dist/cjs/dso-tree-view.cjs.entry.js +24 -2
  21. package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
  22. package/dist/cjs/loader.cjs.js +1 -1
  23. package/dist/collection/collection-manifest.json +1 -1
  24. package/dist/collection/components/alert/alert.css +5 -5
  25. package/dist/collection/components/autosuggest/autosuggest.js +68 -11
  26. package/dist/collection/components/autosuggest/autosuggest.template.js +3 -1
  27. package/dist/collection/components/badge/badge.css +4 -1
  28. package/dist/collection/components/banner/banner.css +2 -2
  29. package/dist/collection/components/date-picker/date-picker.css +3 -3
  30. package/dist/collection/components/header/header.css +149 -3
  31. package/dist/collection/components/header/header.interfaces.js +1 -0
  32. package/dist/collection/components/header/header.js +94 -100
  33. package/dist/collection/components/header/header.template.js +15 -31
  34. package/dist/collection/components/helpcenter-panel/helpcenter-panel.css +98 -4
  35. package/dist/collection/components/highlight-box/highlight-box.css +11 -6
  36. package/dist/collection/components/icon/icon.js +0 -2
  37. package/dist/collection/components/image-overlay/image-overlay.css +126 -4
  38. package/dist/collection/components/image-overlay/image-overlay.js +57 -11
  39. package/dist/collection/components/info-button/info-button.js +24 -2
  40. package/dist/collection/components/label/label.css +14 -1
  41. package/dist/collection/components/label/label.js +118 -12
  42. package/dist/collection/components/label/label.template.js +2 -1
  43. package/dist/collection/components/list/list.template.js +11 -4
  44. package/dist/collection/components/map-controls/map-controls.css +149 -4
  45. package/dist/collection/components/ozon-content/nodes/figuur.node.js +22 -0
  46. package/dist/collection/components/ozon-content/nodes/{illustratie.node.js → inline-tekst-afbeelding.node.js} +2 -2
  47. package/dist/collection/components/ozon-content/nodes/int-io-ref.node.js +27 -0
  48. package/dist/collection/components/ozon-content/nodes/int-ref.node.js +1 -0
  49. package/dist/collection/components/ozon-content/ozon-content-mapper.js +7 -3
  50. package/dist/collection/components/ozon-content/ozon-content.css +25 -8
  51. package/dist/collection/components/ozon-content/ozon-content.js +3 -1
  52. package/dist/collection/components/pagination/pagination.css +4 -4
  53. package/dist/collection/components/pagination/pagination.js +8 -5
  54. package/dist/collection/components/progress-bar/progress-bar.css +1 -1
  55. package/dist/collection/components/toggletip/toggletip.js +3 -15
  56. package/dist/collection/components/tooltip/tooltip.css +1 -1
  57. package/dist/collection/components/tooltip/tooltip.js +7 -0
  58. package/dist/collection/components/tree-view/tree-item.js +1 -1
  59. package/dist/collection/components/tree-view/tree-view.js +58 -2
  60. package/dist/collection/components/viewer-grid/viewer-grid.css +212 -10
  61. package/dist/custom-elements/index.js +318 -110
  62. package/dist/dso-toolkit/dso-toolkit.css +1 -1
  63. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  64. package/dist/dso-toolkit/p-15d0f2eb.entry.js +1 -0
  65. package/dist/dso-toolkit/p-1845b0ce.entry.js +1 -0
  66. package/dist/dso-toolkit/p-19b5fae2.entry.js +1 -0
  67. package/dist/dso-toolkit/p-237cd551.entry.js +1 -0
  68. package/dist/dso-toolkit/{p-0777c1c4.entry.js → p-363b56b1.entry.js} +1 -1
  69. package/dist/dso-toolkit/p-590cbab6.entry.js +1 -0
  70. package/dist/dso-toolkit/{p-3cb44a36.entry.js → p-6505be7d.entry.js} +1 -1
  71. package/dist/dso-toolkit/p-68d49733.entry.js +1 -0
  72. package/dist/dso-toolkit/{p-1e92e29d.entry.js → p-7b716383.entry.js} +1 -1
  73. package/dist/dso-toolkit/p-80b5c915.entry.js +1 -0
  74. package/dist/dso-toolkit/p-93683c65.entry.js +1 -0
  75. package/dist/dso-toolkit/p-acc0620a.entry.js +1 -0
  76. package/dist/dso-toolkit/p-ba835421.entry.js +1 -0
  77. package/dist/dso-toolkit/p-bd1ee63c.entry.js +1 -0
  78. package/dist/dso-toolkit/p-bf4d6f63.entry.js +1 -0
  79. package/dist/dso-toolkit/p-ca3a1440.entry.js +1 -0
  80. package/dist/dso-toolkit/{p-37e12c3c.entry.js → p-d60876c2.entry.js} +1 -1
  81. package/dist/dso-toolkit/p-d84c166c.entry.js +1 -0
  82. package/dist/dso-toolkit/p-e98f049e.entry.js +1 -0
  83. package/dist/dso-toolkit/p-f726111e.entry.js +1 -0
  84. package/dist/esm/dso-alert.entry.js +1 -1
  85. package/dist/esm/dso-autosuggest.entry.js +30 -10
  86. package/dist/esm/dso-badge.entry.js +1 -1
  87. package/dist/esm/dso-banner.entry.js +1 -1
  88. package/dist/esm/dso-date-picker.entry.js +1 -1
  89. package/dist/esm/dso-header.entry.js +31 -21
  90. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  91. package/dist/esm/dso-highlight-box.entry.js +1 -1
  92. package/dist/esm/dso-icon.entry.js +15 -24
  93. package/dist/esm/dso-image-overlay.entry.js +46 -8
  94. package/dist/esm/dso-info-button.entry.js +5 -1
  95. package/dist/esm/dso-label.entry.js +79 -4
  96. package/dist/esm/dso-map-controls.entry.js +1 -1
  97. package/dist/esm/dso-ozon-content.entry.js +60 -9
  98. package/dist/esm/dso-pagination.entry.js +6 -3
  99. package/dist/esm/dso-progress-bar.entry.js +1 -1
  100. package/dist/esm/dso-toggletip.entry.js +3 -15
  101. package/dist/esm/dso-toolkit.js +1 -1
  102. package/dist/esm/dso-tooltip.entry.js +8 -1
  103. package/dist/esm/dso-tree-view.entry.js +24 -2
  104. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  105. package/dist/esm/loader.js +1 -1
  106. package/dist/types/components/autosuggest/autosuggest.d.ts +17 -1
  107. package/dist/types/components/autosuggest/autosuggest.template.d.ts +1 -1
  108. package/dist/types/components/header/header.d.ts +13 -20
  109. package/dist/types/components/header/header.interfaces.d.ts +17 -0
  110. package/dist/types/components/header/header.template.d.ts +1 -1
  111. package/dist/types/components/image-overlay/image-overlay.d.ts +5 -0
  112. package/dist/types/components/info-button/info-button.d.ts +2 -0
  113. package/dist/types/components/label/label.d.ts +21 -3
  114. package/dist/types/components/label/label.template.d.ts +1 -1
  115. package/dist/types/components/ozon-content/nodes/{illustratie.node.d.ts → figuur.node.d.ts} +1 -1
  116. package/dist/types/components/ozon-content/nodes/inline-tekst-afbeelding.node.d.ts +5 -0
  117. package/dist/types/components/ozon-content/nodes/int-io-ref.node.d.ts +6 -0
  118. package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +2 -1
  119. package/dist/types/components/ozon-content/ozon-content.interfaces.d.ts +2 -0
  120. package/dist/types/components/toggletip/toggletip.d.ts +1 -3
  121. package/dist/types/components/tooltip/tooltip.d.ts +1 -0
  122. package/dist/types/components/tree-view/tree-view.d.ts +10 -2
  123. package/dist/types/components.d.ts +43 -7
  124. package/package.json +1 -1
  125. package/dist/dso-toolkit/p-076400f4.entry.js +0 -1
  126. package/dist/dso-toolkit/p-09b53589.entry.js +0 -1
  127. package/dist/dso-toolkit/p-14fc5767.entry.js +0 -1
  128. package/dist/dso-toolkit/p-2f64bded.entry.js +0 -1
  129. package/dist/dso-toolkit/p-5e614420.entry.js +0 -1
  130. package/dist/dso-toolkit/p-60679db4.entry.js +0 -1
  131. package/dist/dso-toolkit/p-7796687c.entry.js +0 -1
  132. package/dist/dso-toolkit/p-7f41f2a1.entry.js +0 -1
  133. package/dist/dso-toolkit/p-b1dc8d76.entry.js +0 -1
  134. package/dist/dso-toolkit/p-c0b7f435.entry.js +0 -1
  135. package/dist/dso-toolkit/p-d0d279cc.entry.js +0 -1
  136. package/dist/dso-toolkit/p-daf049bd.entry.js +0 -1
  137. package/dist/dso-toolkit/p-e01b1657.entry.js +0 -1
  138. package/dist/dso-toolkit/p-e1496a15.entry.js +0 -1
  139. package/dist/dso-toolkit/p-ea14647b.entry.js +0 -1
  140. package/dist/dso-toolkit/p-f1026921.entry.js +0 -1
@@ -30,7 +30,7 @@
30
30
  background-color: #39870c;
31
31
  color: #fff;
32
32
  float: left;
33
- font-size: 14px;
33
+ font-size: 0.875rem;
34
34
  height: 100%;
35
35
  line-height: 16px;
36
36
  text-align: center;
@@ -23,30 +23,18 @@ export class Toggletip {
23
23
  }
24
24
  };
25
25
  this.keyDownListener = (event) => {
26
+ var _a;
26
27
  if (!event.defaultPrevented && event.key == "Escape") {
27
28
  this.close();
28
- this.button.focus();
29
+ (_a = this.infoButton) === null || _a === void 0 ? void 0 : _a.setFocus();
29
30
  event.preventDefault();
30
31
  }
31
32
  return;
32
33
  };
33
34
  }
34
- componentDidRender() {
35
- var _a, _b, _c;
36
- const infoButton = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector("dso-info-button");
37
- if (!infoButton) {
38
- throw Error("dso-info-button not found");
39
- }
40
- this.infoButton = infoButton;
41
- const button = (_c = (_b = this.infoButton) === null || _b === void 0 ? void 0 : _b.shadowRoot) === null || _c === void 0 ? void 0 : _c.querySelector("button");
42
- if (!button) {
43
- throw Error("button not found");
44
- }
45
- this.button = button;
46
- }
47
35
  render() {
48
36
  return (h(Fragment, null,
49
- h("dso-info-button", { id: "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary }),
37
+ h("dso-info-button", { id: "toggle", onClick: this.click, label: this.label, active: this.active, secondary: this.secondary, ref: element => this.infoButton = element }),
50
38
  h("dso-tooltip", { stateless: true, descriptive: true, for: "toggle", active: this.active, position: this.position, small: this.small },
51
39
  h("slot", null))));
52
40
  }
@@ -59,7 +59,7 @@
59
59
  border-radius: 4px;
60
60
  color: #191919;
61
61
  display: inline-block;
62
- font-size: 16px;
62
+ font-size: 1rem;
63
63
  max-width: 640px;
64
64
  padding: 8px 16px;
65
65
  position: relative;
@@ -47,6 +47,11 @@ export class Tooltip {
47
47
  state.styles.popper = Object.assign(Object.assign({}, state.styles.popper), { maxWidth: `${width}px` });
48
48
  },
49
49
  };
50
+ this.keyDownListener = (event) => {
51
+ if (event.key === 'Escape') {
52
+ this.deactivate();
53
+ }
54
+ };
50
55
  }
51
56
  /**
52
57
  * Activate the tooltip (Sets the `active` attribute)
@@ -105,6 +110,7 @@ export class Tooltip {
105
110
  (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
106
111
  modifiers: [{ name: 'eventListeners', enabled: true }]
107
112
  });
113
+ document.addEventListener('keydown', this.keyDownListener);
108
114
  });
109
115
  }
110
116
  }
@@ -113,6 +119,7 @@ export class Tooltip {
113
119
  (_a = this.popper) === null || _a === void 0 ? void 0 : _a.setOptions({
114
120
  modifiers: [{ name: 'eventListeners', enabled: false }]
115
121
  });
122
+ document.removeEventListener('keydown', this.keyDownListener);
116
123
  }
117
124
  setTimeout(() => (this.hidden = true), transitionDuration);
118
125
  }
@@ -8,7 +8,7 @@ export const DsoTreeItem = ({ owner, ancestors, item, index, level, setSize }) =
8
8
  h("div", { onClick: (e) => owner.itemClick(e, ancestors, item) },
9
9
  h("dso-icon", { icon: item.open ? 'minus-square' : 'plus-square' }))
10
10
  : h("dso-icon", null)),
11
- h("p", { class: clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_b = item.items) === null || _b === void 0 ? void 0 : _b.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, onClick: (e) => owner.itemClick(e, ancestors, item) },
11
+ h("p", { class: clsx('tree-content', { 'active': item.active }, { 'selected': item.selected }), tabindex: level === 1 && index === 0 ? 0 : -1, role: "treeitem", "aria-expanded": item.hasItems ? '' + (!!item.open && !!((_b = item.items) === null || _b === void 0 ? void 0 : _b.length)) : undefined, "aria-current": item.active ? 'true' : undefined, "aria-level": level, "aria-setsize": setSize, "aria-posinset": index + 1, "aria-busy": item.loading ? 'true' : undefined, "data-item-id": item.id, onClick: (e) => owner.itemClick(e, ancestors, item) },
12
12
  item.selected && h("span", { class: "sr-only" }, "Resultaat: "),
13
13
  item.href
14
14
  ? h("a", { href: item.href, tabindex: "-1" }, item.label)
@@ -1,4 +1,4 @@
1
- import { h, Component, Event, Prop } from '@stencil/core';
1
+ import { h, Component, Event, Prop, Method } from '@stencil/core';
2
2
  import { DsoTreeItem } from './tree-item';
3
3
  export class TreeView {
4
4
  constructor() {
@@ -66,6 +66,28 @@ export class TreeView {
66
66
  }
67
67
  };
68
68
  }
69
+ /**
70
+ * Set focus on the last item in the specified path.
71
+ * The consumer is responsible for providing a TreeView collection where the last item is visible.
72
+ * @async
73
+ * @returns Whether the item was found.
74
+ */
75
+ async focusItem(path) {
76
+ var _a;
77
+ const tree = this.tree;
78
+ if (!tree || path.length === 0) {
79
+ return false;
80
+ }
81
+ const itemToFocus = path[path.length - 1];
82
+ const elementToFocus = Array.from((_a = tree.querySelectorAll('p')) !== null && _a !== void 0 ? _a : [])
83
+ .filter(item => item.offsetWidth > 0 && item.offsetHeight > 0)
84
+ .find(item => item.dataset['itemId'] === itemToFocus.id);
85
+ if (!elementToFocus) {
86
+ return false;
87
+ }
88
+ TreeView.setFocus(tree, elementToFocus);
89
+ return true;
90
+ }
69
91
  static setFocus(tree, target) {
70
92
  if (target) {
71
93
  Array.from(tree.querySelectorAll('p'))
@@ -142,7 +164,7 @@ export class TreeView {
142
164
  }
143
165
  render() {
144
166
  var _a;
145
- return (h("div", { id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e) },
167
+ return (h("div", { id: "tree", class: "dso-tree", onKeyDown: (e) => this.keyDownListener(e), ref: element => this.tree = element },
146
168
  h("ul", { role: "tree", "aria-label": "Objectenboom" }, (_a = this.collection) === null || _a === void 0 ? void 0 : _a.map((item, index) => h(DsoTreeItem, { owner: this, ancestors: [], item: item, index: index, level: 1, setSize: this.collection.length })))));
147
169
  }
148
170
  static get is() { return "dso-tree-view"; }
@@ -236,4 +258,38 @@ export class TreeView {
236
258
  }
237
259
  }
238
260
  }]; }
261
+ static get methods() { return {
262
+ "focusItem": {
263
+ "complexType": {
264
+ "signature": "(path: TreeViewItem[]) => Promise<boolean>",
265
+ "parameters": [{
266
+ "tags": [],
267
+ "text": ""
268
+ }],
269
+ "references": {
270
+ "Promise": {
271
+ "location": "global"
272
+ },
273
+ "TreeViewItem": {
274
+ "location": "import",
275
+ "path": "./tree-view.interfaces"
276
+ },
277
+ "HTMLElement": {
278
+ "location": "global"
279
+ }
280
+ },
281
+ "return": "Promise<boolean>"
282
+ },
283
+ "docs": {
284
+ "text": "Set focus on the last item in the specified path.\nThe consumer is responsible for providing a TreeView collection where the last item is visible.",
285
+ "tags": [{
286
+ "name": "async",
287
+ "text": undefined
288
+ }, {
289
+ "name": "returns",
290
+ "text": "Whether the item was found."
291
+ }]
292
+ }
293
+ }
294
+ }; }
239
295
  }
@@ -200,6 +200,13 @@ h6,
200
200
  .overlay-close-button[disabled] {
201
201
  color: #afcf9d;
202
202
  }
203
+ .shrink[disabled].dso-spinner-left, .shrink[disabled].dso-spinner-right,
204
+ .expand[disabled].dso-spinner-left,
205
+ .expand[disabled].dso-spinner-right,
206
+ .overlay-close-button[disabled].dso-spinner-left,
207
+ .overlay-close-button[disabled].dso-spinner-right {
208
+ color: #39870c;
209
+ }
203
210
  .shrink:not([disabled]):hover,
204
211
  .expand:not([disabled]):hover,
205
212
  .overlay-close-button:not([disabled]):hover {
@@ -270,6 +277,30 @@ h6,
270
277
  .overlay-close-button.extern:not([disabled]):active::after {
271
278
  --dso-icon: var(--di-external-link-scampi);
272
279
  }
280
+ .shrink.dso-spinner-left::before,
281
+ .expand.dso-spinner-left::before,
282
+ .overlay-close-button.dso-spinner-left::before {
283
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
284
+ background-repeat: no-repeat;
285
+ content: "";
286
+ display: inline-block;
287
+ height: 24px;
288
+ vertical-align: middle;
289
+ width: 24px;
290
+ margin-right: 8px;
291
+ }
292
+ .shrink.dso-spinner-right::after,
293
+ .expand.dso-spinner-right::after,
294
+ .overlay-close-button.dso-spinner-right::after {
295
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
296
+ background-repeat: no-repeat;
297
+ content: "";
298
+ display: inline-block;
299
+ height: 24px;
300
+ vertical-align: middle;
301
+ width: 24px;
302
+ margin-left: 8px;
303
+ }
273
304
  .shrink dso-icon + span:not(.sr-only),
274
305
  .shrink svg.di + span:not(.sr-only),
275
306
  .shrink span:not(.sr-only) + dso-icon,
@@ -412,13 +443,21 @@ h6,
412
443
  color: #afcf9d;
413
444
  }
414
445
  .sizing-buttons button.btn-sm {
415
- line-height: 16px;
446
+ line-height: 1rem;
416
447
  }
417
448
  .sizing-buttons button.btn-sm dso-icon,
418
- .sizing-buttons button.btn-sm svg.di, .sizing-buttons button.btn-sm.extern::after, .sizing-buttons button.btn-sm.download::after {
449
+ .sizing-buttons button.btn-sm svg.di, .sizing-buttons button.btn-sm.extern::after, .sizing-buttons button.btn-sm.download::after, .sizing-buttons button.btn-sm.dso-spinner::before {
419
450
  margin-bottom: -4px;
420
451
  margin-top: -4px;
421
452
  }
453
+ .sizing-buttons button.btn-sm.dso-spinner-left::before {
454
+ height: 16px;
455
+ width: 16px;
456
+ }
457
+ .sizing-buttons button.btn-sm.dso-spinner-right::after {
458
+ height: 16px;
459
+ width: 16px;
460
+ }
422
461
  .sizing-buttons button.download::after {
423
462
  background: var(--dso-icon, var(--di-download)) no-repeat;
424
463
  background-position: center;
@@ -457,6 +496,59 @@ h6,
457
496
  clip: rect(0, 0, 0, 0);
458
497
  border: 0;
459
498
  }
499
+ .sizing-buttons button.dso-spinner-left[disabled], .sizing-buttons button.dso-spinner-right[disabled] {
500
+ background-color: #fff;
501
+ border-color: #39870c;
502
+ color: #39870c;
503
+ }
504
+ .sizing-buttons button.dso-spinner-left::before {
505
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
506
+ background-repeat: no-repeat;
507
+ content: "";
508
+ display: inline-block;
509
+ height: 24px;
510
+ vertical-align: top;
511
+ width: 24px;
512
+ margin-right: 8px;
513
+ }
514
+ .sizing-buttons button.dso-spinner-left:not([disabled]):hover::before {
515
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
516
+ background-repeat: no-repeat;
517
+ content: "";
518
+ display: inline-block;
519
+ height: 24px;
520
+ vertical-align: top;
521
+ width: 24px;
522
+ margin-right: 8px;
523
+ }
524
+ .sizing-buttons button.dso-spinner-left:not([disabled]).btn-sm:hover::before {
525
+ height: 16px;
526
+ width: 16px;
527
+ }
528
+ .sizing-buttons button.dso-spinner-right::after {
529
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
530
+ background-repeat: no-repeat;
531
+ content: "";
532
+ display: inline-block;
533
+ height: 24px;
534
+ vertical-align: top;
535
+ width: 24px;
536
+ margin-left: 8px;
537
+ }
538
+ .sizing-buttons button.dso-spinner-right:not([disabled]):hover::after {
539
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
540
+ background-repeat: no-repeat;
541
+ content: "";
542
+ display: inline-block;
543
+ height: 24px;
544
+ vertical-align: top;
545
+ width: 24px;
546
+ margin-left: 8px;
547
+ }
548
+ .sizing-buttons button.dso-spinner-right:not([disabled]).btn-sm:hover::after {
549
+ height: 16px;
550
+ width: 16px;
551
+ }
460
552
  .sizing-buttons button:focus-visible {
461
553
  background-color: #39870c;
462
554
  border-color: #39870c;
@@ -558,7 +650,7 @@ h6,
558
650
  line-height: 1.5;
559
651
  min-width: 56px;
560
652
  padding: 11px 15px;
561
- line-height: 16px;
653
+ line-height: 1rem;
562
654
  }
563
655
  .filterpanel-buttons .cancel-button:focus, .filterpanel-buttons .cancel-button:focus-visible {
564
656
  outline-offset: 2px;
@@ -590,13 +682,21 @@ h6,
590
682
  color: #afcf9d;
591
683
  }
592
684
  .filterpanel-buttons .cancel-button.btn-sm {
593
- line-height: 16px;
685
+ line-height: 1rem;
594
686
  }
595
687
  .filterpanel-buttons .cancel-button.btn-sm dso-icon,
596
- .filterpanel-buttons .cancel-button.btn-sm svg.di, .filterpanel-buttons .cancel-button.btn-sm.extern::after, .filterpanel-buttons .cancel-button.btn-sm.download::after {
688
+ .filterpanel-buttons .cancel-button.btn-sm svg.di, .filterpanel-buttons .cancel-button.btn-sm.extern::after, .filterpanel-buttons .cancel-button.btn-sm.download::after, .filterpanel-buttons .cancel-button.btn-sm.dso-spinner::before {
597
689
  margin-bottom: -4px;
598
690
  margin-top: -4px;
599
691
  }
692
+ .filterpanel-buttons .cancel-button.btn-sm.dso-spinner-left::before {
693
+ height: 16px;
694
+ width: 16px;
695
+ }
696
+ .filterpanel-buttons .cancel-button.btn-sm.dso-spinner-right::after {
697
+ height: 16px;
698
+ width: 16px;
699
+ }
600
700
  .filterpanel-buttons .cancel-button.download::after {
601
701
  background: var(--dso-icon, var(--di-download)) no-repeat;
602
702
  background-position: center;
@@ -635,11 +735,72 @@ h6,
635
735
  margin-left: 8px;
636
736
  margin-right: -8px;
637
737
  }
738
+ .filterpanel-buttons .cancel-button.dso-spinner-left[disabled], .filterpanel-buttons .cancel-button.dso-spinner-right[disabled] {
739
+ background-color: #fff;
740
+ border-color: #39870c;
741
+ color: #39870c;
742
+ }
743
+ .filterpanel-buttons .cancel-button.dso-spinner-left::before {
744
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
745
+ background-repeat: no-repeat;
746
+ content: "";
747
+ display: inline-block;
748
+ height: 24px;
749
+ vertical-align: top;
750
+ width: 24px;
751
+ margin-right: 8px;
752
+ }
753
+ .filterpanel-buttons .cancel-button.dso-spinner-left:not([disabled]):hover::before {
754
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
755
+ background-repeat: no-repeat;
756
+ content: "";
757
+ display: inline-block;
758
+ height: 24px;
759
+ vertical-align: top;
760
+ width: 24px;
761
+ margin-right: 8px;
762
+ }
763
+ .filterpanel-buttons .cancel-button.dso-spinner-left:not([disabled]).btn-sm:hover::before {
764
+ height: 16px;
765
+ width: 16px;
766
+ }
767
+ .filterpanel-buttons .cancel-button.dso-spinner-right::after {
768
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %2339870c; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
769
+ background-repeat: no-repeat;
770
+ content: "";
771
+ display: inline-block;
772
+ height: 24px;
773
+ vertical-align: top;
774
+ width: 24px;
775
+ margin-left: 8px;
776
+ }
777
+ .filterpanel-buttons .cancel-button.dso-spinner-right:not([disabled]):hover::after {
778
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
779
+ background-repeat: no-repeat;
780
+ content: "";
781
+ display: inline-block;
782
+ height: 24px;
783
+ vertical-align: top;
784
+ width: 24px;
785
+ margin-left: 8px;
786
+ }
787
+ .filterpanel-buttons .cancel-button.dso-spinner-right:not([disabled]).btn-sm:hover::after {
788
+ height: 16px;
789
+ width: 16px;
790
+ }
638
791
  .filterpanel-buttons .cancel-button dso-icon,
639
- .filterpanel-buttons .cancel-button svg.di, .filterpanel-buttons .cancel-button.extern::after, .filterpanel-buttons .cancel-button.download::after {
792
+ .filterpanel-buttons .cancel-button svg.di, .filterpanel-buttons .cancel-button.extern::after, .filterpanel-buttons .cancel-button.download::after, .filterpanel-buttons .cancel-button.dso-spinner::before {
640
793
  margin-bottom: -4px;
641
794
  margin-top: -4px;
642
795
  }
796
+ .filterpanel-buttons .cancel-button.dso-spinner-left::before {
797
+ height: 16px;
798
+ width: 16px;
799
+ }
800
+ .filterpanel-buttons .cancel-button.dso-spinner-right::after {
801
+ height: 16px;
802
+ width: 16px;
803
+ }
643
804
  .filterpanel-buttons .apply-button {
644
805
  display: inline-block;
645
806
  font-size: 1em;
@@ -659,7 +820,7 @@ h6,
659
820
  line-height: 1.5;
660
821
  min-width: 56px;
661
822
  padding: 11px 15px;
662
- line-height: 16px;
823
+ line-height: 1rem;
663
824
  }
664
825
  .filterpanel-buttons .apply-button:focus, .filterpanel-buttons .apply-button:focus-visible {
665
826
  outline-offset: 2px;
@@ -691,13 +852,21 @@ h6,
691
852
  color: #fff;
692
853
  }
693
854
  .filterpanel-buttons .apply-button.btn-sm {
694
- line-height: 16px;
855
+ line-height: 1rem;
695
856
  }
696
857
  .filterpanel-buttons .apply-button.btn-sm dso-icon,
697
- .filterpanel-buttons .apply-button.btn-sm svg.di, .filterpanel-buttons .apply-button.btn-sm.extern::after, .filterpanel-buttons .apply-button.btn-sm.download::after {
858
+ .filterpanel-buttons .apply-button.btn-sm svg.di, .filterpanel-buttons .apply-button.btn-sm.extern::after, .filterpanel-buttons .apply-button.btn-sm.download::after, .filterpanel-buttons .apply-button.btn-sm.dso-spinner::before {
698
859
  margin-bottom: -4px;
699
860
  margin-top: -4px;
700
861
  }
862
+ .filterpanel-buttons .apply-button.btn-sm.dso-spinner-left::before {
863
+ height: 16px;
864
+ width: 16px;
865
+ }
866
+ .filterpanel-buttons .apply-button.btn-sm.dso-spinner-right::after {
867
+ height: 16px;
868
+ width: 16px;
869
+ }
701
870
  .filterpanel-buttons .apply-button.download::after {
702
871
  background: var(--dso-icon, var(--di-download-wit)) no-repeat;
703
872
  background-position: center;
@@ -724,11 +893,44 @@ h6,
724
893
  margin-left: 8px;
725
894
  margin-right: -8px;
726
895
  }
896
+ .filterpanel-buttons .apply-button.dso-spinner-left[disabled], .filterpanel-buttons .apply-button.dso-spinner-right[disabled] {
897
+ background-color: #39870c;
898
+ border-color: #39870c;
899
+ color: #fff;
900
+ }
901
+ .filterpanel-buttons .apply-button.dso-spinner-left::before {
902
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
903
+ background-repeat: no-repeat;
904
+ content: "";
905
+ display: inline-block;
906
+ height: 24px;
907
+ vertical-align: top;
908
+ width: 24px;
909
+ margin-right: 8px;
910
+ }
911
+ .filterpanel-buttons .apply-button.dso-spinner-right::after {
912
+ background-image: url("data:image/svg+xml,%3Csvg class='spinner' viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E .spinner %7B animation: rotator 8s linear infinite; transform-origin: center; %7D @keyframes rotator %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D .path %7B stroke-dasharray: 265; stroke-dashoffset: 0; transform-origin: center; stroke: %23fff; animation: dash 2s ease-in-out infinite; %7D @keyframes dash %7B 0%25 %7B stroke-dashoffset: 265; %7D 50%25 %7B stroke-dashoffset: 65; transform:rotate(90deg); %7D 100%25 %7B stroke-dashoffset: 265; transform:rotate(360deg); %7D %3C/style%3E%3Ccircle class='path' fill='none' stroke-width='10' stroke-linecap='butt' cx='50' cy='50' r='45'%3E%3C/circle%3E%3C/svg%3E");
913
+ background-repeat: no-repeat;
914
+ content: "";
915
+ display: inline-block;
916
+ height: 24px;
917
+ vertical-align: top;
918
+ width: 24px;
919
+ margin-left: 8px;
920
+ }
727
921
  .filterpanel-buttons .apply-button dso-icon,
728
- .filterpanel-buttons .apply-button svg.di, .filterpanel-buttons .apply-button.extern::after, .filterpanel-buttons .apply-button.download::after {
922
+ .filterpanel-buttons .apply-button svg.di, .filterpanel-buttons .apply-button.extern::after, .filterpanel-buttons .apply-button.download::after, .filterpanel-buttons .apply-button.dso-spinner::before {
729
923
  margin-bottom: -4px;
730
924
  margin-top: -4px;
731
925
  }
926
+ .filterpanel-buttons .apply-button.dso-spinner-left::before {
927
+ height: 16px;
928
+ width: 16px;
929
+ }
930
+ .filterpanel-buttons .apply-button.dso-spinner-right::after {
931
+ height: 16px;
932
+ width: 16px;
933
+ }
732
934
  .filterpanel-buttons .cancel-button + .apply-button {
733
935
  margin-left: 16px;
734
936
  }