@madgex/design-system 1.34.0 → 1.35.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 (70) hide show
  1. package/.eslintignore +0 -1
  2. package/.eslintrc.js +1 -1
  3. package/.prettierrc +4 -1
  4. package/README.md +2 -2
  5. package/__tests__/.eslintrc.js +8 -0
  6. package/__tests__/unit/src/components/combobox.spec.js +107 -0
  7. package/coverage/cobertura-coverage.xml +326 -3
  8. package/coverage/components/accordion/accordion.js.html +61 -51
  9. package/coverage/components/accordion/index.html +62 -49
  10. package/coverage/components/combobox/combobox.js.html +139 -0
  11. package/coverage/components/combobox/index.html +110 -0
  12. package/coverage/components/combobox/vue-components/Combobox.vue.html +709 -0
  13. package/coverage/components/combobox/vue-components/index.html +110 -0
  14. package/coverage/components/notification/index.html +62 -49
  15. package/coverage/components/notification/notification.js.html +61 -51
  16. package/coverage/components/popover/index.html +62 -49
  17. package/coverage/components/popover/popover.js.html +61 -51
  18. package/coverage/components/switch-state/index.html +62 -49
  19. package/coverage/components/switch-state/switch-state.js.html +61 -51
  20. package/coverage/components/tabs/index.html +62 -49
  21. package/coverage/components/tabs/tabs.js.html +61 -51
  22. package/coverage/index.html +126 -67
  23. package/coverage/js/common.js.html +61 -51
  24. package/coverage/js/fractal-scripts/combobox.js.html +229 -0
  25. package/coverage/js/fractal-scripts/index.html +80 -50
  26. package/coverage/js/fractal-scripts/notification.js.html +61 -51
  27. package/coverage/js/fractal-scripts/switch-state.js.html +61 -51
  28. package/coverage/js/index-fractal.js.html +68 -52
  29. package/coverage/js/index-polyfills.js.html +65 -52
  30. package/coverage/js/index.html +73 -54
  31. package/coverage/js/index.js.html +62 -52
  32. package/coverage/js/polyfills/closest.js.html +61 -51
  33. package/coverage/js/polyfills/index.html +77 -49
  34. package/coverage/js/polyfills/remove.js.html +100 -0
  35. package/coverage/tokens/_config.js.html +63 -53
  36. package/coverage/tokens/index.html +62 -49
  37. package/cypress/integration/components/combobox.spec.js +87 -0
  38. package/cypress/integration/components/switch-state.spec.js +2 -8
  39. package/cypress/support/index.js +1 -0
  40. package/dist/_tokens/css/_tokens.css +169 -168
  41. package/dist/_tokens/js/_tokens-module.js +22 -1
  42. package/dist/_tokens/scss/_tokens.scss +5 -1
  43. package/dist/assets/icons.json +1 -1
  44. package/dist/css/index.css +1 -1
  45. package/dist/js/index.js +18 -4
  46. package/gulpfile.js +1 -1
  47. package/jest.config.js +5 -1
  48. package/package.json +25 -4
  49. package/src/components/button/button.scss +1 -0
  50. package/src/components/combobox/README.md +27 -0
  51. package/src/components/combobox/_macro.njk +3 -0
  52. package/src/components/combobox/_template.njk +45 -0
  53. package/src/components/combobox/combobox.config.js +30 -0
  54. package/src/components/combobox/combobox.js +20 -0
  55. package/src/components/combobox/combobox.njk +14 -0
  56. package/src/components/combobox/combobox.scss +52 -0
  57. package/src/components/combobox/vue-components/Combobox.vue +210 -0
  58. package/src/components/combobox/vue-components/ComboboxInput.vue +39 -0
  59. package/src/components/combobox/vue-components/ListBox.vue +17 -0
  60. package/src/components/combobox/vue-components/ListBoxOption.vue +27 -0
  61. package/src/js/fractal-scripts/combobox.js +50 -0
  62. package/src/js/index-fractal.js +2 -0
  63. package/src/js/index-polyfills.js +1 -0
  64. package/src/js/index.js +1 -1
  65. package/src/js/polyfills/remove.js +7 -0
  66. package/src/scss/components/__index.scss +1 -0
  67. package/src/tokens/_config.js +2 -2
  68. package/src/tokens/font.json +5 -0
  69. package/tasks/js-bundle.js +6 -0
  70. package/tasks/registerTransforms.js +3 -3
