@dso-toolkit/core 56.1.0 → 57.0.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 (122) hide show
  1. package/dist/cjs/dso-accordion-section.cjs.entry.js +1 -1
  2. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  3. package/dist/cjs/dso-alert_5.cjs.entry.js +2 -2
  4. package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dso-header.cjs.entry.js +1 -1
  6. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js +1 -1
  8. package/dist/cjs/dso-helpcenter-panel.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dso-image-overlay.cjs.entry.js +1 -1
  10. package/dist/cjs/dso-image-overlay.cjs.entry.js.map +1 -1
  11. package/dist/cjs/dso-info-button.cjs.entry.js +1 -1
  12. package/dist/cjs/dso-info-button.cjs.entry.js.map +1 -1
  13. package/dist/cjs/dso-list-button.cjs.entry.js +2 -2
  14. package/dist/cjs/dso-list-button.cjs.entry.js.map +1 -1
  15. package/dist/cjs/dso-map-controls.cjs.entry.js +1 -1
  16. package/dist/cjs/dso-map-controls.cjs.entry.js.map +1 -1
  17. package/dist/cjs/dso-modal.cjs.entry.js +1 -1
  18. package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
  19. package/dist/cjs/dso-table.cjs.entry.js +1 -1
  20. package/dist/cjs/dso-table.cjs.entry.js.map +1 -1
  21. package/dist/cjs/dso-viewer-grid.cjs.entry.js +1 -1
  22. package/dist/cjs/dso-viewer-grid.cjs.entry.js.map +1 -1
  23. package/dist/collection/components/accordion/accordion.interfaces.js.map +1 -1
  24. package/dist/collection/components/accordion/accordion.js +1 -1
  25. package/dist/collection/components/accordion/components/accordion-section.css +66 -1
  26. package/dist/collection/components/annotation-button/annotation-button.css +59 -383
  27. package/dist/collection/components/header/header.css +3 -3
  28. package/dist/collection/components/helpcenter-panel/helpcenter-panel.css +12 -12
  29. package/dist/collection/components/image-overlay/image-overlay.css +14 -14
  30. package/dist/collection/components/info-button/info-button.js +1 -1
  31. package/dist/collection/components/info-button/info-button.js.map +1 -1
  32. package/dist/collection/components/list-button/list-button.css +29 -23
  33. package/dist/collection/components/list-button/list-button.js +1 -1
  34. package/dist/collection/components/list-button/list-button.js.map +1 -1
  35. package/dist/collection/components/map-controls/map-controls.css +21 -15
  36. package/dist/collection/components/modal/modal.css +6 -8
  37. package/dist/collection/components/ozon-content/ozon-content.css +7 -1
  38. package/dist/collection/components/table/table.css +13 -9
  39. package/dist/collection/components/viewer-grid/viewer-grid.css +30 -22
  40. package/dist/components/annotation-button.js +1 -1
  41. package/dist/components/annotation-button.js.map +1 -1
  42. package/dist/components/dso-accordion-section.js +1 -1
  43. package/dist/components/dso-accordion-section.js.map +1 -1
  44. package/dist/components/dso-header.js +1 -1
  45. package/dist/components/dso-header.js.map +1 -1
  46. package/dist/components/dso-helpcenter-panel.js +1 -1
  47. package/dist/components/dso-helpcenter-panel.js.map +1 -1
  48. package/dist/components/dso-image-overlay.js +1 -1
  49. package/dist/components/dso-image-overlay.js.map +1 -1
  50. package/dist/components/dso-list-button.js +2 -2
  51. package/dist/components/dso-list-button.js.map +1 -1
  52. package/dist/components/dso-map-controls.js +1 -1
  53. package/dist/components/dso-map-controls.js.map +1 -1
  54. package/dist/components/dso-modal.js +1 -1
  55. package/dist/components/dso-modal.js.map +1 -1
  56. package/dist/components/dso-table.js +1 -1
  57. package/dist/components/dso-table.js.map +1 -1
  58. package/dist/components/dso-viewer-grid.js +1 -1
  59. package/dist/components/dso-viewer-grid.js.map +1 -1
  60. package/dist/components/info-button.js +1 -1
  61. package/dist/components/info-button.js.map +1 -1
  62. package/dist/components/ozon-content.js +1 -1
  63. package/dist/components/ozon-content.js.map +1 -1
  64. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  65. package/dist/dso-toolkit/p-04c97d7d.entry.js +2 -0
  66. package/dist/dso-toolkit/{p-909ccf98.entry.js.map → p-04c97d7d.entry.js.map} +1 -1
  67. package/dist/dso-toolkit/p-1c295ae2.entry.js +2 -0
  68. package/dist/dso-toolkit/{p-88f4366e.entry.js.map → p-1c295ae2.entry.js.map} +1 -1
  69. package/dist/dso-toolkit/p-1fe715e4.entry.js +2 -0
  70. package/dist/dso-toolkit/{p-422bcf93.entry.js.map → p-1fe715e4.entry.js.map} +1 -1
  71. package/dist/dso-toolkit/p-27dfadbf.entry.js +2 -0
  72. package/dist/dso-toolkit/{p-b627d9ac.entry.js.map → p-27dfadbf.entry.js.map} +1 -1
  73. package/dist/dso-toolkit/p-70a28e3f.entry.js +2 -0
  74. package/dist/dso-toolkit/{p-9c0477fc.entry.js.map → p-70a28e3f.entry.js.map} +1 -1
  75. package/dist/dso-toolkit/p-b608283b.entry.js +2 -0
  76. package/dist/dso-toolkit/{p-29752a45.entry.js.map → p-b608283b.entry.js.map} +1 -1
  77. package/dist/dso-toolkit/p-e26974ee.entry.js +2 -0
  78. package/dist/dso-toolkit/p-e26974ee.entry.js.map +1 -0
  79. package/dist/dso-toolkit/p-e2cacb8b.entry.js +2 -0
  80. package/dist/dso-toolkit/p-e2cacb8b.entry.js.map +1 -0
  81. package/dist/dso-toolkit/p-e4553695.entry.js +2 -0
  82. package/dist/dso-toolkit/{p-d4320890.entry.js.map → p-e4553695.entry.js.map} +1 -1
  83. package/dist/dso-toolkit/{p-674e2406.entry.js → p-e86e0fce.entry.js} +2 -2
  84. package/dist/dso-toolkit/p-e86e0fce.entry.js.map +1 -0
  85. package/dist/dso-toolkit/{p-83cdfde8.entry.js → p-f3ed8688.entry.js} +2 -2
  86. package/dist/dso-toolkit/{p-83cdfde8.entry.js.map → p-f3ed8688.entry.js.map} +1 -1
  87. package/dist/esm/dso-accordion-section.entry.js +1 -1
  88. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  89. package/dist/esm/dso-alert_5.entry.js +2 -2
  90. package/dist/esm/dso-alert_5.entry.js.map +1 -1
  91. package/dist/esm/dso-header.entry.js +1 -1
  92. package/dist/esm/dso-header.entry.js.map +1 -1
  93. package/dist/esm/dso-helpcenter-panel.entry.js +1 -1
  94. package/dist/esm/dso-helpcenter-panel.entry.js.map +1 -1
  95. package/dist/esm/dso-image-overlay.entry.js +1 -1
  96. package/dist/esm/dso-image-overlay.entry.js.map +1 -1
  97. package/dist/esm/dso-info-button.entry.js +1 -1
  98. package/dist/esm/dso-info-button.entry.js.map +1 -1
  99. package/dist/esm/dso-list-button.entry.js +2 -2
  100. package/dist/esm/dso-list-button.entry.js.map +1 -1
  101. package/dist/esm/dso-map-controls.entry.js +1 -1
  102. package/dist/esm/dso-map-controls.entry.js.map +1 -1
  103. package/dist/esm/dso-modal.entry.js +1 -1
  104. package/dist/esm/dso-modal.entry.js.map +1 -1
  105. package/dist/esm/dso-table.entry.js +1 -1
  106. package/dist/esm/dso-table.entry.js.map +1 -1
  107. package/dist/esm/dso-viewer-grid.entry.js +1 -1
  108. package/dist/esm/dso-viewer-grid.entry.js.map +1 -1
  109. package/dist/types/components/accordion/accordion.interfaces.d.ts +1 -1
  110. package/package.json +2 -2
  111. package/dist/dso-toolkit/p-021589dc.entry.js +0 -2
  112. package/dist/dso-toolkit/p-021589dc.entry.js.map +0 -1
  113. package/dist/dso-toolkit/p-29752a45.entry.js +0 -2
  114. package/dist/dso-toolkit/p-3c554a18.entry.js +0 -2
  115. package/dist/dso-toolkit/p-3c554a18.entry.js.map +0 -1
  116. package/dist/dso-toolkit/p-422bcf93.entry.js +0 -2
  117. package/dist/dso-toolkit/p-674e2406.entry.js.map +0 -1
  118. package/dist/dso-toolkit/p-88f4366e.entry.js +0 -2
  119. package/dist/dso-toolkit/p-909ccf98.entry.js +0 -2
  120. package/dist/dso-toolkit/p-9c0477fc.entry.js +0 -2
  121. package/dist/dso-toolkit/p-b627d9ac.entry.js +0 -2
  122. package/dist/dso-toolkit/p-d4320890.entry.js +0 -2
