@madgex/design-system 1.44.3 → 1.46.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 (97) hide show
  1. package/.vscode/launch.json +27 -7
  2. package/__tests__/unit/src/components/multiselect.spec.js +91 -0
  3. package/coverage/cobertura-coverage.xml +245 -136
  4. package/coverage/components/accordion/accordion.js.html +1 -1
  5. package/coverage/components/accordion/index.html +1 -1
  6. package/coverage/components/inputs/combobox/vue-components/Combobox.vue.html +3 -18
  7. package/coverage/components/inputs/combobox/vue-components/index.html +1 -1
  8. package/coverage/components/inputs/multi-select/vue-components/MultiSelect.vue.html +202 -0
  9. package/coverage/components/inputs/multi-select/vue-components/MultiSelectCheckbox.vue.html +286 -0
  10. package/coverage/components/inputs/multi-select/vue-components/MultiSelectCheckboxGroup.vue.html +298 -0
  11. package/coverage/components/inputs/multi-select/vue-components/index.html +140 -0
  12. package/coverage/components/modal/index.html +1 -1
  13. package/coverage/components/modal/modal.js.html +1 -1
  14. package/coverage/components/notification/index.html +1 -1
  15. package/coverage/components/notification/notification.js.html +1 -1
  16. package/coverage/components/popover/index.html +1 -1
  17. package/coverage/components/popover/popover.js.html +1 -1
  18. package/coverage/components/switch-state/index.html +1 -1
  19. package/coverage/components/switch-state/switch-state.js.html +1 -1
  20. package/coverage/components/tabs/index.html +1 -1
  21. package/coverage/components/tabs/tabs.js.html +1 -1
  22. package/coverage/index.html +33 -33
  23. package/coverage/js/common.js.html +1 -1
  24. package/coverage/js/fractal-scripts/combobox.js.html +7 -10
  25. package/coverage/js/fractal-scripts/index.html +22 -7
  26. package/coverage/js/fractal-scripts/multiselect.js.html +190 -0
  27. package/coverage/js/fractal-scripts/notification.js.html +1 -1
  28. package/coverage/js/fractal-scripts/switch-state.js.html +1 -1
  29. package/coverage/js/index-fractal.js.html +10 -4
  30. package/coverage/js/index-polyfills.js.html +1 -1
  31. package/coverage/js/index-vue.js.html +73 -7
  32. package/coverage/js/index.html +18 -18
  33. package/coverage/js/index.js.html +1 -1
  34. package/coverage/js/polyfills/closest.js.html +1 -1
  35. package/coverage/js/polyfills/index.html +1 -1
  36. package/coverage/js/polyfills/remove.js.html +1 -1
  37. package/coverage/tokens/_config.js.html +1 -1
  38. package/coverage/tokens/index.html +1 -1
  39. package/dist/_tokens/css/_tokens.css +1 -1
  40. package/dist/_tokens/js/_tokens-module.js +1 -1
  41. package/dist/_tokens/scss/_tokens.scss +1 -1
  42. package/dist/assets/icons.json +1 -1
  43. package/dist/css/index.css +1 -1
  44. package/dist/js/index.js +6 -6
  45. package/gulpfile.js +1 -1
  46. package/package.json +1 -1
  47. package/src/components/button/button.scss +0 -8
  48. package/src/components/inputs/_form-elements.scss +129 -0
  49. package/src/components/inputs/_label/_macro.njk +3 -0
  50. package/src/components/inputs/_label/_template.njk +37 -0
  51. package/src/components/inputs/_message/_macro.njk +3 -0
  52. package/src/components/inputs/_message/_template.njk +24 -0
  53. package/src/components/inputs/checkbox/README.md +4 -0
  54. package/src/components/inputs/checkbox/_template.njk +37 -19
  55. package/src/components/inputs/checkbox/checkbox.config.js +2 -3
  56. package/src/components/inputs/checkbox/checkbox.njk +10 -8
  57. package/src/components/inputs/combobox/README.md +5 -1
  58. package/src/components/inputs/combobox/_template.njk +37 -18
  59. package/src/components/inputs/combobox/combobox.scss +3 -31
  60. package/src/components/inputs/combobox/vue-components/Combobox.vue +1 -6
  61. package/src/components/inputs/combobox/vue-components/ComboboxInput.vue +2 -2
  62. package/src/components/inputs/input/_template.njk +16 -49
  63. package/src/components/inputs/input/input.njk +18 -16
  64. package/src/components/inputs/multi-select/README.md +4 -0
  65. package/src/components/inputs/multi-select/_template.njk +28 -14
  66. package/src/components/inputs/multi-select/multi-select.config.js +28 -0
  67. package/src/components/inputs/multi-select/multi-select.njk +10 -6
  68. package/src/components/inputs/multi-select/multi-select.scss +16 -26
  69. package/src/components/inputs/multi-select/vue-components/MultiSelect.vue +41 -0
  70. package/src/components/inputs/multi-select/vue-components/MultiSelectCheckbox.vue +69 -0
  71. package/src/components/inputs/multi-select/vue-components/MultiSelectCheckboxGroup.vue +73 -0
  72. package/src/components/inputs/radio/README.md +4 -0
  73. package/src/components/inputs/radio/_template.njk +36 -18
  74. package/src/components/inputs/radio/radio.config.js +7 -28
  75. package/src/components/inputs/radio/radio.njk +10 -8
  76. package/src/helpers/animation/README.md +20 -0
  77. package/src/helpers/animation/animation.njk +8 -0
  78. package/src/js/fractal-scripts/combobox.js +2 -3
  79. package/src/js/fractal-scripts/multiselect.js +37 -0
  80. package/src/js/index-fractal.js +2 -0
  81. package/src/js/index-vue.js +23 -1
  82. package/src/layout/containers/04-highlighted-containers.njk +3 -0
  83. package/src/layout/containers/highlighted-containers.config.json +3 -0
  84. package/src/layout/forms/README.md +1 -0
  85. package/src/layout/forms/forms.config.js +74 -0
  86. package/src/layout/forms/forms.njk +80 -0
  87. package/src/scss/components/__index.scss +2 -4
  88. package/src/scss/core/_containers.scss +5 -0
  89. package/src/scss/helpers/__index.scss +2 -1
  90. package/src/scss/helpers/_animation.scss +15 -0
  91. package/src/scss/import.scss +1 -1
  92. package/coverage/components/inputs/combobox/combobox.js.html +0 -139
  93. package/coverage/components/inputs/combobox/index.html +0 -110
  94. package/src/components/inputs/checkbox/checkbox.scss +0 -69
  95. package/src/components/inputs/combobox/combobox.js +0 -20
  96. package/src/components/inputs/input/input.scss +0 -89
  97. package/src/components/inputs/radio/radio.scss +0 -53