package/.eslintignore CHANGED
@@ -1,2 +1 @@
1
1
  public/themes
2
- __tests__/**/*
package/.eslintrc.js CHANGED
@@ -1,5 +1,5 @@
1
1
  module.exports = {
2
- extends: ['@madgex/eslint-config-madgex'],
2
+ extends: ['@madgex/eslint-config-madgex', 'plugin:vue/essential', '@vue/prettier'],
3
3
  rules: {
4
4
  'import/no-extraneous-dependencies': ['error', { devDependencies: ['*.js', 'tasks/*.js'] }]
5
5
  },
package/.prettierrc CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "useTabs": false,
3
- "printWidth": 120,
4
3
  "tabWidth": 2,
4
+ "printWidth": 120,
5
5
  "singleQuote": true,
6
+ "trailingComma": "es5",
7
+ "bracketSpacing": true,
8
+ "arrowParens": "always",
6
9
  "endOfLine": "auto"
7
10
  }
package/README.md CHANGED
@@ -31,7 +31,7 @@ $mds-size-font-md: 20px; // my base font-size is 20px
31
31
 
32
32
  If you're wanting to use the Madgex DS components from a hapi.js+vision+Nunjucks setup you'll need to include the Madgex DS in the Nunjucks pathing:
33
33
 