@@ -79,19 +79,19 @@
79
79
  border-color: #afcf9d;
80
80
  color: #fff;
81
81
  }
82
- .open-button.btn-sm {
82
+ .open-button.dso-small {
83
83
  line-height: 1rem;
84
84
  }
85
- .open-button.btn-sm dso-icon,
86
- .open-button.btn-sm svg.di, .open-button.btn-sm.extern::after, .open-button.btn-sm.download::after, .open-button.btn-sm.dso-spinner::before {
85
+ .open-button.dso-small dso-icon,
86
+ .open-button.dso-small svg.di, .open-button.dso-small.extern::after, .open-button.dso-small.download::after, .open-button.dso-small.dso-spinner::before {
87
87
  margin-bottom: -4px;
88
88
  margin-top: -4px;
89
89
  }
90
- .open-button.btn-sm.dso-spinner-left::before {
90
+ .open-button.dso-small.dso-spinner-left::before {
91
91
  height: 16px;
92
92
  width: 16px;
93
93
  }
94
- .open-button.btn-sm.dso-spinner-right::after {
94
+ .open-button.dso-small.dso-spinner-right::after {
95
95
  height: 16px;
96
96
  width: 16px;
97
97
  }
@@ -188,19 +188,19 @@
188
188
  border-color: #afcf9d;
189
189
  color: #afcf9d;
190
190
  }
191
- .close-button.btn-sm {
191
+ .close-button.dso-small {
192
192
  line-height: 1rem;
193
193
  }
194
- .close-button.btn-sm dso-icon,
195
- .close-button.btn-sm svg.di, .close-button.btn-sm.extern::after, .close-button.btn-sm.download::after, .close-button.btn-sm.dso-spinner::before {
194
+ .close-button.dso-small dso-icon,
195
+ .close-button.dso-small svg.di, .close-button.dso-small.extern::after, .close-button.dso-small.download::after, .close-button.dso-small.dso-spinner::before {
196
196
  margin-bottom: -4px;
197
197
  margin-top: -4px;
198
198
  }
199
- .close-button.btn-sm.dso-spinner-left::before {
199
+ .close-button.dso-small.dso-spinner-left::before {
200
200
  height: 16px;
201
201
  width: 16px;
202
202
  }
203
- .close-button.btn-sm.dso-spinner-right::after {
203
+ .close-button.dso-small.dso-spinner-right::after {
204
204
  height: 16px;
205
205
  width: 16px;
206
206
  }
@@ -239,7 +239,7 @@
239
239
  width: 24px;
240
240
  margin-right: 8px;
241
241
  }
242
- .close-button.dso-spinner-left:not([disabled]).btn-sm:hover::before {
242
+ .close-button.dso-spinner-left:not([disabled]).dso-small:hover::before {
243
243
  height: 16px;
244
244
  width: 16px;
245
245
  }
@@ -263,7 +263,7 @@
263
263
  width: 24px;
264
264
  margin-left: 8px;
265
265
  }
266
- .close-button.dso-spinner-right:not([disabled]).btn-sm:hover::after {
266
+ .close-button.dso-spinner-right:not([disabled]).dso-small:hover::after {
267
267
  height: 16px;
268
268
  width: 16px;
269
269
  }
@@ -77,19 +77,19 @@ button::-moz-focus-inner {
77
77
  border-color: #afcf9d;
78
78
  color: #afcf9d;
79
79
  }
80
- .open.btn-sm {
80
+ .open.dso-small {
81
81
  line-height: 1rem;
82
82
  }
83
- .open.btn-sm dso-icon,
84
- .open.btn-sm svg.di, .open.btn-sm.extern::after, .open.btn-sm.download::after, .open.btn-sm.dso-spinner::before {
83
+ .open.dso-small dso-icon,
84
+ .open.dso-small svg.di, .open.dso-small.extern::after, .open.dso-small.download::after, .open.dso-small.dso-spinner::before {
85
85
  margin-bottom: -4px;
86
86
  margin-top: -4px;
87
87
  }
88
- .open.btn-sm.dso-spinner-left::before {
88
+ .open.dso-small.dso-spinner-left::before {
89
89
  height: 16px;
90
90
  width: 16px;
91
91
  }
92
- .open.btn-sm.dso-spinner-right::after {
92
+ .open.dso-small.dso-spinner-right::after {
93
93
  height: 16px;
94
94
  width: 16px;
95
95
  }
@@ -128,7 +128,7 @@ button::-moz-focus-inner {
128
128
  width: 24px;
129
129
  margin-right: 8px;
130
130
  }
131
- .open.dso-spinner-left:not([disabled]).btn-sm:hover::before {
131
+ .open.dso-spinner-left:not([disabled]).dso-small:hover::before {
132
132
  height: 16px;
133
133
  width: 16px;
134
134
  }
@@ -152,7 +152,7 @@ button::-moz-focus-inner {
152
152
  width: 24px;
153
153
  margin-left: 8px;
154
154
  }
155
- .open.dso-spinner-right:not([disabled]).btn-sm:hover::after {
155
+ .open.dso-spinner-right:not([disabled]).dso-small:hover::after {
156
156
  height: 16px;
157
157
  width: 16px;
158
158
  }
@@ -247,19 +247,19 @@ button::-moz-focus-inner {
247
247
  border-color: #afcf9d;
248
248
  color: #afcf9d;
249
249
  }
250
- .close.btn-sm {
250
+ .close.dso-small {
251
251
  line-height: 1rem;
252
252
  }
253
- .close.btn-sm dso-icon,
254
- .close.btn-sm svg.di, .close.btn-sm.extern::after, .close.btn-sm.download::after, .close.btn-sm.dso-spinner::before {
253
+ .close.dso-small dso-icon,
254
+ .close.dso-small svg.di, .close.dso-small.extern::after, .close.dso-small.download::after, .close.dso-small.dso-spinner::before {
255
255
  margin-bottom: -4px;
256
256
  margin-top: -4px;
257
257
  }
258
- .close.btn-sm.dso-spinner-left::before {
258
+ .close.dso-small.dso-spinner-left::before {
259
259
  height: 16px;
260
260
  width: 16px;
261
261
  }
262
- .close.btn-sm.dso-spinner-right::after {
262
+ .close.dso-small.dso-spinner-right::after {
263
263
  height: 16px;
264
264
  width: 16px;
265
265
  }
@@ -298,7 +298,7 @@ button::-moz-focus-inner {
298
298
  width: 24px;
299
299
  margin-right: 8px;
300
300
  }
301
- .close.dso-spinner-left:not([disabled]).btn-sm:hover::before {
301
+ .close.dso-spinner-left:not([disabled]).dso-small:hover::before {
302
302
  height: 16px;
303
303
  width: 16px;
304
304
  }
@@ -322,7 +322,7 @@ button::-moz-focus-inner {
322
322
  width: 24px;
323
323
  margin-left: 8px;
324
324
  }
325
- .close.dso-spinner-right:not([disabled]).btn-sm:hover::after {
325
+ .close.dso-spinner-right:not([disabled]).dso-small:hover::after {
326
326
  height: 16px;
327
327
  width: 16px;
328
328
  }
@@ -19,7 +19,7 @@ export class InfoButton {
19
19
  this.dsoToggle.emit({ originalEvent: e, active: this.active });
20
20
  }
21
21
  render() {
22
- return (h(Host, { onMouseenter: () => (this.hover = true), onMouseleave: () => (this.hover = false) }, h("button", { type: "button", class: clsx("btn", { "dso-open": !!this.active, "dso-info-secondary": !!this.secondary }), "aria-expanded": typeof this.active === "boolean" ? this.active.toString() : undefined, onClick: (e) => this.handleToggle(e), ref: (element) => (this.button = element) }, h("dso-icon", { icon: this.active || this.hover ? "info-active" : "info" }), h("span", { class: "sr-only" }, this.label))));
22
+ return (h(Host, { onMouseenter: () => (this.hover = true), onMouseleave: () => (this.hover = false) }, h("button", { type: "button", class: clsx({ "dso-open": !!this.active, "dso-info-secondary": !!this.secondary }), "aria-expanded": typeof this.active === "boolean" ? this.active.toString() : undefined, onClick: (e) => this.handleToggle(e), ref: (element) => (this.button = element) }, h("dso-icon", { icon: this.active || this.hover ? "info-active" : "info" }), h("span", { class: "sr-only" }, this.label))));
23
23
  }
24
24
  static get is() { return "dso-info-button"; }
25
25
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"info-button.js","sourceRoot":"","sources":["../../../src/components/info-button/info-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAgB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,OAAO,UAAU;;;iBAUb,KAAK;;iBAYL,uBAAuB;;EAQ/B;;KAEG;EAEH,KAAK,CAAC,QAAQ;;IACZ,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAC;EACvB,CAAC;EAEO,YAAY,CAAC,CAAa;IAChC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;EACjE,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;MACrF,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,mBAC1E,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EACpF,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QAEzC,gBAAU,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,GAAa;QAC/E,YAAM,KAAK,EAAC,SAAS,IAAE,IAAI,CAAC,KAAK,CAAQ,CAClC,CACJ,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Event, Prop, EventEmitter, Method, Host, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { InfoButtonToggleEvent } from \"./info-button.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-info-button\",\r\n shadow: true,\r\n styleUrl: \"info-button.scss\",\r\n})\r\nexport class InfoButton {\r\n private button?: HTMLButtonElement;\r\n\r\n /**\r\n * Whether the InfoButton is active.\r\n */\r\n @Prop({ mutable: true, reflect: true })\r\n active?: boolean;\r\n\r\n @State()\r\n hover = false;\r\n\r\n /**\r\n * For secondary Info Button.\r\n */\r\n @Prop()\r\n secondary?: boolean;\r\n\r\n /**\r\n * The label.\r\n */\r\n @Prop()\r\n label = \"Toelichting bij optie\";\r\n\r\n /**\r\n * Emitted when the user activates the Info Button.\r\n */\r\n @Event()\r\n dsoToggle!: EventEmitter<InfoButtonToggleEvent>;\r\n\r\n /**\r\n * To set focus to the toggle button.\r\n */\r\n @Method()\r\n async setFocus() {\r\n this.button?.focus();\r\n }\r\n\r\n private handleToggle(e: MouseEvent) {\r\n this.active = !this.active;\r\n this.dsoToggle.emit({ originalEvent: e, active: this.active });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host onMouseenter={() => (this.hover = true)} onMouseleave={() => (this.hover = false)}>\r\n <button\r\n type=\"button\"\r\n class={clsx(\"btn\", { \"dso-open\": !!this.active, \"dso-info-secondary\": !!this.secondary })}\r\n aria-expanded={typeof this.active === \"boolean\" ? this.active.toString() : undefined}\r\n onClick={(e) => this.handleToggle(e)}\r\n ref={(element) => (this.button = element)}\r\n >\r\n <dso-icon icon={this.active || this.hover ? \"info-active\" : \"info\"}></dso-icon>\r\n <span class=\"sr-only\">{this.label}</span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"info-button.js","sourceRoot":"","sources":["../../../src/components/info-button/info-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAgB,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC7F,OAAO,IAAI,MAAM,MAAM,CAAC;AASxB,MAAM,OAAO,UAAU;;;iBAUb,KAAK;;iBAYL,uBAAuB;;EAQ/B;;KAEG;EAEH,KAAK,CAAC,QAAQ;;IACZ,MAAA,IAAI,CAAC,MAAM,0CAAE,KAAK,EAAE,CAAC;EACvB,CAAC;EAEO,YAAY,CAAC,CAAa;IAChC,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;EACjE,CAAC;EAED,MAAM;IACJ,OAAO,CACL,EAAC,IAAI,IAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;MACrF,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,mBACnE,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,EACpF,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EACpC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;QAEzC,gBAAU,IAAI,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,GAAa;QAC/E,YAAM,KAAK,EAAC,SAAS,IAAE,IAAI,CAAC,KAAK,CAAQ,CAClC,CACJ,CACR,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { h, Component, Event, Prop, EventEmitter, Method, Host, State } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\n\r\nimport { InfoButtonToggleEvent } from \"./info-button.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-info-button\",\r\n shadow: true,\r\n styleUrl: \"info-button.scss\",\r\n})\r\nexport class InfoButton {\r\n private button?: HTMLButtonElement;\r\n\r\n /**\r\n * Whether the InfoButton is active.\r\n */\r\n @Prop({ mutable: true, reflect: true })\r\n active?: boolean;\r\n\r\n @State()\r\n hover = false;\r\n\r\n /**\r\n * For secondary Info Button.\r\n */\r\n @Prop()\r\n secondary?: boolean;\r\n\r\n /**\r\n * The label.\r\n */\r\n @Prop()\r\n label = \"Toelichting bij optie\";\r\n\r\n /**\r\n * Emitted when the user activates the Info Button.\r\n */\r\n @Event()\r\n dsoToggle!: EventEmitter<InfoButtonToggleEvent>;\r\n\r\n /**\r\n * To set focus to the toggle button.\r\n */\r\n @Method()\r\n async setFocus() {\r\n this.button?.focus();\r\n }\r\n\r\n private handleToggle(e: MouseEvent) {\r\n this.active = !this.active;\r\n this.dsoToggle.emit({ originalEvent: e, active: this.active });\r\n }\r\n\r\n render() {\r\n return (\r\n <Host onMouseenter={() => (this.hover = true)} onMouseleave={() => (this.hover = false)}>\r\n <button\r\n type=\"button\"\r\n class={clsx({ \"dso-open\": !!this.active, \"dso-info-secondary\": !!this.secondary })}\r\n aria-expanded={typeof this.active === \"boolean\" ? this.active.toString() : undefined}\r\n onClick={(e) => this.handleToggle(e)}\r\n ref={(element) => (this.button = element)}\r\n >\r\n <dso-icon icon={this.active || this.hover ? \"info-active\" : \"info\"}></dso-icon>\r\n <span class=\"sr-only\">{this.label}</span>\r\n </button>\r\n </Host>\r\n );\r\n }\r\n}\r\n"]}
@@ -60,11 +60,17 @@
60
60
  .dso-tertiary:not([disabled]):active {
61
61
  color: #173521;
62
62
  }
63
- .dso-tertiary.btn-align {
63
+ .dso-tertiary.dso-align {
64
64
  line-height: calc(1.5em - 1px);
65
65
  padding: 11px 0;
66
66
  position: relative;
67
67
  }
68
+ .dso-tertiary.dso-truncate {
69
+ max-width: 100%;
70
+ overflow: hidden;
71
+ text-overflow: ellipsis;
72
+ white-space: nowrap;
73
+ }
68
74
  .dso-tertiary.dso-spinner-left::before {
69
75
  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");
70
76
  background-repeat: no-repeat;
@@ -141,32 +147,32 @@
141
147
  -moz-appearance: textfield;
142
148
  }
143
149
 
144
- .dso-btn-group {
150
+ .dso-button-group {
145
151
  display: flex;
146
152
  flex-direction: row;
147
153
  }
148
- .dso-btn-group.dso-disabled > * {
154
+ .dso-button-group.dso-disabled > * {
149
155
  background-color: #fff;
150
156
  border-color: #e5e5e5;
151
157
  color: #666;
152
158
  pointer-events: none;
153
159
  }
154
- .dso-btn-group > * {
160
+ .dso-button-group > * {
155
161
  border-radius: 0;
156
162
  }
157
- .dso-btn-group > *:first-child {
163
+ .dso-button-group > *:first-child {
158
164
  border-radius: 4px 0 0 4px;
159
165
  }
160
- .dso-btn-group > *:not(:first-child) {
166
+ .dso-button-group > *:not(:first-child) {
161
167
  border-left-style: none !important;
162
168
  }
163
- .dso-btn-group > *:last-child {
169
+ .dso-button-group > *:last-child {
164
170
  border-radius: 0 4px 4px 0;
165
171
  }
166
- .dso-btn-group > *:only-child {
172
+ .dso-button-group > *:only-child {
167
173
  border-radius: 4px;
168
174
  }
169
- .dso-btn-group > .dso-input-number {
175
+ .dso-button-group > .dso-input-number {
170
176
  background-color: #fff;
171
177
  border-color: #ccc;
172
178
  color: #191919;
@@ -176,38 +182,38 @@
176
182
  padding: 0 16px;
177
183
  }
178
184
  @media screen and (max-width: 767px) {
179
- .dso-btn-group > .dso-input-number {
185
+ .dso-button-group > .dso-input-number {
180
186
  justify-content: center;
181
187
  }
182
188
  }
183
- .dso-btn-group > *:hover + .dso-input-number,
184
- .dso-btn-group > *:focus + .dso-input-number {
189
+ .dso-button-group > *:hover + .dso-input-number,
190
+ .dso-button-group > *:focus + .dso-input-number {
185
191
  background-color: #fff;
186
192
  border-color: #39870c;
187
193
  color: #191919;
188
194
  }
189
- .dso-btn-group > *.dso-selected + .dso-input-number {
195
+ .dso-button-group > *.dso-selected + .dso-input-number {
190
196
  background-color: #fff;
191
197
  border-color: #39870c;
192
198
  color: #191919;
193
199
  box-shadow: inset 0 -1px 0 0 #39870c, inset 0 1px 0 0 #39870c, inset -1px 0 0 0 #39870c;
194
200
  }
195
- .dso-btn-group > *:active + .dso-input-number, .dso-btn-group > *:active + .dso-input-number:hover,
196
- .dso-btn-group > *.active + .dso-input-number,
197
- .dso-btn-group > *.active + .dso-input-number:hover {
201
+ .dso-button-group > *:active + .dso-input-number, .dso-button-group > *:active + .dso-input-number:hover,
202
+ .dso-button-group > *.active + .dso-input-number,
203
+ .dso-button-group > *.active + .dso-input-number:hover {
198
204
  background-color: #fff;
199
205
  border-color: #39870c;
200
206
  color: #191919;
201
207
  }
202
- .dso-btn-group > *.disabled + .dso-input-number, .dso-btn-group > *.disabled + .dso-input-number:hover,
203
- .dso-btn-group > *[disabled] + .dso-input-number,
204
- .dso-btn-group > *[disabled] + .dso-input-number:hover {
208
+ .dso-button-group > *.disabled + .dso-input-number, .dso-button-group > *.disabled + .dso-input-number:hover,
209
+ .dso-button-group > *[disabled] + .dso-input-number,
210
+ .dso-button-group > *[disabled] + .dso-input-number:hover {
205
211
  background-color: #fff;
206
212
  border-color: #ccc;
207
213
  color: #666;
208
214
  opacity: 1;
209
215
  }
210
- .dso-btn-group .dso-list-button {
216
+ .dso-button-group .dso-list-button {
211
217
  padding-right: 15px;
212
218
  }
213
219
 
@@ -444,9 +450,9 @@
444
450
  }
445
451
 
446
452
  .dso-list-button + .dso-list-button,
447
- .dso-list-button + .dso-btn-group,
448
- .dso-btn-group + .dso-list-button,
449
- .dso-btn-group + .dso-btn-group {
453
+ .dso-list-button + .dso-button-group,
454
+ .dso-button-group + .dso-list-button,
455
+ .dso-button-group + .dso-button-group {
450
456
  margin-top: 4px;
451
457
  }
452
458
 
@@ -100,7 +100,7 @@ export class ListButton {
100
100
  render() {
101
101
  const showButtonInputs = this.manualCount === undefined;
102
102
  const selected = this.checked || (this.count !== undefined && this.count > 0);
103
- return (h("div", { class: clsx(["dso-btn-group", { "dso-disabled": this.disabled }]) }, h("div", { class: clsx(["dso-list-button", { "dso-selected": selected, "dso-single-count": this.count === 1 }]), onClick: (e) => this.handleSelectClick(e) }, h("div", { class: "dso-selectable" }, h("input", { id: "dso-list-button-checkbox", type: "checkbox", value: "list-button", name: "naam", checked: selected, disabled: this.disabled, "aria-label": this.label }), h("label", { htmlFor: "dso-list-button-checkbox" }, this.label)), this.sublabel && h("span", { class: "dso-sublabel" }, this.sublabel), h("slot", { name: "subcontent" })), this.count !== undefined && this.count > 0 && (h("div", { class: "dso-input-number" }, this.manualCount === undefined && this.count > 1 && (h("button", { type: "button", class: "dso-tertiary", disabled: this.count === Number(this.min) || this.disabled, onClick: (e) => this.stepValue(e, "decrement") }, h("dso-icon", { icon: "minus-circle" }), h("span", { class: "sr-only" }, "Aantal verlagen"))), h("div", { class: "dso-input-wrapper" }, this.manualCount === undefined && this.count > 1 && (h("input", { class: "dso-input-step-counter", type: "number", tabIndex: -1, "aria-label": "Aantal", value: this.count, readOnly: true })), h("form", { onSubmit: (e) => this.setCount(e) }, h("div", { ref: (element) => (this.manualInputWrapperElement = element) }, h("input", { class: clsx("form-control", { hidden: showButtonInputs }), type: "number", "aria-label": "Aantal", value: this.manualCount, min: this.min, max: this.max, onInput: (e) => this.handleOnChange(e) })), this.manual === true && (h("button", { class: clsx("dso-manual-input-button", { "sr-only": !showButtonInputs }), type: !showButtonInputs ? "submit" : "button", disabled: this.disabled, onClick: () => showButtonInputs && this.startManualCountInput() }, showButtonInputs ? (h("span", { class: "sr-only" }, "Handmatig aantal invullen")) : (h("span", { class: "sr-only" }, "Zet waarde")))))), showButtonInputs && (h("button", { type: "button", class: "dso-tertiary", disabled: this.count === Number(this.max) || this.disabled, onClick: (e) => this.stepValue(e, "increment") }, h("dso-icon", { icon: "plus-circle" }), h("span", { class: "sr-only" }, "Aantal verhogen")))))));
103
+ return (h("div", { class: clsx(["dso-button-group", { "dso-disabled": this.disabled }]) }, h("div", { class: clsx(["dso-list-button", { "dso-selected": selected, "dso-single-count": this.count === 1 }]), onClick: (e) => this.handleSelectClick(e) }, h("div", { class: "dso-selectable" }, h("input", { id: "dso-list-button-checkbox", type: "checkbox", value: "list-button", name: "naam", checked: selected, disabled: this.disabled, "aria-label": this.label }), h("label", { htmlFor: "dso-list-button-checkbox" }, this.label)), this.sublabel && h("span", { class: "dso-sublabel" }, this.sublabel), h("slot", { name: "subcontent" })), this.count !== undefined && this.count > 0 && (h("div", { class: "dso-input-number" }, this.manualCount === undefined && this.count > 1 && (h("button", { type: "button", class: "dso-tertiary", disabled: this.count === Number(this.min) || this.disabled, onClick: (e) => this.stepValue(e, "decrement") }, h("dso-icon", { icon: "minus-circle" }), h("span", { class: "sr-only" }, "Aantal verlagen"))), h("div", { class: "dso-input-wrapper" }, this.manualCount === undefined && this.count > 1 && (h("input", { class: "dso-input-step-counter", type: "number", tabIndex: -1, "aria-label": "Aantal", value: this.count, readOnly: true })), h("form", { onSubmit: (e) => this.setCount(e) }, h("div", { ref: (element) => (this.manualInputWrapperElement = element) }, h("input", { class: clsx("form-control", { hidden: showButtonInputs }), type: "number", "aria-label": "Aantal", value: this.manualCount, min: this.min, max: this.max, onInput: (e) => this.handleOnChange(e) })), this.manual === true && (h("button", { class: clsx("dso-manual-input-button", { "sr-only": !showButtonInputs }), type: !showButtonInputs ? "submit" : "button", disabled: this.disabled, onClick: () => showButtonInputs && this.startManualCountInput() }, showButtonInputs ? (h("span", { class: "sr-only" }, "Handmatig aantal invullen")) : (h("span", { class: "sr-only" }, "Zet waarde")))))), showButtonInputs && (h("button", { type: "button", class: "dso-tertiary", disabled: this.count === Number(this.max) || this.disabled, onClick: (e) => this.stepValue(e, "increment") }, h("dso-icon", { icon: "plus-circle" }), h("span", { class: "sr-only" }, "Aantal verhogen")))))));
104
104
  }
105
105
  static get is() { return "dso-list-button"; }
106
106
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- {"version":3,"file":"list-button.js","sourceRoot":"","sources":["../../../src/components/list-button/list-button.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Component, ComponentInterface, h, Prop, Event, EventEmitter, State, Watch } from \"@stencil/core\";\r\nimport { ListButtonChangeEvent, ListButtonSelectedEvent } from \"./list-button.interfaces\";\r\n\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-list-button\",\r\n shadow: true,\r\n styleUrl: \"list-button.scss\",\r\n})\r\nexport class ListButton implements ComponentInterface {\r\n private trap?: FocusTrap;\r\n\r\n @State()\r\n private manualInputWrapperElement?: HTMLDivElement;\r\n\r\n private manualInputButtonElement?: HTMLButtonElement;\r\n\r\n @State()\r\n manualCount?: number;\r\n\r\n /**\r\n * The label of the List Button.\r\n */\r\n @Prop()\r\n label?: string;\r\n\r\n /**\r\n * The sublabel of the List Button.\r\n */\r\n @Prop()\r\n sublabel?: string;\r\n\r\n /**\r\n * When defined the count can show on the List Button.\r\n */\r\n @Prop()\r\n count?: number;\r\n\r\n /**\r\n * The minimum value.\r\n */\r\n @Prop()\r\n min?: string | number;\r\n\r\n /**\r\n * The maximum value.\r\n */\r\n @Prop()\r\n max?: string | number;\r\n\r\n /**\r\n * Whether the List Button is checked.\r\n */\r\n @Prop({ reflect: true })\r\n checked = false;\r\n\r\n /**\r\n * Whether the List Button is disabled.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Allow user to directly input a value.\r\n *\r\n * Set to `false` to force users to use plus/minus buttons.\r\n */\r\n @Prop()\r\n manual = true;\r\n\r\n /**\r\n * Emitted when the user changes the count.\r\n */\r\n @Event()\r\n dsoCountChange!: EventEmitter<ListButtonChangeEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the List Button itself.\r\n *\r\n * Does not fire when the user activates the count controls.\r\n */\r\n @Event()\r\n dsoSelectedChange!: EventEmitter<ListButtonSelectedEvent>;\r\n\r\n @Watch(\"manual\")\r\n watchManualCallback() {\r\n if (!this.manual && this.manualCount) {\r\n this.stopManualCountInput();\r\n }\r\n }\r\n\r\n componentDidRender(): void {\r\n if (this.manualCount !== undefined && this.manualInputWrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.manualInputWrapperElement, {\r\n escapeDeactivates: true,\r\n setReturnFocus: false,\r\n\r\n clickOutsideDeactivates: (e) => {\r\n this.setCount(e);\r\n\r\n return true;\r\n },\r\n onDeactivate: () => this.stopManualCountInput(),\r\n onPostDeactivate: () => this.manualInputButtonElement?.focus(),\r\n }).activate();\r\n } else if (this.manualCount === undefined && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.trap?.deactivate();\r\n }\r\n\r\n private handleOnChange({ target }: Event): void {\r\n if (target instanceof HTMLInputElement) {\r\n this.manualCount = target.valueAsNumber;\r\n }\r\n }\r\n\r\n private stepValue(e: Event, direction: \"increment\" | \"decrement\"): void {\r\n if (typeof this.count === \"number\") {\r\n const newValue = direction === \"increment\" ? this.count + 1 : this.count - 1;\r\n\r\n if (this.isNewCountValid(newValue) === false) {\r\n return;\r\n }\r\n\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: newValue,\r\n });\r\n }\r\n }\r\n\r\n private setCount(e: Event): void {\r\n e.preventDefault();\r\n\r\n if (typeof this.manualCount === \"number\" && this.isNewCountValid(this.manualCount)) {\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: this.manualCount,\r\n });\r\n this.stopManualCountInput();\r\n }\r\n }\r\n\r\n private handleSelectClick(e: Event): void {\r\n e.preventDefault();\r\n\r\n if (this.count !== undefined) {\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: this.count > 0 ? 0 : 1,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.dsoSelectedChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n private startManualCountInput(): void {\r\n this.manualCount = this.count;\r\n }\r\n\r\n private stopManualCountInput(): void {\r\n this.manualCount = undefined;\r\n }\r\n\r\n private isNewCountValid(newValue: number): boolean {\r\n if (\r\n this.min !== undefined &&\r\n this.max !== undefined &&\r\n (newValue < Number(this.min) || newValue > Number(this.max))\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n render() {\r\n const showButtonInputs = this.manualCount === undefined;\r\n\r\n const selected = this.checked || (this.count !== undefined && this.count > 0);\r\n\r\n return (\r\n <div class={clsx([\"dso-btn-group\", { \"dso-disabled\": this.disabled }])}>\r\n <div\r\n class={clsx([\"dso-list-button\", { \"dso-selected\": selected, \"dso-single-count\": this.count === 1 }])}\r\n onClick={(e) => this.handleSelectClick(e)}\r\n >\r\n <div class=\"dso-selectable\">\r\n <input\r\n id=\"dso-list-button-checkbox\"\r\n type=\"checkbox\"\r\n value=\"list-button\"\r\n name=\"naam\"\r\n checked={selected}\r\n disabled={this.disabled}\r\n aria-label={this.label}\r\n />\r\n <label htmlFor=\"dso-list-button-checkbox\">{this.label}</label>\r\n </div>\r\n {this.sublabel && <span class=\"dso-sublabel\">{this.sublabel}</span>}\r\n <slot name=\"subcontent\" />\r\n </div>\r\n\r\n {this.count !== undefined && this.count > 0 && (\r\n <div class=\"dso-input-number\">\r\n {this.manualCount === undefined && this.count > 1 && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n disabled={this.count === Number(this.min) || this.disabled}\r\n onClick={(e) => this.stepValue(e, \"decrement\")}\r\n >\r\n <dso-icon icon=\"minus-circle\"></dso-icon>\r\n <span class=\"sr-only\">Aantal verlagen</span>\r\n </button>\r\n )}\r\n\r\n <div class=\"dso-input-wrapper\">\r\n {this.manualCount === undefined && this.count > 1 && (\r\n <input\r\n class=\"dso-input-step-counter\"\r\n type=\"number\"\r\n tabIndex={-1}\r\n aria-label=\"Aantal\"\r\n value={this.count}\r\n readOnly\r\n />\r\n )}\r\n\r\n <form onSubmit={(e) => this.setCount(e)}>\r\n <div ref={(element) => (this.manualInputWrapperElement = element)}>\r\n <input\r\n class={clsx(\"form-control\", { hidden: showButtonInputs })}\r\n type=\"number\"\r\n aria-label=\"Aantal\"\r\n value={this.manualCount}\r\n min={this.min}\r\n max={this.max}\r\n onInput={(e) => this.handleOnChange(e)}\r\n />\r\n </div>\r\n\r\n {this.manual === true && (\r\n <button\r\n class={clsx(\"dso-manual-input-button\", { \"sr-only\": !showButtonInputs })}\r\n type={!showButtonInputs ? \"submit\" : \"button\"}\r\n disabled={this.disabled}\r\n onClick={() => showButtonInputs && this.startManualCountInput()}\r\n >\r\n {showButtonInputs ? (\r\n <span class=\"sr-only\">Handmatig aantal invullen</span>\r\n ) : (\r\n <span class=\"sr-only\">Zet waarde</span>\r\n )}\r\n </button>\r\n )}\r\n </form>\r\n </div>\r\n\r\n {showButtonInputs && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n disabled={this.count === Number(this.max) || this.disabled}\r\n onClick={(e) => this.stepValue(e, \"increment\")}\r\n >\r\n <dso-icon icon=\"plus-circle\"></dso-icon>\r\n <span class=\"sr-only\">Aantal verhogen</span>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"list-button.js","sourceRoot":"","sources":["../../../src/components/list-button/list-button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAgB,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAG1G,OAAO,EAAE,eAAe,EAAa,MAAM,YAAY,CAAC;AACxD,OAAO,IAAI,MAAM,MAAM,CAAC;AAOxB,MAAM,OAAO,UAAU;;;;;;;;;mBA6CX,KAAK;oBAMJ,KAAK;kBAQP,IAAI;;EAiBb,mBAAmB;IACjB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;MACpC,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;EACH,CAAC;EAED,kBAAkB;;IAChB,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,yBAAyB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;MAClF,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAC,yBAAyB,EAAE;QAC1D,iBAAiB,EAAE,IAAI;QACvB,cAAc,EAAE,KAAK;QAErB,uBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE;UAC7B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;UAEjB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAC/C,gBAAgB,EAAE,GAAG,EAAE,WAAC,OAAA,MAAA,IAAI,CAAC,wBAAwB,0CAAE,KAAK,EAAE,CAAA,EAAA;OAC/D,CAAC,CAAC,QAAQ,EAAE,CAAC;KACf;SAAM,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE;MACtD,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAC;MAExB,OAAO,IAAI,CAAC,IAAI,CAAC;KAClB;EACH,CAAC;EAED,oBAAoB;;IAClB,MAAA,IAAI,CAAC,IAAI,0CAAE,UAAU,EAAE,CAAC;EAC1B,CAAC;EAEO,cAAc,CAAC,EAAE,MAAM,EAAS;IACtC,IAAI,MAAM,YAAY,gBAAgB,EAAE;MACtC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;KACzC;EACH,CAAC;EAEO,SAAS,CAAC,CAAQ,EAAE,SAAoC;IAC9D,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;MAClC,MAAM,QAAQ,GAAG,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;MAE7E,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE;QAC5C,OAAO;OACR;MAED,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,QAAQ;OAChB,CAAC,CAAC;KACJ;EACH,CAAC;EAEO,QAAQ,CAAC,CAAQ;IACvB,CAAC,CAAC,cAAc,EAAE,CAAC;IAEnB,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE;MAClF,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,IAAI,CAAC,WAAW;OACxB,CAAC,CAAC;MACH,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;EACH,CAAC;EAEO,iBAAiB,CAAC,CAAQ;IAChC,CAAC,CAAC,cAAc,EAAE,CAAC;IAEnB,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;MAC5B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;QACvB,aAAa,EAAE,CAAC;QAChB,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;OAC9B,CAAC,CAAC;MAEH,OAAO;KACR;IAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;MAC1B,aAAa,EAAE,CAAC;MAChB,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO;KACvB,CAAC,CAAC;EACL,CAAC;EAEO,qBAAqB;IAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;EAChC,CAAC;EAEO,oBAAoB;IAC1B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;EAC/B,CAAC;EAEO,eAAe,CAAC,QAAgB;IACtC,IACE,IAAI,CAAC,GAAG,KAAK,SAAS;MACtB,IAAI,CAAC,GAAG,KAAK,SAAS;MACtB,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAC5D;MACA,OAAO,KAAK,CAAC;KACd;IAED,OAAO,IAAI,CAAC;EACd,CAAC;EAED,MAAM;IACJ,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC;IAExD,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAE9E,OAAO,CACL,WAAK,KAAK,EAAE,IAAI,CAAC,CAAC,kBAAkB,EAAE,EAAE,cAAc,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;MACvE,WACE,KAAK,EAAE,IAAI,CAAC,CAAC,iBAAiB,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,EACpG,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC;QAEzC,WAAK,KAAK,EAAC,gBAAgB;UACzB,aACE,EAAE,EAAC,0BAA0B,EAC7B,IAAI,EAAC,UAAU,EACf,KAAK,EAAC,aAAa,EACnB,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,gBACX,IAAI,CAAC,KAAK,GACtB;UACF,aAAO,OAAO,EAAC,0BAA0B,IAAE,IAAI,CAAC,KAAK,CAAS,CAC1D;QACL,IAAI,CAAC,QAAQ,IAAI,YAAM,KAAK,EAAC,cAAc,IAAE,IAAI,CAAC,QAAQ,CAAQ;QACnE,YAAM,IAAI,EAAC,YAAY,GAAG,CACtB;MAEL,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAC7C,WAAK,KAAK,EAAC,kBAAkB;QAC1B,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CACnD,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,cAAc,EACpB,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAC1D,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC;UAE9C,gBAAU,IAAI,EAAC,cAAc,GAAY;UACzC,YAAM,KAAK,EAAC,SAAS,sBAAuB,CACrC,CACV;QAED,WAAK,KAAK,EAAC,mBAAmB;UAC3B,IAAI,CAAC,WAAW,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CACnD,aACE,KAAK,EAAC,wBAAwB,EAC9B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,CAAC,CAAC,gBACD,QAAQ,EACnB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,QAAQ,SACR,CACH;UAED,YAAM,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrC,WAAK,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,yBAAyB,GAAG,OAAO,CAAC;cAC/D,aACE,KAAK,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,EACzD,IAAI,EAAC,QAAQ,gBACF,QAAQ,EACnB,KAAK,EAAE,IAAI,CAAC,WAAW,EACvB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GACtC,CACE;YAEL,IAAI,CAAC,MAAM,KAAK,IAAI,IAAI,CACvB,cACE,KAAK,EAAE,IAAI,CAAC,yBAAyB,EAAE,EAAE,SAAS,EAAE,CAAC,gBAAgB,EAAE,CAAC,EACxE,IAAI,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAC7C,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,GAAG,EAAE,CAAC,gBAAgB,IAAI,IAAI,CAAC,qBAAqB,EAAE,IAE9D,gBAAgB,CAAC,CAAC,CAAC,CAClB,YAAM,KAAK,EAAC,SAAS,gCAAiC,CACvD,CAAC,CAAC,CAAC,CACF,YAAM,KAAK,EAAC,SAAS,iBAAkB,CACxC,CACM,CACV,CACI,CACH;QAEL,gBAAgB,IAAI,CACnB,cACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAC,cAAc,EACpB,QAAQ,EAAE,IAAI,CAAC,KAAK,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,QAAQ,EAC1D,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,CAAC;UAE9C,gBAAU,IAAI,EAAC,aAAa,GAAY;UACxC,YAAM,KAAK,EAAC,SAAS,sBAAuB,CACrC,CACV,CACG,CACP,CACG,CACP,CAAC;EACJ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, ComponentInterface, h, Prop, Event, EventEmitter, State, Watch } from \"@stencil/core\";\r\nimport { ListButtonChangeEvent, ListButtonSelectedEvent } from \"./list-button.interfaces\";\r\n\r\nimport { createFocusTrap, FocusTrap } from \"focus-trap\";\r\nimport clsx from \"clsx\";\r\n\r\n@Component({\r\n tag: \"dso-list-button\",\r\n shadow: true,\r\n styleUrl: \"list-button.scss\",\r\n})\r\nexport class ListButton implements ComponentInterface {\r\n private trap?: FocusTrap;\r\n\r\n @State()\r\n private manualInputWrapperElement?: HTMLDivElement;\r\n\r\n private manualInputButtonElement?: HTMLButtonElement;\r\n\r\n @State()\r\n manualCount?: number;\r\n\r\n /**\r\n * The label of the List Button.\r\n */\r\n @Prop()\r\n label?: string;\r\n\r\n /**\r\n * The sublabel of the List Button.\r\n */\r\n @Prop()\r\n sublabel?: string;\r\n\r\n /**\r\n * When defined the count can show on the List Button.\r\n */\r\n @Prop()\r\n count?: number;\r\n\r\n /**\r\n * The minimum value.\r\n */\r\n @Prop()\r\n min?: string | number;\r\n\r\n /**\r\n * The maximum value.\r\n */\r\n @Prop()\r\n max?: string | number;\r\n\r\n /**\r\n * Whether the List Button is checked.\r\n */\r\n @Prop({ reflect: true })\r\n checked = false;\r\n\r\n /**\r\n * Whether the List Button is disabled.\r\n */\r\n @Prop({ reflect: true })\r\n disabled = false;\r\n\r\n /**\r\n * Allow user to directly input a value.\r\n *\r\n * Set to `false` to force users to use plus/minus buttons.\r\n */\r\n @Prop()\r\n manual = true;\r\n\r\n /**\r\n * Emitted when the user changes the count.\r\n */\r\n @Event()\r\n dsoCountChange!: EventEmitter<ListButtonChangeEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the List Button itself.\r\n *\r\n * Does not fire when the user activates the count controls.\r\n */\r\n @Event()\r\n dsoSelectedChange!: EventEmitter<ListButtonSelectedEvent>;\r\n\r\n @Watch(\"manual\")\r\n watchManualCallback() {\r\n if (!this.manual && this.manualCount) {\r\n this.stopManualCountInput();\r\n }\r\n }\r\n\r\n componentDidRender(): void {\r\n if (this.manualCount !== undefined && this.manualInputWrapperElement && !this.trap) {\r\n this.trap = createFocusTrap(this.manualInputWrapperElement, {\r\n escapeDeactivates: true,\r\n setReturnFocus: false,\r\n\r\n clickOutsideDeactivates: (e) => {\r\n this.setCount(e);\r\n\r\n return true;\r\n },\r\n onDeactivate: () => this.stopManualCountInput(),\r\n onPostDeactivate: () => this.manualInputButtonElement?.focus(),\r\n }).activate();\r\n } else if (this.manualCount === undefined && this.trap) {\r\n this.trap?.deactivate();\r\n\r\n delete this.trap;\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.trap?.deactivate();\r\n }\r\n\r\n private handleOnChange({ target }: Event): void {\r\n if (target instanceof HTMLInputElement) {\r\n this.manualCount = target.valueAsNumber;\r\n }\r\n }\r\n\r\n private stepValue(e: Event, direction: \"increment\" | \"decrement\"): void {\r\n if (typeof this.count === \"number\") {\r\n const newValue = direction === \"increment\" ? this.count + 1 : this.count - 1;\r\n\r\n if (this.isNewCountValid(newValue) === false) {\r\n return;\r\n }\r\n\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: newValue,\r\n });\r\n }\r\n }\r\n\r\n private setCount(e: Event): void {\r\n e.preventDefault();\r\n\r\n if (typeof this.manualCount === \"number\" && this.isNewCountValid(this.manualCount)) {\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: this.manualCount,\r\n });\r\n this.stopManualCountInput();\r\n }\r\n }\r\n\r\n private handleSelectClick(e: Event): void {\r\n e.preventDefault();\r\n\r\n if (this.count !== undefined) {\r\n this.dsoCountChange.emit({\r\n originalEvent: e,\r\n count: this.count > 0 ? 0 : 1,\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.dsoSelectedChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n private startManualCountInput(): void {\r\n this.manualCount = this.count;\r\n }\r\n\r\n private stopManualCountInput(): void {\r\n this.manualCount = undefined;\r\n }\r\n\r\n private isNewCountValid(newValue: number): boolean {\r\n if (\r\n this.min !== undefined &&\r\n this.max !== undefined &&\r\n (newValue < Number(this.min) || newValue > Number(this.max))\r\n ) {\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n render() {\r\n const showButtonInputs = this.manualCount === undefined;\r\n\r\n const selected = this.checked || (this.count !== undefined && this.count > 0);\r\n\r\n return (\r\n <div class={clsx([\"dso-button-group\", { \"dso-disabled\": this.disabled }])}>\r\n <div\r\n class={clsx([\"dso-list-button\", { \"dso-selected\": selected, \"dso-single-count\": this.count === 1 }])}\r\n onClick={(e) => this.handleSelectClick(e)}\r\n >\r\n <div class=\"dso-selectable\">\r\n <input\r\n id=\"dso-list-button-checkbox\"\r\n type=\"checkbox\"\r\n value=\"list-button\"\r\n name=\"naam\"\r\n checked={selected}\r\n disabled={this.disabled}\r\n aria-label={this.label}\r\n />\r\n <label htmlFor=\"dso-list-button-checkbox\">{this.label}</label>\r\n </div>\r\n {this.sublabel && <span class=\"dso-sublabel\">{this.sublabel}</span>}\r\n <slot name=\"subcontent\" />\r\n </div>\r\n\r\n {this.count !== undefined && this.count > 0 && (\r\n <div class=\"dso-input-number\">\r\n {this.manualCount === undefined && this.count > 1 && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n disabled={this.count === Number(this.min) || this.disabled}\r\n onClick={(e) => this.stepValue(e, \"decrement\")}\r\n >\r\n <dso-icon icon=\"minus-circle\"></dso-icon>\r\n <span class=\"sr-only\">Aantal verlagen</span>\r\n </button>\r\n )}\r\n\r\n <div class=\"dso-input-wrapper\">\r\n {this.manualCount === undefined && this.count > 1 && (\r\n <input\r\n class=\"dso-input-step-counter\"\r\n type=\"number\"\r\n tabIndex={-1}\r\n aria-label=\"Aantal\"\r\n value={this.count}\r\n readOnly\r\n />\r\n )}\r\n\r\n <form onSubmit={(e) => this.setCount(e)}>\r\n <div ref={(element) => (this.manualInputWrapperElement = element)}>\r\n <input\r\n class={clsx(\"form-control\", { hidden: showButtonInputs })}\r\n type=\"number\"\r\n aria-label=\"Aantal\"\r\n value={this.manualCount}\r\n min={this.min}\r\n max={this.max}\r\n onInput={(e) => this.handleOnChange(e)}\r\n />\r\n </div>\r\n\r\n {this.manual === true && (\r\n <button\r\n class={clsx(\"dso-manual-input-button\", { \"sr-only\": !showButtonInputs })}\r\n type={!showButtonInputs ? \"submit\" : \"button\"}\r\n disabled={this.disabled}\r\n onClick={() => showButtonInputs && this.startManualCountInput()}\r\n >\r\n {showButtonInputs ? (\r\n <span class=\"sr-only\">Handmatig aantal invullen</span>\r\n ) : (\r\n <span class=\"sr-only\">Zet waarde</span>\r\n )}\r\n </button>\r\n )}\r\n </form>\r\n </div>\r\n\r\n {showButtonInputs && (\r\n <button\r\n type=\"button\"\r\n class=\"dso-tertiary\"\r\n disabled={this.count === Number(this.max) || this.disabled}\r\n onClick={(e) => this.stepValue(e, \"increment\")}\r\n >\r\n <dso-icon icon=\"plus-circle\"></dso-icon>\r\n <span class=\"sr-only\">Aantal verhogen</span>\r\n </button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n}\r\n"]}
@@ -98,19 +98,19 @@ button::-moz-focus-inner {
98
98
  border-color: #afcf9d;
99
99
  color: #afcf9d;
100
100
  }
101
- .toggle-visibility-button.btn-sm {
101
+ .toggle-visibility-button.dso-small {
102
102
  line-height: 1rem;
103
103
  }
104
- .toggle-visibility-button.btn-sm dso-icon,
105
- .toggle-visibility-button.btn-sm svg.di, .toggle-visibility-button.btn-sm.extern::after, .toggle-visibility-button.btn-sm.download::after, .toggle-visibility-button.btn-sm.dso-spinner::before {
104
+ .toggle-visibility-button.dso-small dso-icon,
105
+ .toggle-visibility-button.dso-small svg.di, .toggle-visibility-button.dso-small.extern::after, .toggle-visibility-button.dso-small.download::after, .toggle-visibility-button.dso-small.dso-spinner::before {
106
106
  margin-bottom: -4px;
107
107
  margin-top: -4px;
108
108
  }
109
- .toggle-visibility-button.btn-sm.dso-spinner-left::before {
109
+ .toggle-visibility-button.dso-small.dso-spinner-left::before {
110
110
  height: 16px;
111
111
  width: 16px;
112
112
  }
113
- .toggle-visibility-button.btn-sm.dso-spinner-right::after {
113
+ .toggle-visibility-button.dso-small.dso-spinner-right::after {
114
114
  height: 16px;
115
115
  width: 16px;
116
116
  }
@@ -149,7 +149,7 @@ button::-moz-focus-inner {
149
149
  width: 24px;
150
150
  margin-right: 8px;
151
151
  }
152
- .toggle-visibility-button.dso-spinner-left:not([disabled]).btn-sm:hover::before {
152
+ .toggle-visibility-button.dso-spinner-left:not([disabled]).dso-small:hover::before {
153
153
  height: 16px;
154
154
  width: 16px;
155
155
  }
@@ -173,7 +173,7 @@ button::-moz-focus-inner {
173
173
  width: 24px;
174
174
  margin-left: 8px;
175
175
  }
176
- .toggle-visibility-button.dso-spinner-right:not([disabled]).btn-sm:hover::after {
176
+ .toggle-visibility-button.dso-spinner-right:not([disabled]).dso-small:hover::after {
177
177
  height: 16px;
178
178
  width: 16px;
179
179
  }
@@ -244,19 +244,19 @@ button::-moz-focus-inner {
244
244
  border-color: #afcf9d;
245
245
  color: #afcf9d;
246
246
  }
247
- .zoom-buttons button.btn-sm {
247
+ .zoom-buttons button.dso-small {
248
248
  line-height: 1rem;
249
249
  }
250
- .zoom-buttons button.btn-sm dso-icon,
251
- .zoom-buttons button.btn-sm svg.di, .zoom-buttons button.btn-sm.extern::after, .zoom-buttons button.btn-sm.download::after, .zoom-buttons button.btn-sm.dso-spinner::before {
250
+ .zoom-buttons button.dso-small dso-icon,
251
+ .zoom-buttons button.dso-small svg.di, .zoom-buttons button.dso-small.extern::after, .zoom-buttons button.dso-small.download::after, .zoom-buttons button.dso-small.dso-spinner::before {
252
252
  margin-bottom: -4px;
253
253
  margin-top: -4px;
254
254
  }
255
- .zoom-buttons button.btn-sm.dso-spinner-left::before {
255
+ .zoom-buttons button.dso-small.dso-spinner-left::before {
256
256
  height: 16px;
257
257
  width: 16px;
258
258
  }
259
- .zoom-buttons button.btn-sm.dso-spinner-right::after {
259
+ .zoom-buttons button.dso-small.dso-spinner-right::after {
260
260
  height: 16px;
261
261
  width: 16px;
262
262
  }
@@ -295,7 +295,7 @@ button::-moz-focus-inner {
295
295
  width: 24px;
296
296
  margin-right: 8px;
297
297
  }
298
- .zoom-buttons button.dso-spinner-left:not([disabled]).btn-sm:hover::before {
298
+ .zoom-buttons button.dso-spinner-left:not([disabled]).dso-small:hover::before {
299
299
  height: 16px;
300
300
  width: 16px;
301
301
  }
@@ -319,7 +319,7 @@ button::-moz-focus-inner {
319
319
  width: 24px;
320
320
  margin-left: 8px;
321
321
  }
322
- .zoom-buttons button.dso-spinner-right:not([disabled]).btn-sm:hover::after {
322
+ .zoom-buttons button.dso-spinner-right:not([disabled]).dso-small:hover::after {
323
323
  height: 16px;
324
324
  width: 16px;
325
325
  }
@@ -376,11 +376,17 @@ button::-moz-focus-inner {
376
376
  .close-button:not([disabled]):active {
377
377
  color: #173521;
378
378
  }
379
- .close-button.btn-align {
379
+ .close-button.dso-align {
380
380
  line-height: calc(1.5em - 1px);
381
381
  padding: 11px 0;
382
382
  position: relative;
383
383
  }
384
+ .close-button.dso-truncate {
385
+ max-width: 100%;
386
+ overflow: hidden;
387
+ text-overflow: ellipsis;
388
+ white-space: nowrap;
389
+ }
384
390
  .close-button.dso-spinner-left::before {
385
391
  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");
386
392
  background-repeat: no-repeat;
@@ -154,7 +154,7 @@ button::-moz-focus-inner {
154
154
  text-align: right;
155
155
  }
156
156
  @media screen and (max-width: 767px) {
157
- .dso-modal .dso-footer .btn + .btn, .dso-modal .dso-footer .btn + .dso-primary, .dso-modal .dso-footer .btn + .dso-secondary, .dso-modal .dso-footer .btn + .dso-tertiary, .dso-modal .dso-footer .dso-primary + .btn, .dso-modal .dso-footer .dso-primary + .dso-primary, .dso-modal .dso-footer .dso-primary + .dso-secondary, .dso-modal .dso-footer .dso-primary + .dso-tertiary, .dso-modal .dso-footer .dso-secondary + .btn, .dso-modal .dso-footer .dso-secondary + .dso-primary, .dso-modal .dso-footer .dso-secondary + .dso-secondary, .dso-modal .dso-footer .dso-secondary + .dso-tertiary, .dso-modal .dso-footer .dso-tertiary + .btn, .dso-modal .dso-footer .dso-tertiary + .dso-primary, .dso-modal .dso-footer .dso-tertiary + .dso-secondary, .dso-modal .dso-footer .dso-tertiary + .dso-tertiary {
157
+ .dso-modal .dso-footer .dso-primary + .dso-primary, .dso-modal .dso-footer .dso-primary + .dso-secondary, .dso-modal .dso-footer .dso-primary + .dso-tertiary, .dso-modal .dso-footer .dso-secondary + .dso-primary, .dso-modal .dso-footer .dso-secondary + .dso-secondary, .dso-modal .dso-footer .dso-secondary + .dso-tertiary, .dso-modal .dso-footer .dso-tertiary + .dso-primary, .dso-modal .dso-footer .dso-tertiary + .dso-secondary, .dso-modal .dso-footer .dso-tertiary + .dso-tertiary {
158
158
  margin-left: 0;
159
159
  }
160
160
  .dso-modal .dso-footer button {
@@ -165,16 +165,15 @@ button::-moz-focus-inner {
165
165
  margin-top: 8px;
166
166
  }
167
167
  .dso-modal .dso-footer button.dso-tertiary,
168
- .dso-modal .dso-footer button.dso-tertiary span, .dso-modal .dso-footer button.btn-link,
169
- .dso-modal .dso-footer button.btn-link span {
168
+ .dso-modal .dso-footer button.dso-tertiary span {
170
169
  float: none;
171
170
  }
172
171
  }
173
172
  @media screen and (min-width: 768px) {
174
- .dso-modal .dso-footer .btn + .dso-secondary, .dso-modal .dso-footer .btn + .btn-default, .dso-modal .dso-footer .dso-primary + .dso-secondary, .dso-modal .dso-footer .dso-primary + .btn-default, .dso-modal .dso-footer .dso-secondary + .dso-secondary, .dso-modal .dso-footer .dso-secondary + .btn-default, .dso-modal .dso-footer .dso-tertiary + .dso-secondary, .dso-modal .dso-footer .dso-tertiary + .btn-default {
173
+ .dso-modal .dso-footer .dso-primary + .dso-secondary, .dso-modal .dso-footer .dso-secondary + .dso-secondary, .dso-modal .dso-footer .dso-tertiary + .dso-secondary {
175
174
  margin-left: 16px;
176
175
  }
177
- .dso-modal .dso-footer .btn + .dso-tertiary, .dso-modal .dso-footer .btn + .btn-link, .dso-modal .dso-footer .dso-primary + .dso-tertiary, .dso-modal .dso-footer .dso-primary + .btn-link, .dso-modal .dso-footer .dso-secondary + .dso-tertiary, .dso-modal .dso-footer .dso-secondary + .btn-link, .dso-modal .dso-footer .dso-tertiary + .dso-tertiary, .dso-modal .dso-footer .dso-tertiary + .btn-link {
176
+ .dso-modal .dso-footer .dso-primary + .dso-tertiary, .dso-modal .dso-footer .dso-secondary + .dso-tertiary, .dso-modal .dso-footer .dso-tertiary + .dso-tertiary {
178
177
  margin-left: 0;
179
178
  }
180
179
  }
@@ -183,7 +182,7 @@ button::-moz-focus-inner {
183
182
  max-width: 100%;
184
183
  margin-top: 0;
185
184
  }
186
- .dso-modal .dso-footer .btn + .btn, .dso-modal .dso-footer .btn + .dso-primary, .dso-modal .dso-footer .btn + .dso-secondary, .dso-modal .dso-footer .btn + .dso-tertiary, .dso-modal .dso-footer .dso-primary + .btn, .dso-modal .dso-footer .dso-primary + .dso-primary, .dso-modal .dso-footer .dso-primary + .dso-secondary, .dso-modal .dso-footer .dso-primary + .dso-tertiary, .dso-modal .dso-footer .dso-secondary + .btn, .dso-modal .dso-footer .dso-secondary + .dso-primary, .dso-modal .dso-footer .dso-secondary + .dso-secondary, .dso-modal .dso-footer .dso-secondary + .dso-tertiary, .dso-modal .dso-footer .dso-tertiary + .btn, .dso-modal .dso-footer .dso-tertiary + .dso-primary, .dso-modal .dso-footer .dso-tertiary + .dso-secondary, .dso-modal .dso-footer .dso-tertiary + .dso-tertiary {
185
+ .dso-modal .dso-footer .dso-primary + .dso-primary, .dso-modal .dso-footer .dso-primary + .dso-secondary, .dso-modal .dso-footer .dso-primary + .dso-tertiary, .dso-modal .dso-footer .dso-secondary + .dso-primary, .dso-modal .dso-footer .dso-secondary + .dso-secondary, .dso-modal .dso-footer .dso-secondary + .dso-tertiary, .dso-modal .dso-footer .dso-tertiary + .dso-primary, .dso-modal .dso-footer .dso-tertiary + .dso-secondary, .dso-modal .dso-footer .dso-tertiary + .dso-tertiary {
187
186
  margin-left: 0;
188
187
  }
189
188
  .dso-modal .dso-footer button {
@@ -194,8 +193,7 @@ button::-moz-focus-inner {
194
193
  margin-top: 8px;
195
194
  }
196
195
  .dso-modal .dso-footer button.dso-tertiary,
197
- .dso-modal .dso-footer button.dso-tertiary span, .dso-modal .dso-footer button.btn-link,
198
- .dso-modal .dso-footer button.btn-link span {
196
+ .dso-modal .dso-footer button.dso-tertiary span {
199
197
  float: none;
200
198
  }
201
199
  }
@@ -92,11 +92,17 @@ button.toggle-note:not([disabled]):hover {
92
92
  button.toggle-note:not([disabled]):active {
93
93
  color: #173521;
94
94
  }
95
- button.toggle-note.btn-align {
95
+ button.toggle-note.dso-align {
96
96
  line-height: calc(1.5em - 1px);
97
97
  padding: 11px 0;
98
98
  position: relative;
99
99
  }
100
+ button.toggle-note.dso-truncate {
101
+ max-width: 100%;
102
+ overflow: hidden;
103
+ text-overflow: ellipsis;
104
+ white-space: nowrap;
105
+ }
100
106
  button.toggle-note.dso-spinner-left::before {
101
107
  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");
102
108
  background-repeat: no-repeat;