@ministryofjustice/frontend 3.4.0 → 3.5.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 (33) hide show
  1. package/moj/all.jquery.min.js +7 -70
  2. package/moj/all.js +2856 -2865
  3. package/moj/components/add-another/add-another.js +135 -104
  4. package/moj/components/alert/alert.js +482 -247
  5. package/moj/components/alert/alert.spec.helper.js +30 -5
  6. package/moj/components/button-menu/button-menu.js +346 -319
  7. package/moj/components/date-picker/date-picker.js +925 -900
  8. package/moj/components/filter-toggle-button/filter-toggle-button.js +122 -91
  9. package/moj/components/form-validator/form-validator.js +399 -164
  10. package/moj/components/multi-file-upload/multi-file-upload.js +445 -210
  11. package/moj/components/multi-select/multi-select.js +106 -75
  12. package/moj/components/password-reveal/password-reveal.js +64 -33
  13. package/moj/components/rich-text-editor/rich-text-editor.js +186 -153
  14. package/moj/components/search-toggle/search-toggle.js +77 -46
  15. package/moj/components/sortable-table/sortable-table.js +167 -146
  16. package/moj/helpers/_links.scss +1 -1
  17. package/moj/helpers.js +218 -180
  18. package/moj/moj-frontend.min.js +7 -70
  19. package/moj/version.js +28 -1
  20. package/package.json +1 -1
  21. package/moj/all.spec.js +0 -24
  22. package/moj/components/add-another/add-another.spec.js +0 -165
  23. package/moj/components/alert/alert.spec.js +0 -229
  24. package/moj/components/button-menu/button-menu.spec.js +0 -360
  25. package/moj/components/date-picker/date-picker.spec.js +0 -1178
  26. package/moj/components/filter-toggle-button/filter-toggle-button.spec.js +0 -302
  27. package/moj/components/multi-file-upload/multi-file-upload.spec.js +0 -510
  28. package/moj/components/multi-select/multi-select.spec.js +0 -128
  29. package/moj/components/password-reveal/password-reveal.spec.js +0 -57
  30. package/moj/components/search-toggle/search-toggle.spec.js +0 -129
  31. package/moj/components/sortable-table/sortable-table.spec.js +0 -362
  32. package/moj/helpers.spec.js +0 -235
  33. package/moj/namespace.js +0 -2