34
- ```(js)
34
+ ```js
35
35
  engines: {
36
36
  njk: {
37
37
  compile: (src, options) => {
@@ -58,7 +58,7 @@ If you're wanting to use the Madgex DS components from a hapi.js+vision+Nunjucks
58
58
 
59
59
  Then you should be able to use components as such:
60
60
 
61
- ```(nunjucks)
61
+ ```nunjucks
62
62
  {% extends "template.njk" %} {# a base template is available in the DS #}
63
63
 
64
64
  {% from "button/_macro.njk" import Button %} {# load the DS button component #}
@@ -0,0 +1,8 @@
1
+ module.exports = {
2
+ rules: {
3
+ 'import/no-extraneous-dependencies': ['error', { devDependencies: true }]
4
+ },
5
+ env: {
6
+ jest: true
7
+ }
8
+ };
@@ -0,0 +1,107 @@
1
+ import Vue from 'vue';
2
+ import { mount } from '@vue/test-utils';
3
+ import Combobox from '../../../../src/components/combobox/vue-components/Combobox.vue';
4
+
5
+ describe('Combobox', () => {
6
+ let wrapper;
7
+ let searchBox;
8
+ let listBox;
9
+
10
+ beforeEach(() => {
11
+ wrapper = mount(Combobox, {
12
+ propsData: {
13
+ comboboxid: 'test',
14
+ labeltext: 'Test Select',
15
+ options: [
16
+ {
17
+ value: 'dog',
18
+ label: 'Dog',
19
+ },
20
+ {
21
+ value: 'cat',
22
+ label: 'Cat',
23
+ },
24
+ ],
25
+ },
26
+ });
27
+ searchBox = wrapper.find('input');
28
+ listBox = wrapper.find('ul');
29
+ });
30
+
31
+ describe('Search box', () => {
32
+ it('has the correct role', () => {
33
+ expect(searchBox.attributes('role')).toBe('combobox');
34
+ });
35
+
36
+ it('has the correct labelledby attribute', () => {
37
+ expect(searchBox.attributes('aria-labelledby')).toBe('test-label');
38
+ });
39
+
40
+ it('controls the listbox', async () => {
41
+ expect.assertions(1);
42
+ searchBox.trigger('focus');
43
+ await Vue.nextTick();
44
+ expect(searchBox.attributes('aria-owns')).toBe('test-listbox');
45
+ });
46
+
47
+ it('has the correct autocomplete settings', () => {
48
+ expect(searchBox.attributes('autocomplete')).toBe('off');
49
+ expect(searchBox.attributes('aria-autocomplete')).toBe('list');
50
+ });
51
+
52
+ it('triggers a search event on input', () => {
53
+ searchBox.setValue('test search');
54
+ expect(wrapper.emitted('search')[0]).toEqual(['test search']);
55
+ });
56
+
57
+ it('reduces the options rendered based on the search text', async () => {
58
+ expect.assertions(1);
59
+ searchBox.setValue('d');
60
+ await Vue.nextTick();
61
+ expect(listBox.findAll('li')).toHaveLength(1);
62
+ });
63
+
64
+ it('does not reduce the options rendered based on the search text when filterOptions prop is false', async () => {
65
+ expect.assertions(1);
66
+ wrapper.setProps({
67
+ filterOptions: false,
68
+ });
69
+ searchBox.setValue('d');
70
+ await Vue.nextTick();
71
+ expect(listBox.findAll('li')).toHaveLength(2);
72
+ });
73
+ });
74
+
75
+ describe('Listbox', () => {
76
+ it('has the correct role', () => {
77
+ expect(listBox.attributes('role')).toBe('listbox');
78
+ });
79
+
80
+ it('has the correct labelledby attribute', () => {
81
+ expect(listBox.attributes('aria-labelledby')).toBe('test-label');
82
+ });
83
+
84
+ it('renders the options passed to the select', () => {
85
+ expect(listBox.findAll('li')).toHaveLength(2);
86
+ });
87
+
88
+ it('allows keyboard navigation of items', async () => {
89
+ expect.assertions(1);
90
+ searchBox.trigger('focus');
91
+ await Vue.nextTick();
92
+ wrapper.trigger('keydown.down');
93
+ await Vue.nextTick();
94
+ expect(wrapper.vm.selectedOption).toBeTruthy();
95
+ });
96
+
97
+ it('triggers a select-option event on option mousedown', () => {
98
+ listBox.find('li').trigger('mousedown');
99
+ expect(wrapper.emitted('select-option')[0]).toEqual([
100
+ {
101
+ value: 'dog',
102
+ label: 'Dog',
103
+ },
104
+ ]);
105
+ });
106
+ });
107
+ });
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" ?>
2
2
  <!DOCTYPE coverage SYSTEM "http://cobertura.sourceforge.net/xml/coverage-04.dtd">
3
- <coverage lines-valid="253" lines-covered="98" line-rate="0.3874" branches-valid="59" branches-covered="19" branch-rate="0.322" timestamp="1578667108262" complexity="0" version="0.1">
3
+ <coverage lines-valid="354" lines-covered="143" line-rate="0.40399999999999997" branches-valid="97" branches-covered="31" branch-rate="0.3196" timestamp="1581616406773" complexity="0" version="0.1">
4
4
  <sources>
5
5
  <source>/var/lib/jenkins/jobs/madgex-design-system/branches/master/workspace</source>
6
6
  </sources>
@@ -125,6 +125,233 @@
125
125
  </class>
126
126
  </classes>
127
127
  </package>
128
+ <package name="components.combobox" line-rate="0" branch-rate="0">
129
+ <classes>
130
+ <class name="combobox.js" filename="src/components/combobox/combobox.js" line-rate="0" branch-rate="0">
131
+ <methods>
132
+ <method name="(anonymous_0)" hits="0" signature="()V">
133
+ <lines>
134
+ <line number="13" hits="0"/>
135
+ </lines>
136
+ </method>
137
+ </methods>
138
+ <lines>
139
+ <line number="6" hits="0" branch="false"/>
140
+ <line number="7" hits="0" branch="false"/>
141
+ <line number="9" hits="0" branch="false"/>
142
+ <line number="10" hits="0" branch="false"/>
143
+ <line number="12" hits="0" branch="false"/>
144
+ <line number="15" hits="0" branch="false"/>
145
+ <line number="16" hits="0" branch="false"/>
146
+ <line number="17" hits="0" branch="true" condition-coverage="0% (0/2)"/>
147
+ <line number="18" hits="0" branch="true" condition-coverage="0% (0/2)"/>
148
+ </lines>
149
+ </class>
150
+ </classes>
151
+ </package>
152
+ <package name="components.combobox.vue-components" line-rate="0.7759" branch-rate="0.5455">
153
+ <classes>
154
+ <class name="Combobox.vue" filename="src/components/combobox/vue-components/Combobox.vue" line-rate="0.7759" branch-rate="0.5455">
155
+ <methods>
156
+ <method name="_default" hits="0" signature="()V">
157
+ <lines>
158
+ <line number="78" hits="0"/>
159
+ </lines>
160
+ </method>
161
+ <method name="data" hits="12" signature="()V">
162
+ <lines>
163
+ <line number="85" hits="12"/>
164
+ </lines>
165
+ </method>
166
+ <method name="get" hits="16" signature="()V">
167
+ <lines>
168
+ <line number="95" hits="16"/>
169
+ </lines>
170
+ </method>
171
+ <method name="set" hits="3" signature="()V">
172
+ <lines>
173
+ <line number="101" hits="3"/>
174
+ </lines>
175
+ </method>
176
+ <method name="get" hits="14" signature="()V">
177
+ <lines>
178
+ <line number="110" hits="14"/>
179
+ </lines>
180
+ </method>
181
+ <method name="set" hits="7" signature="()V">
182
+ <lines>
183
+ <line number="113" hits="7"/>
184
+ </lines>
185
+ </method>
186
+ <method name="get" hits="13" signature="()V">
187
+ <lines>
188
+ <line number="118" hits="13"/>
189
+ </lines>
190
+ </method>
191
+ <method name="set" hits="4" signature="()V">
192
+ <lines>
193
+ <line number="121" hits="4"/>
194
+ </lines>
195
+ </method>
196
+ <method name="visibleOptions" hits="15" signature="()V">
197
+ <lines>
198
+ <line number="127" hits="15"/>
199
+ </lines>
200
+ </method>
201
+ <method name="(anonymous_10)" hits="28" signature="()V">
202
+ <lines>
203
+ <line number="129" hits="28"/>
204
+ </lines>
205
+ </method>
206
+ <method name="labelId" hits="12" signature="()V">
207
+ <lines>
208
+ <line number="133" hits="12"/>
209
+ </lines>
210
+ </method>
211
+ <method name="listBoxId" hits="12" signature="()V">
212
+ <lines>
213
+ <line number="136" hits="12"/>
214
+ </lines>
215
+ </method>
216
+ <method name="optionId" hits="12" signature="()V">
217
+ <lines>
218
+ <line number="139" hits="12"/>
219
+ </lines>
220
+ </method>
221
+ <method name="selectedOptionId" hits="17" signature="()V">
222
+ <lines>
223
+ <line number="142" hits="17"/>
224
+ </lines>
225
+ </method>
226
+ <method name="listBoxHidden" hits="17" signature="()V">
227
+ <lines>
228
+ <line number="149" hits="17"/>
229
+ </lines>
230
+ </method>
231
+ <method name="lastOptionIndex" hits="1" signature="()V">
232
+ <lines>
233
+ <line number="152" hits="1"/>
234
+ </lines>
235
+ </method>
236
+ <method name="resultCount" hits="15" signature="()V">
237
+ <lines>
238
+ <line number="155" hits="15"/>
239
+ </lines>
240
+ </method>
241
+ <method name="makeActive" hits="5" signature="()V">
242
+ <lines>
243
+ <line number="163" hits="5"/>
244
+ </lines>
245
+ </method>
246
+ <method name="makeInactive" hits="1" signature="()V">
247
+ <lines>
248
+ <line number="166" hits="1"/>
249
+ </lines>
250
+ </method>
251
+ <method name="clickOption" hits="1" signature="()V">
252
+ <lines>
253
+ <line number="169" hits="1"/>
254
+ </lines>
255
+ </method>
256
+ <method name="chooseOption" hits="0" signature="()V">
257
+ <lines>
258
+ <line number="173" hits="0"/>
259
+ </lines>
260
+ </method>
261
+ <method name="hiddenGuard" hits="3" signature="()V">
262
+ <lines>
263
+ <line number="177" hits="3"/>
264
+ </lines>
265
+ </method>
266
+ <method name="onInputBlur" hits="0" signature="()V">
267
+ <lines>
268
+ <line number="181" hits="0"/>
269
+ </lines>
270
+ </method>
271
+ <method name="onKeyDown" hits="1" signature="()V">
272
+ <lines>
273
+ <line number="184" hits="1"/>
274
+ </lines>
275
+ </method>
276
+ <method name="onKeyUp" hits="0" signature="()V">
277
+ <lines>
278
+ <line number="193" hits="0"/>
279
+ </lines>
280
+ </method>
281
+ <method name="onKeyHome" hits="1" signature="()V">
282
+ <lines>
283
+ <line number="202" hits="1"/>
284
+ </lines>
285
+ </method>
286
+ <method name="onKeyEnd" hits="1" signature="()V">
287
+ <lines>
288
+ <line number="205" hits="1"/>
289
+ </lines>
290
+ </method>
291
+ </methods>
292
+ <lines>
293
+ <line number="44" hits="1" branch="false"/>
294
+ <line number="45" hits="1" branch="false"/>
295
+ <line number="46" hits="1" branch="false"/>
296
+ <line number="78" hits="0" branch="false"/>
297
+ <line number="86" hits="12" branch="false"/>
298
+ <line number="96" hits="16" branch="true" condition-coverage="100% (2/2)"/>
299
+ <line number="97" hits="1" branch="false"/>
300
+ <line number="99" hits="15" branch="false"/>
301
+ <line number="103" hits="3" branch="false"/>
302
+ <line number="104" hits="3" branch="true" condition-coverage="50% (1/2)"/>
303
+ <line number="105" hits="3" branch="false"/>
304
+ <line number="106" hits="3" branch="false"/>
305
+ <line number="111" hits="14" branch="false"/>
306
+ <line number="114" hits="7" branch="false"/>
307
+ <line number="119" hits="13" branch="false"/>
308
+ <line number="122" hits="4" branch="false"/>
309
+ <line number="123" hits="4" branch="false"/>
310
+ <line number="124" hits="4" branch="false"/>
311
+ <line number="127" hits="15" branch="false"/>
312
+ <line number="128" hits="15" branch="true" condition-coverage="100% (2/2)"/>
313
+ <line number="129" hits="42" branch="false"/>
314
+ <line number="131" hits="1" branch="false"/>
315
+ <line number="134" hits="12" branch="false"/>
316
+ <line number="137" hits="12" branch="false"/>
317
+ <line number="140" hits="12" branch="false"/>
318
+ <line number="143" hits="17" branch="false"/>
319
+ <line number="144" hits="17" branch="true" condition-coverage="100% (2/2)"/>
320
+ <line number="145" hits="2" branch="false"/>
321
+ <line number="147" hits="15" branch="false"/>
322
+ <line number="150" hits="17" branch="false"/>
323
+ <line number="153" hits="1" branch="false"/>
324
+ <line number="156" hits="15" branch="true" condition-coverage="50% (1/2)"/>
325
+ <line number="157" hits="0" branch="false"/>
326
+ <line number="159" hits="15" branch="false"/>
327
+ <line number="164" hits="5" branch="false"/>
328
+ <line number="167" hits="1" branch="false"/>
329
+ <line number="169" hits="1" branch="true" condition-coverage="100% (2/2)"/>
330
+ <line number="170" hits="1" branch="false"/>
331
+ <line number="171" hits="1" branch="false"/>
332
+ <line number="174" hits="0" branch="false"/>
333
+ <line number="175" hits="0" branch="false"/>
334
+ <line number="178" hits="3" branch="true" condition-coverage="50% (1/2)"/>
335
+ <line number="179" hits="3" branch="false"/>
336
+ <line number="182" hits="0" branch="false"/>
337
+ <line number="185" hits="1" branch="true" condition-coverage="50% (1/2)"/>
338
+ <line number="186" hits="0" branch="false"/>
339
+ <line number="187" hits="0" branch="true" condition-coverage="0% (0/2)"/>
340
+ <line number="188" hits="0" branch="false"/>
341
+ <line number="189" hits="1" branch="false"/>
342
+ <line number="190" hits="1" branch="false"/>
343
+ <line number="194" hits="0" branch="true" condition-coverage="0% (0/2)"/>
344
+ <line number="195" hits="0" branch="false"/>
345
+ <line number="196" hits="0" branch="true" condition-coverage="0% (0/2)"/>
346
+ <line number="197" hits="0" branch="false"/>
347
+ <line number="199" hits="0" branch="false"/>
348
+ <line number="202" hits="1" branch="false"/>
349
+ <line number="203" hits="1" branch="false"/>
350
+ <line number="206" hits="1" branch="false"/>
351
+ </lines>
352
+ </class>
353
+ </classes>
354
+ </package>
128
355
  <package name="components.notification" line-rate="0.9286" branch-rate="1">
129
356
  <classes>
130
357
  <class name="notification.js" filename="src/components/notification/notification.js" line-rate="0.9286" branch-rate="1">
@@ -507,14 +734,15 @@
507
734
  <methods>
508
735
  <method name="(anonymous_0)" hits="0" signature="()V">
509
736
  <lines>
510
- <line number="4" hits="0"/>
737
+ <line number="5" hits="0"/>
511
738
  </lines>
512
739
  </method>
513
740
  </methods>
514
741
  <lines>
515
- <line number="4" hits="0" branch="false"/>
516
742
  <line number="5" hits="0" branch="false"/>
517
743
  <line number="6" hits="0" branch="false"/>
744
+ <line number="7" hits="0" branch="false"/>
745
+ <line number="8" hits="0" branch="false"/>
518
746
  </lines>
519
747
  </class>
520
748
  <class name="index-polyfills.js" filename="src/js/index-polyfills.js" line-rate="1" branch-rate="1">
@@ -542,6 +770,86 @@
542
770
  </package>
543
771
  <package name="js.fractal-scripts" line-rate="0" branch-rate="0">
544
772
  <classes>
773
+ <class name="combobox.js" filename="src/js/fractal-scripts/combobox.js" line-rate="0" branch-rate="0">
774
+ <methods>
775
+ <method name="bindToSelect" hits="0" signature="()V">
776
+ <lines>
777
+ <line number="4" hits="0"/>
778
+ </lines>
779
+ </method>
780
+ <method name="(anonymous_1)" hits="0" signature="()V">
781
+ <lines>
782
+ <line number="10" hits="0"/>
783
+ </lines>
784
+ </method>
785
+ <method name="(anonymous_2)" hits="0" signature="()V">
786
+ <lines>
787
+ <line number="11" hits="0"/>
788
+ </lines>
789
+ </method>
790
+ <method name="bindToApi" hits="0" signature="()V">
791
+ <lines>
792
+ <line number="20" hits="0"/>
793
+ </lines>
794
+ </method>
795
+ <method name="(anonymous_4)" hits="0" signature="()V">
796
+ <lines>
797
+ <line number="25" hits="0"/>
798
+ </lines>
799
+ </method>
800
+ <method name="(anonymous_5)" hits="0" signature="()V">
801
+ <lines>
802
+ <line number="29" hits="0"/>
803
+ </lines>
804
+ </method>
805
+ <method name="(anonymous_6)" hits="0" signature="()V">
806
+ <lines>
807
+ <line number="30" hits="0"/>
808
+ </lines>
809
+ </method>
810
+ <method name="(anonymous_7)" hits="0" signature="()V">
811
+ <lines>
812
+ <line number="31" hits="0"/>
813
+ </lines>
814
+ </method>
815
+ <method name="(anonymous_8)" hits="0" signature="()V">
816
+ <lines>
817
+ <line number="44" hits="0"/>
818
+ </lines>
819
+ </method>
820
+ </methods>
821
+ <lines>
822
+ <line number="1" hits="0" branch="false"/>
823
+ <line number="2" hits="0" branch="false"/>
824
+ <line number="5" hits="0" branch="false"/>
825
+ <line number="6" hits="0" branch="true" condition-coverage="0% (0/2)"/>
826
+ <line number="7" hits="0" branch="false"/>
827
+ <line number="8" hits="0" branch="false"/>
828
+ <line number="9" hits="0" branch="false"/>
829
+ <line number="10" hits="0" branch="false"/>
830
+ <line number="11" hits="0" branch="false"/>
831
+ <line number="12" hits="0" branch="false"/>
832
+ <line number="13" hits="0" branch="true" condition-coverage="0% (0/2)"/>
833
+ <line number="14" hits="0" branch="false"/>
834
+ <line number="15" hits="0" branch="false"/>
835
+ <line number="21" hits="0" branch="false"/>
836
+ <line number="22" hits="0" branch="true" condition-coverage="0% (0/2)"/>
837
+ <line number="23" hits="0" branch="false"/>
838
+ <line number="24" hits="0" branch="false"/>
839
+ <line number="25" hits="0" branch="false"/>
840
+ <line number="26" hits="0" branch="false"/>
841
+ <line number="27" hits="0" branch="true" condition-coverage="0% (0/2)"/>
842
+ <line number="28" hits="0" branch="false"/>
843
+ <line number="29" hits="0" branch="false"/>
844
+ <line number="31" hits="0" branch="false"/>
845
+ <line number="32" hits="0" branch="false"/>
846
+ <line number="33" hits="0" branch="false"/>
847
+ <line number="37" hits="0" branch="false"/>
848
+ <line number="43" hits="0" branch="false"/>
849
+ <line number="45" hits="0" branch="false"/>
850
+ <line number="46" hits="0" branch="false"/>
851
+ </lines>
852
+ </class>
545
853
  <class name="notification.js" filename="src/js/fractal-scripts/notification.js" line-rate="0" branch-rate="1">
546
854
  <methods>
547
855
  <method name="(anonymous_0)" hits="0" signature="()V">
@@ -632,6 +940,21 @@
632
940
  <line number="14" hits="0" branch="false"/>
633
941
  </lines>
634
942
  </class>
943
+ <class name="remove.js" filename="src/js/polyfills/remove.js" line-rate="0" branch-rate="0">
944
+ <methods>
945
+ <method name="remove" hits="0" signature="()V">
946
+ <lines>
947
+ <line number="2" hits="0"/>
948
+ </lines>
949
+ </method>
950
+ </methods>
951
+ <lines>
952
+ <line number="1" hits="0" branch="true" condition-coverage="0% (0/2)"/>
953
+ <line number="2" hits="0" branch="false"/>
954
+ <line number="3" hits="0" branch="true" condition-coverage="0% (0/2)"/>
955
+ <line number="4" hits="0" branch="false"/>
956
+ </lines>
957
+ </class>
635
958
  </classes>
636
959
  </package>
637
960
  <package name="tokens" line-rate="0" branch-rate="1">