@@ -261,13 +261,7 @@
261
261
  <a name='L203'></a><a href='#L203'>203</a>
262
262
  <a name='L204'></a><a href='#L204'>204</a>
263
263
  <a name='L205'></a><a href='#L205'>205</a>
264
- <a name='L206'></a><a href='#L206'>206</a>
265
- <a name='L207'></a><a href='#L207'>207</a>
266
- <a name='L208'></a><a href='#L208'>208</a>
267
- <a name='L209'></a><a href='#L209'>209</a>
268
- <a name='L210'></a><a href='#L210'>210</a>
269
- <a name='L211'></a><a href='#L211'>211</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
270
- <span class="cline-any cline-neutral">&nbsp;</span>
264
+ <a name='L206'></a><a href='#L206'>206</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
271
265
  <span class="cline-any cline-neutral">&nbsp;</span>
272
266
  <span class="cline-any cline-neutral">&nbsp;</span>
273
267
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -339,10 +333,6 @@
339
333
  <span class="cline-any cline-neutral">&nbsp;</span>
340
334
  <span class="cline-any cline-neutral">&nbsp;</span>
341
335
  <span class="cline-any cline-neutral">&nbsp;</span>
342
- <span class="cline-any cline-neutral">&nbsp;</span>
343
- <span class="cline-any cline-neutral">&nbsp;</span>
344
- <span class="cline-any cline-neutral">&nbsp;</span>
345
- <span class="cline-any cline-neutral">&nbsp;</span>
346
336
  <span class="cline-any cline-no">&nbsp;</span>