@@ -1,235 +0,0 @@
1
- require('./helpers.js')
2
-
3
- describe('helpers', () => {
4
- describe('getNextSibling', () => {
5
- beforeEach(() => {
6
- const html = `
7
- <div id="container">
8
- <h1 id="title">Heading 1</h1>
9
- <p>this is some text</p>
10
- <ul id="list">
11
- <li id="item-1" class="item">item 1</li>
12
- <li id="item-2" class="item">item 2</li>
13
- <li id="item-3" class="selected">item 3</li>
14
- <li id="item-4" class="item">item 4</li>
15
- </ul>
16
- </div>`
17
-
18
- document.body.insertAdjacentHTML('afterbegin', html)
19
- })
20
-
21
- afterEach(() => {
22
- document.body.innerHTML = ''
23
- })
24
-
25
- test('returns undefined with no element', () => {
26
- const result = MOJFrontend.getNextSibling()
27
-
28
- expect(result).toBeUndefined()
29
- })
30
-
31
- test('returns null with no selector if no sibling', () => {
32
- const element = document.querySelector('#item-4')
33
- const result = MOJFrontend.getNextSibling(element)
34
-
35
- expect(result).toBeNull()
36
- })
37
-
38
- test('returns first sibling with no selector', () => {
39
- const element = document.querySelector('#item-2')
40
- const expected = document.querySelector('#item-3')
41
- const result = MOJFrontend.getNextSibling(element)
42
-
43
- expect(result).toBe(expected)
44
- })
45
-
46
- test('returns undefined if no sibling matches selector', () => {
47
- const element = document.querySelector('#item-1')
48
- const result = MOJFrontend.getNextSibling(element, '#not-present')
49
-
50
- expect(result).toBeUndefined()
51
- })
52
-
53
- test('returns matching sibling', () => {
54
- const element = document.querySelector('#item-1')
55
- const expected = document.querySelector('#item-3')
56
- const result = MOJFrontend.getNextSibling(element, '.selected')
57
-
58
- expect(result).toBe(expected)
59
- })
60
-
61
- test('returns first matching sibling', () => {
62
- const element = document.querySelector('#item-1')
63
- const expected = document.querySelector('#item-2')
64
- const result = MOJFrontend.getNextSibling(element, '.item')
65
-
66
- expect(result).toBe(expected)
67
- })
68
- })
69
-
70
- describe('getPreviousSibling', () => {
71
- beforeEach(() => {
72
- const html = `
73
- <div id="container">
74
- <h1 id="title">Heading 1</h1>
75
- <p>this is some text</p>
76
- <ul id="list">
77
- <li id="item-1" class="item">item 1</li>
78
- <li id="item-2" class="item">item 2</li>
79
- <li id="item-3" class="selected">item 3</li>
80
- <li id="item-4" class="item">item 4</li>
81
- </ul>
82
- </div>`
83
-
84
- document.body.insertAdjacentHTML('afterbegin', html)
85
- })
86
-
87
- afterEach(() => {
88
- document.body.innerHTML = ''
89
- })
90
-
91
- test('returns undefined with no element', () => {
92
- const result = MOJFrontend.getPreviousSibling()
93
-
94
- expect(result).toBeUndefined()
95
- })
96
-
97
- test('returns undefined with no selector if no sibling', () => {
98
- const element = document.querySelector('#item-1')
99
- const result = MOJFrontend.getPreviousSibling(element)
100
-
101
- expect(result).toBeNull()
102
- })
103
-
104
- test('returns first sibling with no selector', () => {
105
- const element = document.querySelector('#item-3')
106
- const expected = document.querySelector('#item-2')
107
- const result = MOJFrontend.getPreviousSibling(element)
108
-
109
- expect(result).toBe(expected)
110
- })
111
-
112
- test('returns undefined if no sibling matches selector', () => {
113
- const element = document.querySelector('#item-4')
114
- const result = MOJFrontend.getPreviousSibling(element, '#not-present')
115
-
116
- expect(result).toBeUndefined()
117
- })
118
-
119
- test('returns matching sibling', () => {
120
- const element = document.querySelector('#item-4')
121
- const expected = document.querySelector('#item-3')
122
- const result = MOJFrontend.getPreviousSibling(element, '.selected')
123
-
124
- expect(result).toBe(expected)
125
- })
126
-
127
- test('returns first matching sibling', () => {
128
- const element = document.querySelector('#item-4')
129
- const expected = document.querySelector('#item-2')
130
- const result = MOJFrontend.getPreviousSibling(element, '.item')
131
-
132
- expect(result).toBe(expected)
133
- })
134
- })
135
-
136
- describe('findNearestMatchingElement', () => {
137
- beforeEach(() => {
138
- const html = `
139
- <div id="container">
140
- <h1 id="title">Heading 1</h1>
141
- <p>this is some text</p>
142
- <ul id="list">
143
- <li id="item-1" class="item">item 1</li>
144
- <li id="item-2" class="item">item 2</li>
145
- <li id="item-3" class="selected">item 3</li>
146
- <li id="item-4" class="item">item 4</li>
147
- </ul>
148
- </div>`
149
-
150
- document.body.insertAdjacentHTML('afterbegin', html)
151
- })
152
-
153
- afterEach(() => {
154
- document.body.innerHTML = ''
155
- })
156
-
157
- test('returns undefined with no element', () => {
158
- const result = MOJFrontend.findNearestMatchingElement()
159
-
160
- expect(result).toBeUndefined()
161
- })
162
-
163
- test('returns undefined with no selector', () => {
164
- const element = document.querySelector('#item-1')
165
- const result = MOJFrontend.findNearestMatchingElement(element)
166
-
167
- expect(result).toBeUndefined()
168
- })
169
-
170
- test('returns undefined if element not found', () => {
171
- const element = document.querySelector('#item-1')
172
- const result = MOJFrontend.findNearestMatchingElement(
173
- element,
174
- '#not-present'
175
- )
176
-
177
- expect(result).toBeUndefined()
178
- })
179
-
180
- test("doesn't find next siblings", () => {
181
- const element = document.querySelector('#item-2')
182
- const result = MOJFrontend.findNearestMatchingElement(element, '#item-3')
183
-
184
- expect(result).toBeUndefined()
185
- })
186
-
187
- test('finds previous sibling', () => {
188
- const element = document.querySelector('#item-2')
189
- const expected = document.querySelector('#item-1')
190
- const result = MOJFrontend.findNearestMatchingElement(element, '#item-1')
191
-
192
- expect(result).toBe(expected)
193
- })
194
-
195
- test('finds first matching sibling', () => {
196
- const element = document.querySelector('#item-3')
197
- const expected = document.querySelector('#item-2')
198
- const result = MOJFrontend.findNearestMatchingElement(element, '.item')
199
-
200
- expect(result).toBe(expected)
201
- })
202
-
203
- test('returns element if matching', () => {
204
- const element = document.querySelector('#item-3')
205
- const expected = document.querySelector('#item-3')
206
- const result = MOJFrontend.findNearestMatchingElement(element, 'li')
207
-
208
- expect(result).toBe(expected)
209
- })
210
-
211
- test('if no sibling, finds matching ancestor', () => {
212
- const element = document.querySelector('#item-3')
213
- const expected = document.querySelector('#list')
214
- const result = MOJFrontend.findNearestMatchingElement(element, 'ul')
215
-
216
- expect(result).toBe(expected)
217
- })
218
-
219
- test('return an ancestor sibling if matched', () => {
220
- const element = document.querySelector('#item-3')
221
- const expected = document.querySelector('#title')
222
- const result = MOJFrontend.findNearestMatchingElement(element, 'h1')
223
-
224
- expect(result).toBe(expected)
225
- })
226
-
227
- test('continues traversing until match is found', () => {
228
- const element = document.querySelector('#item-3')
229
- const expected = document.querySelector('#container')
230
- const result = MOJFrontend.findNearestMatchingElement(element, 'div')
231
-
232
- expect(result).toBe(expected)
233
- })
234
- })
235
- })
package/moj/namespace.js DELETED
@@ -1,2 +0,0 @@
1
- // eslint-disable-next-line no-unused-vars
2
- const MOJFrontend = {}