347
337
  <span class="cline-any cline-neutral">&nbsp;</span>
348
338
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -478,7 +468,7 @@
478
468
  <span class="cline-any cline-neutral">&nbsp;</span>
479
469
  <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;template&gt;
480
470
  &lt;div
481
- class="mds-combobox js-mds-combobox"
471
+ class="mds-combobox"
482
472
  :class="{ 'mds-combobox--active': !listBoxHidden }"
483
473
  @keydown.down="hiddenGuard(onKeyDown)"
484
474
  @keydown.up="hiddenGuard(onKeyUp)"
@@ -487,7 +477,6 @@
487
477
  @keydown.esc="makeInactive"
488
478
  @keydown.enter="chooseOption"
489
479
  &gt;
490
- &lt;label class="mds-combobox__label" :id="labelId" :for="comboboxid"&gt;{{ labeltext }}&lt;/label&gt;
491
480
  &lt;ComboboxInput
492
481
  @focus="makeActive"
493
482
  @blur="onInputBlur"
@@ -535,10 +524,6 @@ export default {
535
524
  type: String,
536
525
  required: true,
537
526
  },
538
- labeltext: {
539
- type: String,
540
- required: true,
541
- },
542
527
  placeholder: {
543
528
  type: String,
544
529
  default: 'Please combobox',
@@ -693,7 +678,7 @@ export default {
693
678
  <div class='footer quiet pad2 space-top1 center small'>
694
679
  Code coverage generated by
695
680
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
696
- at Thu Apr 16 2020 16:06:34 GMT+0100 (British Summer Time)
681
+ at Tue Apr 21 2020 12:11:23 GMT+0100 (British Summer Time)
697
682
  </div>
698
683
  </div>
699
684
  <script src="../../../../prettify.js"></script>
@@ -94,7 +94,7 @@
94
94
  <div class='footer quiet pad2 space-top1 center small'>
95
95
  Code coverage generated by
96
96
  <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
97
- at Thu Apr 16 2020 16:06:34 GMT+0100 (British Summer Time)
97
+ at Tue Apr 21 2020 12:11:23 GMT+0100 (British Summer Time)
98
98
  </div>
99
99
  </div>
100
100
  <script src="../../../../prettify.js"></script>
@@ -0,0 +1,202 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for components/inputs/multi-select/vue-components/MultiSelect.vue</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <meta name="viewport" content="width=device-width, initial-scale=1">
11
+ <style type='text/css'>
12
+ .coverage-summary .sorter {
13
+ background-image: url(../../../../sort-arrow-sprite.png);
14
+ }
15
+ </style>
16
+ </head>
17
+
18
+ <body>
19
+ <div class='wrapper'>
20
+ <div class='pad1'>
21
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">components/inputs/multi-select/vue-components</a> MultiSelect.vue</h1>
22
+ <div class='clearfix'>
23
+
24
+ <div class='fl pad1y space-right2'>
25
+ <span class="strong">50% </span>
26
+ <span class="quiet">Statements</span>
27
+ <span class='fraction'>2/4</span>
28
+ </div>
29
+
30
+
31
+ <div class='fl pad1y space-right2'>
32
+ <span class="strong">100% </span>
33
+ <span class="quiet">Branches</span>
34
+ <span class='fraction'>0/0</span>
35
+ </div>
36
+
37
+
38
+ <div class='fl pad1y space-right2'>
39
+ <span class="strong">33.33% </span>
40
+ <span class="quiet">Functions</span>
41
+ <span class='fraction'>1/3</span>
42
+ </div>
43
+
44
+
45
+ <div class='fl pad1y space-right2'>
46
+ <span class="strong">50% </span>
47
+ <span class="quiet">Lines</span>
48
+ <span class='fraction'>2/4</span>
49
+ </div>
50
+
51
+
52
+ </div>
53
+ <p class="quiet">
54
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
55
+ </p>
56
+ </div>
57
+ <div class='status-line medium'></div>
58
+ <pre><table class="coverage">
59
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
60
+ <a name='L2'></a><a href='#L2'>2</a>
61
+ <a name='L3'></a><a href='#L3'>3</a>
62
+ <a name='L4'></a><a href='#L4'>4</a>
63
+ <a name='L5'></a><a href='#L5'>5</a>
64
+ <a name='L6'></a><a href='#L6'>6</a>
65
+ <a name='L7'></a><a href='#L7'>7</a>
66
+ <a name='L8'></a><a href='#L8'>8</a>
67
+ <a name='L9'></a><a href='#L9'>9</a>
68
+ <a name='L10'></a><a href='#L10'>10</a>
69
+ <a name='L11'></a><a href='#L11'>11</a>
70
+ <a name='L12'></a><a href='#L12'>12</a>
71
+ <a name='L13'></a><a href='#L13'>13</a>
72
+ <a name='L14'></a><a href='#L14'>14</a>
73
+ <a name='L15'></a><a href='#L15'>15</a>
74
+ <a name='L16'></a><a href='#L16'>16</a>
75
+ <a name='L17'></a><a href='#L17'>17</a>
76
+ <a name='L18'></a><a href='#L18'>18</a>
77
+ <a name='L19'></a><a href='#L19'>19</a>
78
+ <a name='L20'></a><a href='#L20'>20</a>
79
+ <a name='L21'></a><a href='#L21'>21</a>
80
+ <a name='L22'></a><a href='#L22'>22</a>
81
+ <a name='L23'></a><a href='#L23'>23</a>
82
+ <a name='L24'></a><a href='#L24'>24</a>
83
+ <a name='L25'></a><a href='#L25'>25</a>
84
+ <a name='L26'></a><a href='#L26'>26</a>
85
+ <a name='L27'></a><a href='#L27'>27</a>
86
+ <a name='L28'></a><a href='#L28'>28</a>
87
+ <a name='L29'></a><a href='#L29'>29</a>
88
+ <a name='L30'></a><a href='#L30'>30</a>
89
+ <a name='L31'></a><a href='#L31'>31</a>
90
+ <a name='L32'></a><a href='#L32'>32</a>
91
+ <a name='L33'></a><a href='#L33'>33</a>
92
+ <a name='L34'></a><a href='#L34'>34</a>
93
+ <a name='L35'></a><a href='#L35'>35</a>
94
+ <a name='L36'></a><a href='#L36'>36</a>
95
+ <a name='L37'></a><a href='#L37'>37</a>
96
+ <a name='L38'></a><a href='#L38'>38</a>
97
+ <a name='L39'></a><a href='#L39'>39</a>
98
+ <a name='L40'></a><a href='#L40'>40</a>
99
+ <a name='L41'></a><a href='#L41'>41</a>
100
+ <a name='L42'></a><a href='#L42'>42</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
101
+ <span class="cline-any cline-neutral">&nbsp;</span>
102
+ <span class="cline-any cline-neutral">&nbsp;</span>
103
+ <span class="cline-any cline-neutral">&nbsp;</span>
104
+ <span class="cline-any cline-neutral">&nbsp;</span>
105
+ <span class="cline-any cline-neutral">&nbsp;</span>
106
+ <span class="cline-any cline-neutral">&nbsp;</span>
107
+ <span class="cline-any cline-yes">1x</span>
108
+ <span class="cline-any cline-neutral">&nbsp;</span>
109
+ <span class="cline-any cline-neutral">&nbsp;</span>
110
+ <span class="cline-any cline-neutral">&nbsp;</span>
111
+ <span class="cline-any cline-neutral">&nbsp;</span>
112
+ <span class="cline-any cline-neutral">&nbsp;</span>
113
+ <span class="cline-any cline-neutral">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span>
115
+ <span class="cline-any cline-neutral">&nbsp;</span>
116
+ <span class="cline-any cline-neutral">&nbsp;</span>
117
+ <span class="cline-any cline-neutral">&nbsp;</span>
118
+ <span class="cline-any cline-neutral">&nbsp;</span>
119
+ <span class="cline-any cline-neutral">&nbsp;</span>
120
+ <span class="cline-any cline-neutral">&nbsp;</span>
121
+ <span class="cline-any cline-neutral">&nbsp;</span>
122
+ <span class="cline-any cline-neutral">&nbsp;</span>
123
+ <span class="cline-any cline-neutral">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span>
125
+ <span class="cline-any cline-no">&nbsp;</span>
126
+ <span class="cline-any cline-neutral">&nbsp;</span>
127
+ <span class="cline-any cline-neutral">&nbsp;</span>
128
+ <span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-yes">4x</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-no">&nbsp;</span>
137
+ <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;template&gt;
142
+ &lt;div class="mds-multiselect" :data-multiselect-id="name"&gt;
143
+ &lt;MultiSelectCheckboxGroup :name="name" :options="availableOptions" :testId="`${name}-group`" /&gt;
144
+ &lt;/div&gt;
145
+ &lt;/template&gt;
146
+ &nbsp;
147
+ &lt;script&gt;
148
+ import MultiSelectCheckboxGroup from './MultiSelectCheckboxGroup.vue';
149
+ &nbsp;
150
+ export default {
151
+ name: 'MultiSelect',
152
+ components: {
153
+ MultiSelectCheckboxGroup,
154
+ },
155
+ props: {
156
+ name: {
157
+ type: [String, Boolean],
158
+ default: false,
159
+ },
160
+ optional: {
161
+ type: Boolean,
162
+ default: false,
163
+ },
164
+ options: {
165
+ type: Array,
166
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" > default: () =&gt; [],</span></span>
167
+ },
168
+ },
169
+ data() {
170
+ return {
171
+ selected: null,
172
+ availableOptions: this.options,
173
+ };
174
+ },
175
+ watch: {
176
+ <span class="fstat-no" title="function not covered" > options(newOptions) {</span>
177
+ <span class="cstat-no" title="statement not covered" > this.availableOptions = newOptions;</span>
178
+ },
179
+ },
180
+ };
181
+ &lt;/script&gt;
182
+ &nbsp;</pre></td></tr></table></pre>
183
+
184
+ <div class='push'></div><!-- for sticky footer -->
185
+ </div><!-- /wrapper -->
186
+ <div class='footer quiet pad2 space-top1 center small'>
187
+ Code coverage generated by
188
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
189
+ at Tue Apr 21 2020 12:11:23 GMT+0100 (British Summer Time)
190
+ </div>
191
+ </div>
192
+ <script src="../../../../prettify.js"></script>
193
+ <script>
194
+ window.onload = function () {
195
+ prettyPrint();
196
+ };
197
+ </script>
198
+ <script src="../../../../sorter.js"></script>
199
+ <script src="../../../../block-navigation.js"></script>
200
+ </body>
201
+ </html>
202
+
@@ -0,0 +1,286 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for components/inputs/multi-select/vue-components/MultiSelectCheckbox.vue</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../../../../prettify.css" />
9
+ <link rel="stylesheet" href="../../../../base.css" />
10
+ <meta name="viewport" content="width=device-width, initial-scale=1">
11
+ <style type='text/css'>
12
+ .coverage-summary .sorter {
13
+ background-image: url(../../../../sort-arrow-sprite.png);
14
+ }
15
+ </style>
16
+ </head>
17
+
18
+ <body>
19
+ <div class='wrapper'>
20
+ <div class='pad1'>
21
+ <h1><a href="../../../../index.html">All files</a> / <a href="index.html">components/inputs/multi-select/vue-components</a> MultiSelectCheckbox.vue</h1>
22
+ <div class='clearfix'>
23
+
24
+ <div class='fl pad1y space-right2'>
25
+ <span class="strong">100% </span>
26
+ <span class="quiet">Statements</span>
27
+ <span class='fraction'>3/3</span>
28
+ </div>
29
+
30
+
31
+ <div class='fl pad1y space-right2'>
32
+ <span class="strong">100% </span>
33
+ <span class="quiet">Branches</span>
34
+ <span class='fraction'>0/0</span>
35
+ </div>
36
+
37
+
38
+ <div class='fl pad1y space-right2'>
39
+ <span class="strong">100% </span>
40
+ <span class="quiet">Functions</span>
41
+ <span class='fraction'>2/2</span>
42
+ </div>
43
+
44
+
45
+ <div class='fl pad1y space-right2'>
46
+ <span class="strong">100% </span>
47
+ <span class="quiet">Lines</span>
48
+ <span class='fraction'>3/3</span>
49
+ </div>
50
+
51
+
52
+ </div>
53
+ <p class="quiet">
54
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
55
+ </p>
56
+ </div>
57
+ <div class='status-line high'></div>
58
+ <pre><table class="coverage">
59
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
60
+ <a name='L2'></a><a href='#L2'>2</a>
61
+ <a name='L3'></a><a href='#L3'>3</a>
62
+ <a name='L4'></a><a href='#L4'>4</a>
63
+ <a name='L5'></a><a href='#L5'>5</a>
64
+ <a name='L6'></a><a href='#L6'>6</a>
65
+ <a name='L7'></a><a href='#L7'>7</a>
66
+ <a name='L8'></a><a href='#L8'>8</a>
67
+ <a name='L9'></a><a href='#L9'>9</a>
68
+ <a name='L10'></a><a href='#L10'>10</a>
69
+ <a name='L11'></a><a href='#L11'>11</a>
70
+ <a name='L12'></a><a href='#L12'>12</a>
71
+ <a name='L13'></a><a href='#L13'>13</a>
72
+ <a name='L14'></a><a href='#L14'>14</a>
73
+ <a name='L15'></a><a href='#L15'>15</a>
74
+ <a name='L16'></a><a href='#L16'>16</a>
75
+ <a name='L17'></a><a href='#L17'>17</a>
76
+ <a name='L18'></a><a href='#L18'>18</a>
77
+ <a name='L19'></a><a href='#L19'>19</a>
78
+ <a name='L20'></a><a href='#L20'>20</a>
79
+ <a name='L21'></a><a href='#L21'>21</a>
80
+ <a name='L22'></a><a href='#L22'>22</a>
81
+ <a name='L23'></a><a href='#L23'>23</a>
82
+ <a name='L24'></a><a href='#L24'>24</a>
83
+ <a name='L25'></a><a href='#L25'>25</a>
84
+ <a name='L26'></a><a href='#L26'>26</a>
85
+ <a name='L27'></a><a href='#L27'>27</a>
86
+ <a name='L28'></a><a href='#L28'>28</a>
87
+ <a name='L29'></a><a href='#L29'>29</a>
88
+ <a name='L30'></a><a href='#L30'>30</a>
89
+ <a name='L31'></a><a href='#L31'>31</a>
90
+ <a name='L32'></a><a href='#L32'>32</a>
91
+ <a name='L33'></a><a href='#L33'>33</a>
92
+ <a name='L34'></a><a href='#L34'>34</a>
93
+ <a name='L35'></a><a href='#L35'>35</a>
94
+ <a name='L36'></a><a href='#L36'>36</a>
95
+ <a name='L37'></a><a href='#L37'>37</a>
96
+ <a name='L38'></a><a href='#L38'>38</a>
97
+ <a name='L39'></a><a href='#L39'>39</a>
98
+ <a name='L40'></a><a href='#L40'>40</a>
99
+ <a name='L41'></a><a href='#L41'>41</a>
100
+ <a name='L42'></a><a href='#L42'>42</a>
101
+ <a name='L43'></a><a href='#L43'>43</a>
102
+ <a name='L44'></a><a href='#L44'>44</a>
103
+ <a name='L45'></a><a href='#L45'>45</a>
104
+ <a name='L46'></a><a href='#L46'>46</a>
105
+ <a name='L47'></a><a href='#L47'>47</a>
106
+ <a name='L48'></a><a href='#L48'>48</a>
107
+ <a name='L49'></a><a href='#L49'>49</a>
108
+ <a name='L50'></a><a href='#L50'>50</a>
109
+ <a name='L51'></a><a href='#L51'>51</a>
110
+ <a name='L52'></a><a href='#L52'>52</a>
111
+ <a name='L53'></a><a href='#L53'>53</a>
112
+ <a name='L54'></a><a href='#L54'>54</a>
113
+ <a name='L55'></a><a href='#L55'>55</a>
114
+ <a name='L56'></a><a href='#L56'>56</a>
115
+ <a name='L57'></a><a href='#L57'>57</a>
116
+ <a name='L58'></a><a href='#L58'>58</a>
117
+ <a name='L59'></a><a href='#L59'>59</a>
118
+ <a name='L60'></a><a href='#L60'>60</a>
119
+ <a name='L61'></a><a href='#L61'>61</a>
120
+ <a name='L62'></a><a href='#L62'>62</a>
121
+ <a name='L63'></a><a href='#L63'>63</a>
122
+ <a name='L64'></a><a href='#L64'>64</a>
123
+ <a name='L65'></a><a href='#L65'>65</a>
124
+ <a name='L66'></a><a href='#L66'>66</a>
125
+ <a name='L67'></a><a href='#L67'>67</a>
126
+ <a name='L68'></a><a href='#L68'>68</a>
127
+ <a name='L69'></a><a href='#L69'>69</a>
128
+ <a name='L70'></a><a href='#L70'>70</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
129
+ <span class="cline-any cline-neutral">&nbsp;</span>
130
+ <span class="cline-any cline-neutral">&nbsp;</span>
131
+ <span class="cline-any cline-neutral">&nbsp;</span>
132
+ <span class="cline-any cline-neutral">&nbsp;</span>
133
+ <span class="cline-any cline-neutral">&nbsp;</span>
134
+ <span class="cline-any cline-neutral">&nbsp;</span>
135
+ <span class="cline-any cline-neutral">&nbsp;</span>
136
+ <span class="cline-any cline-neutral">&nbsp;</span>
137
+ <span class="cline-any cline-neutral">&nbsp;</span>
138
+ <span class="cline-any cline-neutral">&nbsp;</span>
139
+ <span class="cline-any cline-neutral">&nbsp;</span>
140
+ <span class="cline-any cline-neutral">&nbsp;</span>
141
+ <span class="cline-any cline-neutral">&nbsp;</span>
142
+ <span class="cline-any cline-neutral">&nbsp;</span>
143
+ <span class="cline-any cline-neutral">&nbsp;</span>
144
+ <span class="cline-any cline-neutral">&nbsp;</span>
145
+ <span class="cline-any cline-neutral">&nbsp;</span>
146
+ <span class="cline-any cline-neutral">&nbsp;</span>
147
+ <span class="cline-any cline-neutral">&nbsp;</span>
148
+ <span class="cline-any cline-neutral">&nbsp;</span>
149
+ <span class="cline-any cline-neutral">&nbsp;</span>
150
+ <span class="cline-any cline-neutral">&nbsp;</span>
151
+ <span class="cline-any cline-neutral">&nbsp;</span>
152
+ <span class="cline-any cline-neutral">&nbsp;</span>
153
+ <span class="cline-any cline-neutral">&nbsp;</span>
154
+ <span class="cline-any cline-neutral">&nbsp;</span>
155
+ <span class="cline-any cline-neutral">&nbsp;</span>
156
+ <span class="cline-any cline-neutral">&nbsp;</span>
157
+ <span class="cline-any cline-neutral">&nbsp;</span>
158
+ <span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-neutral">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-yes">20x</span>
186
+ <span class="cline-any cline-neutral">&nbsp;</span>
187
+ <span class="cline-any cline-neutral">&nbsp;</span>
188
+ <span class="cline-any cline-neutral">&nbsp;</span>
189
+ <span class="cline-any cline-neutral">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-yes">1x</span>
192
+ <span class="cline-any cline-yes">1x</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-neutral">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">&lt;!-- Vue doesn't seem to be stripping whitespace from these nodes so it's messing everything up
198
+ Hence these comments. Please feel free to give me pointers --&gt;
199
+ &nbsp;
200
+ &lt;template&gt;
201
+ &lt;div class="mds-multiselect__checkbox" :data-multiselect-id="`${name}-checkbox`"&gt;
202
+ &lt;input type="checkbox" :name="name" :id="id" :value="value" :checked="checked ? true : false" /&gt;&lt;!--
203
+ --&gt;&lt;label :for="id" @click="checked = !checked"&gt;{{ label }}&lt;/label&gt;&lt;!--
204
+ --&gt;&lt;button
205
+ v-if="this.$slots.default"
206
+ class="mds-button mds-button--plain mds-padding-b0"
207
+ @click="toggleExpansion()"
208
+ @keydown.right="toggleExpansion()"
209
+ @keydown.left="toggleExpansion()"
210
+ :aria-expanded="isShowing ? 'true' : 'false'"
211
+ :ref="`${id}-trigger`"
212
+ &gt;
213
+ &lt;!-- Ideally we would pass this in as a slot in the custom element with MdsIcon, but something is borked
214
+ with passing slots in Chrome https://github.com/karol-f/vue-custom-element/issues/162 --&gt;
215
+ &lt;svg
216
+ aria-hidden="true"
217
+ focusable="true"
218
+ class="mds-icon mds-icon--chevron-right mds-icon--after mds-icon--sm mds-animate-transform-fast"
219
+ :class="isShowing ? ' mds-rotate-cw-90' : ''"
220
+ &gt;
221
+ &lt;use href="/assets/icons.svg#chevron-right" /&gt;
222
+ &lt;/svg&gt;
223
+ &lt;/button&gt;
224
+ &lt;slot /&gt;
225
+ &lt;/div&gt;
226
+ &lt;/template&gt;
227
+ &nbsp;
228
+ &lt;script&gt;
229
+ export default {
230
+ name: 'MultiSelectCheckbox',
231
+ props: {
232
+ id: {
233
+ type: String,
234
+ required: true,
235
+ },
236
+ name: {
237
+ type: String,
238
+ required: true,
239
+ },
240
+ checked: {
241
+ type: Boolean,
242
+ default: false,
243
+ },
244
+ label: {
245
+ type: String,
246
+ required: true,
247
+ },
248
+ value: {
249
+ type: [String, Number],
250
+ required: true,
251
+ },
252
+ },
253
+ data() {
254
+ return {
255
+ isShowing: false,
256
+ };
257
+ },
258
+ methods: {
259
+ toggleExpansion() {
260
+ this.isShowing = !this.isShowing;
261
+ this.$emit('expandChild', { state: this.isShowing, id: this.$props.id });
262
+ },
263
+ },
264
+ };
265
+ &lt;/script&gt;
266
+ &nbsp;</pre></td></tr></table></pre>
267
+
268
+ <div class='push'></div><!-- for sticky footer -->
269
+ </div><!-- /wrapper -->
270
+ <div class='footer quiet pad2 space-top1 center small'>
271
+ Code coverage generated by
272
+ <a href="https://istanbul.js.org/" target="_blank">istanbul</a>
273
+ at Tue Apr 21 2020 12:11:23 GMT+0100 (British Summer Time)
274
+ </div>
275
+ </div>
276
+ <script src="../../../../prettify.js"></script>
277
+ <script>
278
+ window.onload = function () {
279
+ prettyPrint();
280
+ };
281
+ </script>
282
+ <script src="../../../../sorter.js"></script>
283
+ <script src="../../../../block-navigation.js"></script>
284
+ </body>
285
+ </html>
286
+