@ministryofjustice/frontend 4.0.1 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/govuk-prototype-kit.config.json +19 -4
  2. package/moj/_base.scss +2 -0
  3. package/moj/_base.scss.map +1 -0
  4. package/moj/all.bundle.js +3010 -0
  5. package/moj/all.bundle.js.map +1 -0
  6. package/moj/all.bundle.mjs +3293 -0
  7. package/moj/all.bundle.mjs.map +1 -0
  8. package/moj/all.mjs +17 -110
  9. package/moj/all.mjs.map +1 -1
  10. package/moj/all.scss +3 -0
  11. package/moj/all.scss.map +1 -0
  12. package/moj/common/index.mjs +57 -0
  13. package/moj/common/index.mjs.map +1 -0
  14. package/moj/common/moj-frontend-version.mjs +14 -0
  15. package/moj/common/moj-frontend-version.mjs.map +1 -0
  16. package/moj/components/_all.scss +2 -0
  17. package/moj/components/_all.scss.map +1 -0
  18. package/moj/components/action-bar/_action-bar.scss +2 -0
  19. package/moj/components/action-bar/_action-bar.scss.map +1 -0
  20. package/moj/components/add-another/_add-another.scss +2 -0
  21. package/moj/components/add-another/_add-another.scss.map +1 -0
  22. package/moj/components/add-another/add-another.bundle.js +157 -0
  23. package/moj/components/add-another/add-another.bundle.js.map +1 -0
  24. package/moj/components/add-another/add-another.bundle.mjs +271 -0
  25. package/moj/components/add-another/add-another.bundle.mjs.map +1 -0
  26. package/moj/components/add-another/add-another.mjs +135 -91
  27. package/moj/components/add-another/add-another.mjs.map +1 -1
  28. package/moj/components/alert/_alert.scss +4 -0
  29. package/moj/components/alert/_alert.scss.map +1 -0
  30. package/moj/components/alert/alert.bundle.js +254 -0
  31. package/moj/components/alert/alert.bundle.js.map +1 -0
  32. package/moj/components/alert/alert.bundle.mjs +490 -0
  33. package/moj/components/alert/alert.bundle.mjs.map +1 -0
  34. package/moj/components/alert/alert.mjs +97 -218
  35. package/moj/components/alert/alert.mjs.map +1 -1
  36. package/moj/components/alert/{alert.spec.helper.js → alert.spec.helper.bundle.js} +1 -1
  37. package/moj/components/alert/alert.spec.helper.bundle.js.map +1 -0
  38. package/moj/components/alert/alert.spec.helper.bundle.mjs +67 -0
  39. package/moj/components/alert/alert.spec.helper.bundle.mjs.map +1 -0
  40. package/moj/components/alert/alert.spec.helper.mjs.map +1 -1
  41. package/moj/components/badge/_badge.scss +2 -0
  42. package/moj/components/badge/_badge.scss.map +1 -0
  43. package/moj/components/banner/_banner.scss +2 -0
  44. package/moj/components/banner/_banner.scss.map +1 -0
  45. package/moj/components/button-menu/README.md +12 -6
  46. package/moj/components/button-menu/_button-menu.scss +4 -1
  47. package/moj/components/button-menu/_button-menu.scss.map +1 -0
  48. package/moj/components/button-menu/button-menu.bundle.js +270 -0
  49. package/moj/components/button-menu/button-menu.bundle.js.map +1 -0
  50. package/moj/components/button-menu/button-menu.bundle.mjs +506 -0
  51. package/moj/components/button-menu/button-menu.bundle.mjs.map +1 -0
  52. package/moj/components/button-menu/button-menu.mjs +214 -280
  53. package/moj/components/button-menu/button-menu.mjs.map +1 -1
  54. package/moj/components/cookie-banner/_cookie-banner.scss +2 -0
  55. package/moj/components/cookie-banner/_cookie-banner.scss.map +1 -0
  56. package/moj/components/currency-input/_currency-input.scss +2 -0
  57. package/moj/components/currency-input/_currency-input.scss.map +1 -0
  58. package/moj/components/date-picker/_date-picker.scss +2 -0
  59. package/moj/components/date-picker/_date-picker.scss.map +1 -0
  60. package/moj/components/date-picker/date-picker.bundle.js +804 -0
  61. package/moj/components/date-picker/date-picker.bundle.js.map +1 -0
  62. package/moj/components/date-picker/date-picker.bundle.mjs +1040 -0
  63. package/moj/components/date-picker/date-picker.bundle.mjs.map +1 -0
  64. package/moj/components/date-picker/date-picker.mjs +663 -827
  65. package/moj/components/date-picker/date-picker.mjs.map +1 -1
  66. package/moj/components/filter/_filter.scss +2 -0
  67. package/moj/components/filter/_filter.scss.map +1 -0
  68. package/moj/components/filter/template.njk +1 -1
  69. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.js +185 -0
  70. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.js.map +1 -0
  71. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.mjs +421 -0
  72. package/moj/components/filter-toggle-button/filter-toggle-button.bundle.mjs.map +1 -0
  73. package/moj/components/filter-toggle-button/filter-toggle-button.mjs +166 -81
  74. package/moj/components/filter-toggle-button/filter-toggle-button.mjs.map +1 -1
  75. package/moj/components/form-validator/form-validator.bundle.js +288 -0
  76. package/moj/components/form-validator/form-validator.bundle.js.map +1 -0
  77. package/moj/components/form-validator/form-validator.bundle.mjs +524 -0
  78. package/moj/components/form-validator/form-validator.bundle.mjs.map +1 -0
  79. package/moj/components/form-validator/form-validator.mjs +226 -149
  80. package/moj/components/form-validator/form-validator.mjs.map +1 -1
  81. package/moj/components/header/_header.scss +2 -0
  82. package/moj/components/header/_header.scss.map +1 -0
  83. package/moj/components/identity-bar/_identity-bar.scss +2 -0
  84. package/moj/components/identity-bar/_identity-bar.scss.map +1 -0
  85. package/moj/components/interruption-card/_interruption-card.scss +2 -0
  86. package/moj/components/interruption-card/_interruption-card.scss.map +1 -0
  87. package/moj/components/messages/_messages.scss +2 -0
  88. package/moj/components/messages/_messages.scss.map +1 -0
  89. package/moj/components/multi-file-upload/_multi-file-upload.scss +2 -0
  90. package/moj/components/multi-file-upload/_multi-file-upload.scss.map +1 -0
  91. package/moj/components/multi-file-upload/multi-file-upload.bundle.js +397 -0
  92. package/moj/components/multi-file-upload/multi-file-upload.bundle.js.map +1 -0
  93. package/moj/components/multi-file-upload/multi-file-upload.bundle.mjs +633 -0
  94. package/moj/components/multi-file-upload/multi-file-upload.bundle.mjs.map +1 -0
  95. package/moj/components/multi-file-upload/multi-file-upload.mjs +384 -213
  96. package/moj/components/multi-file-upload/multi-file-upload.mjs.map +1 -1
  97. package/moj/components/multi-file-upload/template.njk +1 -1
  98. package/moj/components/multi-select/_multi-select.scss +2 -0
  99. package/moj/components/multi-select/_multi-select.scss.map +1 -0
  100. package/moj/components/multi-select/multi-select.bundle.js +143 -0
  101. package/moj/components/multi-select/multi-select.bundle.js.map +1 -0
  102. package/moj/components/multi-select/multi-select.bundle.mjs +379 -0
  103. package/moj/components/multi-select/multi-select.bundle.mjs.map +1 -0
  104. package/moj/components/multi-select/multi-select.mjs +123 -64
  105. package/moj/components/multi-select/multi-select.mjs.map +1 -1
  106. package/moj/components/notification-badge/_notification-badge.scss +2 -0
  107. package/moj/components/notification-badge/_notification-badge.scss.map +1 -0
  108. package/moj/components/organisation-switcher/_organisation-switcher.scss +2 -0
  109. package/moj/components/organisation-switcher/_organisation-switcher.scss.map +1 -0
  110. package/moj/components/page-header-actions/_page-header-actions.scss +2 -0
  111. package/moj/components/page-header-actions/_page-header-actions.scss.map +1 -0
  112. package/moj/components/pagination/_pagination.scss +2 -2
  113. package/moj/components/pagination/_pagination.scss.map +1 -0
  114. package/moj/components/password-reveal/_password-reveal.scss +5 -1
  115. package/moj/components/password-reveal/_password-reveal.scss.map +1 -0
  116. package/moj/components/password-reveal/password-reveal.bundle.js +52 -0
  117. package/moj/components/password-reveal/password-reveal.bundle.js.map +1 -0
  118. package/moj/components/password-reveal/password-reveal.bundle.mjs +166 -0
  119. package/moj/components/password-reveal/password-reveal.bundle.mjs.map +1 -0
  120. package/moj/components/password-reveal/password-reveal.mjs +39 -29
  121. package/moj/components/password-reveal/password-reveal.mjs.map +1 -1
  122. package/moj/components/primary-navigation/_primary-navigation.scss +2 -0
  123. package/moj/components/primary-navigation/_primary-navigation.scss.map +1 -0
  124. package/moj/components/progress-bar/_progress-bar.scss +2 -0
  125. package/moj/components/progress-bar/_progress-bar.scss.map +1 -0
  126. package/moj/components/rich-text-editor/README.md +16 -9
  127. package/moj/components/rich-text-editor/_rich-text-editor.scss +2 -0
  128. package/moj/components/rich-text-editor/_rich-text-editor.scss.map +1 -0
  129. package/moj/components/rich-text-editor/rich-text-editor.bundle.js +210 -0
  130. package/moj/components/rich-text-editor/rich-text-editor.bundle.js.map +1 -0
  131. package/moj/components/rich-text-editor/rich-text-editor.bundle.mjs +446 -0
  132. package/moj/components/rich-text-editor/rich-text-editor.bundle.mjs.map +1 -0
  133. package/moj/components/rich-text-editor/rich-text-editor.mjs +186 -140
  134. package/moj/components/rich-text-editor/rich-text-editor.mjs.map +1 -1
  135. package/moj/components/search/_search.scss +2 -0
  136. package/moj/components/search/_search.scss.map +1 -0
  137. package/moj/components/search-toggle/{search-toggle.scss → _search-toggle.scss} +2 -0
  138. package/moj/components/search-toggle/_search-toggle.scss.map +1 -0
  139. package/moj/components/search-toggle/search-toggle.bundle.js +122 -0
  140. package/moj/components/search-toggle/search-toggle.bundle.js.map +1 -0
  141. package/moj/components/search-toggle/search-toggle.bundle.mjs +358 -0
  142. package/moj/components/search-toggle/search-toggle.bundle.mjs.map +1 -0
  143. package/moj/components/search-toggle/search-toggle.mjs +104 -43
  144. package/moj/components/search-toggle/search-toggle.mjs.map +1 -1
  145. package/moj/components/side-navigation/_side-navigation.scss +2 -0
  146. package/moj/components/side-navigation/_side-navigation.scss.map +1 -0
  147. package/moj/components/sortable-table/_sortable-table.scss +2 -2
  148. package/moj/components/sortable-table/_sortable-table.scss.map +1 -0
  149. package/moj/components/sortable-table/sortable-table.bundle.js +202 -0
  150. package/moj/components/sortable-table/sortable-table.bundle.js.map +1 -0
  151. package/moj/components/sortable-table/sortable-table.bundle.mjs +438 -0
  152. package/moj/components/sortable-table/sortable-table.bundle.mjs.map +1 -0
  153. package/moj/components/sortable-table/sortable-table.mjs +179 -122
  154. package/moj/components/sortable-table/sortable-table.mjs.map +1 -1
  155. package/moj/components/sub-navigation/_sub-navigation.scss +2 -0
  156. package/moj/components/sub-navigation/_sub-navigation.scss.map +1 -0
  157. package/moj/components/tag/_tag.scss +2 -0
  158. package/moj/components/tag/_tag.scss.map +1 -0
  159. package/moj/components/task-list/_task-list.scss +2 -0
  160. package/moj/components/task-list/_task-list.scss.map +1 -0
  161. package/moj/components/ticket-panel/_ticket-panel.scss +2 -0
  162. package/moj/components/ticket-panel/_ticket-panel.scss.map +1 -0
  163. package/moj/components/timeline/_timeline.scss +2 -0
  164. package/moj/components/timeline/_timeline.scss.map +1 -0
  165. package/moj/core/_all.scss +3 -0
  166. package/moj/core/_all.scss.map +1 -0
  167. package/moj/core/_moj-frontend-properties.scss +7 -0
  168. package/moj/core/_moj-frontend-properties.scss.map +1 -0
  169. package/moj/filters/all.js +44 -22
  170. package/moj/filters/prototype-kit-13-filters.js +4 -3
  171. package/moj/helpers/_all.scss +2 -0
  172. package/moj/helpers/_all.scss.map +1 -0
  173. package/moj/helpers/_hidden.scss +2 -0
  174. package/moj/helpers/_hidden.scss.map +1 -0
  175. package/moj/helpers/_links.scss +2 -0
  176. package/moj/helpers/_links.scss.map +1 -0
  177. package/moj/helpers.bundle.js +140 -0
  178. package/moj/helpers.bundle.js.map +1 -0
  179. package/moj/helpers.bundle.mjs +128 -0
  180. package/moj/helpers.bundle.mjs.map +1 -0
  181. package/moj/helpers.mjs +50 -77
  182. package/moj/helpers.mjs.map +1 -1
  183. package/moj/init.js +11 -2
  184. package/moj/moj-frontend.min.css +1 -1
  185. package/moj/moj-frontend.min.css.map +1 -1
  186. package/moj/moj-frontend.min.js +1 -1
  187. package/moj/moj-frontend.min.js.map +1 -1
  188. package/moj/objects/_all.scss +2 -0
  189. package/moj/objects/_all.scss.map +1 -0
  190. package/moj/objects/_button-group.scss +2 -0
  191. package/moj/objects/_button-group.scss.map +1 -0
  192. package/moj/objects/_filter-layout.scss +2 -0
  193. package/moj/objects/_filter-layout.scss.map +1 -0
  194. package/moj/objects/_scrollable-pane.scss +2 -0
  195. package/moj/objects/_scrollable-pane.scss.map +1 -0
  196. package/moj/objects/_width-container.scss +2 -0
  197. package/moj/objects/_width-container.scss.map +1 -0
  198. package/moj/settings/_all.scss +2 -0
  199. package/moj/settings/_all.scss.map +1 -0
  200. package/moj/settings/_assets.scss +2 -0
  201. package/moj/settings/_assets.scss.map +1 -0
  202. package/moj/settings/_colours.scss +2 -0
  203. package/moj/settings/_colours.scss.map +1 -0
  204. package/moj/settings/_measurements.scss +2 -0
  205. package/moj/settings/_measurements.scss.map +1 -0
  206. package/moj/settings/_typography.scss +2 -0
  207. package/moj/settings/_typography.scss.map +1 -0
  208. package/moj/template.njk +13 -0
  209. package/moj/utilities/_all.scss +2 -0
  210. package/moj/utilities/_all.scss.map +1 -0
  211. package/moj/utilities/_hidden.scss +2 -0
  212. package/moj/utilities/_hidden.scss.map +1 -0
  213. package/moj/utilities/_width-container.scss +2 -0
  214. package/moj/utilities/_width-container.scss.map +1 -0
  215. package/moj/vendor/govuk-frontend/_base.scss +2 -0
  216. package/moj/vendor/govuk-frontend/_base.scss.map +1 -0
  217. package/moj/vendor/govuk-frontend/_index.scss +2 -0
  218. package/moj/vendor/govuk-frontend/_index.scss.map +1 -0
  219. package/package.json +5 -6
  220. package/moj/all.jquery.min.js +0 -1
  221. package/moj/all.jquery.min.js.map +0 -1
  222. package/moj/all.js +0 -2662
  223. package/moj/all.js.map +0 -1
  224. package/moj/components/add-another/add-another.js +0 -115
  225. package/moj/components/add-another/add-another.js.map +0 -1
  226. package/moj/components/alert/alert.js +0 -356
  227. package/moj/components/alert/alert.js.map +0 -1
  228. package/moj/components/alert/alert.spec.helper.js.map +0 -1
  229. package/moj/components/button-menu/button-menu.js +0 -338
  230. package/moj/components/button-menu/button-menu.js.map +0 -1
  231. package/moj/components/date-picker/date-picker.js +0 -970
  232. package/moj/components/date-picker/date-picker.js.map +0 -1
  233. package/moj/components/filter-toggle-button/filter-toggle-button.js +0 -102
  234. package/moj/components/filter-toggle-button/filter-toggle-button.js.map +0 -1
  235. package/moj/components/form-validator/form-validator.js +0 -205
  236. package/moj/components/form-validator/form-validator.js.map +0 -1
  237. package/moj/components/multi-file-upload/multi-file-upload.js +0 -241
  238. package/moj/components/multi-file-upload/multi-file-upload.js.map +0 -1
  239. package/moj/components/multi-select/multi-select.js +0 -86
  240. package/moj/components/multi-select/multi-select.js.map +0 -1
  241. package/moj/components/password-reveal/password-reveal.js +0 -44
  242. package/moj/components/password-reveal/password-reveal.js.map +0 -1
  243. package/moj/components/rich-text-editor/rich-text-editor.js +0 -166
  244. package/moj/components/rich-text-editor/rich-text-editor.js.map +0 -1
  245. package/moj/components/search-toggle/search-toggle.js +0 -63
  246. package/moj/components/search-toggle/search-toggle.js.map +0 -1
  247. package/moj/components/sortable-table/sortable-table.js +0 -147
  248. package/moj/components/sortable-table/sortable-table.js.map +0 -1
  249. package/moj/helpers.js +0 -200
  250. package/moj/helpers.js.map +0 -1
  251. package/moj/vendor/html5shiv.js +0 -326
  252. package/moj/vendor/jquery.js +0 -9300
  253. package/moj/version.js +0 -12
  254. package/moj/version.js.map +0 -1
  255. package/moj/version.mjs +0 -4
  256. package/moj/version.mjs.map +0 -1
@@ -1,326 +0,0 @@
1
- /**
2
- * @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
3
- */
4
- ;(function(window, document) {
5
- /*jshint evil:true */
6
- /** version */
7
- var version = '3.7.3';
8
-
9
- /** Preset options */
10
- var options = window.html5 || {};
11
-
12
- /** Used to skip problem elements */
13
- var reSkip = /^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i;
14
-
15
- /** Not all elements can be cloned in IE **/
16
- var saveClones = /^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i;
17
-
18
- /** Detect whether the browser supports default html5 styles */
19
- var supportsHtml5Styles;
20
-
21
- /** Name of the expando, to work with multiple documents or to re-shiv one document */
22
- var expando = '_html5shiv';
23
-
24
- /** The id for the the documents expando */
25
- var expanID = 0;
26
-
27
- /** Cached data for each document */
28
- var expandoData = {};
29
-
30
- /** Detect whether the browser supports unknown elements */
31
- var supportsUnknownElements;
32
-
33
- (function() {
34
- try {
35
- var a = document.createElement('a');
36
- a.innerHTML = '<xyz></xyz>';
37
- //if the hidden property is implemented we can assume, that the browser supports basic HTML5 Styles
38
- supportsHtml5Styles = ('hidden' in a);
39
-
40
- supportsUnknownElements = a.childNodes.length == 1 || (function() {
41
- // assign a false positive if unable to shiv
42
- (document.createElement)('a');
43
- var frag = document.createDocumentFragment();
44
- return (
45
- typeof frag.cloneNode == 'undefined' ||
46
- typeof frag.createDocumentFragment == 'undefined' ||
47
- typeof frag.createElement == 'undefined'
48
- );
49
- }());
50
- } catch(e) {
51
- // assign a false positive if detection fails => unable to shiv
52
- supportsHtml5Styles = true;
53
- supportsUnknownElements = true;
54
- }
55
-
56
- }());
57
-
58
- /*--------------------------------------------------------------------------*/
59
-
60
- /**
61
- * Creates a style sheet with the given CSS text and adds it to the document.
62
- * @private
63
- * @param {Document} ownerDocument The document.
64
- * @param {String} cssText The CSS text.
65
- * @returns {StyleSheet} The style element.
66
- */
67
- function addStyleSheet(ownerDocument, cssText) {
68
- var p = ownerDocument.createElement('p'),
69
- parent = ownerDocument.getElementsByTagName('head')[0] || ownerDocument.documentElement;
70
-
71
- p.innerHTML = 'x<style>' + cssText + '</style>';
72
- return parent.insertBefore(p.lastChild, parent.firstChild);
73
- }
74
-
75
- /**
76
- * Returns the value of `html5.elements` as an array.
77
- * @private
78
- * @returns {Array} An array of shived element node names.
79
- */
80
- function getElements() {
81
- var elements = html5.elements;
82
- return typeof elements == 'string' ? elements.split(' ') : elements;
83
- }
84
-
85
- /**
86
- * Extends the built-in list of html5 elements
87
- * @memberOf html5
88
- * @param {String|Array} newElements whitespace separated list or array of new element names to shiv
89
- * @param {Document} ownerDocument The context document.
90
- */
91
- function addElements(newElements, ownerDocument) {
92
- var elements = html5.elements;
93
- if(typeof elements != 'string'){
94
- elements = elements.join(' ');
95
- }
96
- if(typeof newElements != 'string'){
97
- newElements = newElements.join(' ');
98
- }
99
- html5.elements = elements +' '+ newElements;
100
- shivDocument(ownerDocument);
101
- }
102
-
103
- /**
104
- * Returns the data associated to the given document
105
- * @private
106
- * @param {Document} ownerDocument The document.
107
- * @returns {Object} An object of data.
108
- */
109
- function getExpandoData(ownerDocument) {
110
- var data = expandoData[ownerDocument[expando]];
111
- if (!data) {
112
- data = {};
113
- expanID++;
114
- ownerDocument[expando] = expanID;
115
- expandoData[expanID] = data;
116
- }
117
- return data;
118
- }
119
-
120
- /**
121
- * returns a shived element for the given nodeName and document
122
- * @memberOf html5
123
- * @param {String} nodeName name of the element
124
- * @param {Document|DocumentFragment} ownerDocument The context document.
125
- * @returns {Object} The shived element.
126
- */
127
- function createElement(nodeName, ownerDocument, data){
128
- if (!ownerDocument) {
129
- ownerDocument = document;
130
- }
131
- if(supportsUnknownElements){
132
- return ownerDocument.createElement(nodeName);
133
- }
134
- if (!data) {
135
- data = getExpandoData(ownerDocument);
136
- }
137
- var node;
138
-
139
- if (data.cache[nodeName]) {
140
- node = data.cache[nodeName].cloneNode();
141
- } else if (saveClones.test(nodeName)) {
142
- node = (data.cache[nodeName] = data.createElem(nodeName)).cloneNode();
143
- } else {
144
- node = data.createElem(nodeName);
145
- }
146
-
147
- // Avoid adding some elements to fragments in IE < 9 because
148
- // * Attributes like `name` or `type` cannot be set/changed once an element
149
- // is inserted into a document/fragment
150
- // * Link elements with `src` attributes that are inaccessible, as with
151
- // a 403 response, will cause the tab/window to crash
152
- // * Script elements appended to fragments will execute when their `src`
153
- // or `text` property is set
154
- return node.canHaveChildren && !reSkip.test(nodeName) && !node.tagUrn ? data.frag.appendChild(node) : node;
155
- }
156
-
157
- /**
158
- * returns a shived DocumentFragment for the given document
159
- * @memberOf html5
160
- * @param {Document} ownerDocument The context document.
161
- * @returns {Object} The shived DocumentFragment.
162
- */
163
- function createDocumentFragment(ownerDocument, data){
164
- if (!ownerDocument) {
165
- ownerDocument = document;
166
- }
167
- if(supportsUnknownElements){
168
- return ownerDocument.createDocumentFragment();
169
- }
170
- data = data || getExpandoData(ownerDocument);
171
- var clone = data.frag.cloneNode(),
172
- i = 0,
173
- elems = getElements(),
174
- l = elems.length;
175
- for(;i<l;i++){
176
- clone.createElement(elems[i]);
177
- }
178
- return clone;
179
- }
180
-
181
- /**
182
- * Shivs the `createElement` and `createDocumentFragment` methods of the document.
183
- * @private
184
- * @param {Document|DocumentFragment} ownerDocument The document.
185
- * @param {Object} data of the document.
186
- */
187
- function shivMethods(ownerDocument, data) {
188
- if (!data.cache) {
189
- data.cache = {};
190
- data.createElem = ownerDocument.createElement;
191
- data.createFrag = ownerDocument.createDocumentFragment;
192
- data.frag = data.createFrag();
193
- }
194
-
195
-
196
- ownerDocument.createElement = function(nodeName) {
197
- //abort shiv
198
- if (!html5.shivMethods) {
199
- return data.createElem(nodeName);
200
- }
201
- return createElement(nodeName, ownerDocument, data);
202
- };
203
-
204
- ownerDocument.createDocumentFragment = Function('h,f', 'return function(){' +
205
- 'var n=f.cloneNode(),c=n.createElement;' +
206
- 'h.shivMethods&&(' +
207
- // unroll the `createElement` calls
208
- getElements().join().replace(/[\w\-:]+/g, function(nodeName) {
209
- data.createElem(nodeName);
210
- data.frag.createElement(nodeName);
211
- return 'c("' + nodeName + '")';
212
- }) +
213
- ');return n}'
214
- )(html5, data.frag);
215
- }
216
-
217
- /*--------------------------------------------------------------------------*/
218
-
219
- /**
220
- * Shivs the given document.
221
- * @memberOf html5
222
- * @param {Document} ownerDocument The document to shiv.
223
- * @returns {Document} The shived document.
224
- */
225
- function shivDocument(ownerDocument) {
226
- if (!ownerDocument) {
227
- ownerDocument = document;
228
- }
229
- var data = getExpandoData(ownerDocument);
230
-
231
- if (html5.shivCSS && !supportsHtml5Styles && !data.hasCSS) {
232
- data.hasCSS = !!addStyleSheet(ownerDocument,
233
- // corrects block display not defined in IE6/7/8/9
234
- 'article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}' +
235
- // adds styling not present in IE6/7/8/9
236
- 'mark{background:#FF0;color:#000}' +
237
- // hides non-rendered elements
238
- 'template{display:none}'
239
- );
240
- }
241
- if (!supportsUnknownElements) {
242
- shivMethods(ownerDocument, data);
243
- }
244
- return ownerDocument;
245
- }
246
-
247
- /*--------------------------------------------------------------------------*/
248
-
249
- /**
250
- * The `html5` object is exposed so that more elements can be shived and
251
- * existing shiving can be detected on iframes.
252
- * @type Object
253
- * @example
254
- *
255
- * // options can be changed before the script is included
256
- * html5 = { 'elements': 'mark section', 'shivCSS': false, 'shivMethods': false };
257
- */
258
- var html5 = {
259
-
260
- /**
261
- * An array or space separated string of node names of the elements to shiv.
262
- * @memberOf html5
263
- * @type Array|String
264
- */
265
- 'elements': options.elements || 'abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video',
266
-
267
- /**
268
- * current version of html5shiv
269
- */
270
- 'version': version,
271
-
272
- /**
273
- * A flag to indicate that the HTML5 style sheet should be inserted.
274
- * @memberOf html5
275
- * @type Boolean
276
- */
277
- 'shivCSS': (options.shivCSS !== false),
278
-
279
- /**
280
- * Is equal to true if a browser supports creating unknown/HTML5 elements
281
- * @memberOf html5
282
- * @type boolean
283
- */
284
- 'supportsUnknownElements': supportsUnknownElements,
285
-
286
- /**
287
- * A flag to indicate that the document's `createElement` and `createDocumentFragment`
288
- * methods should be overwritten.
289
- * @memberOf html5
290
- * @type Boolean
291
- */
292
- 'shivMethods': (options.shivMethods !== false),
293
-
294
- /**
295
- * A string to describe the type of `html5` object ("default" or "default print").
296
- * @memberOf html5
297
- * @type String
298
- */
299
- 'type': 'default',
300
-
301
- // shivs the document according to the specified `html5` object options
302
- 'shivDocument': shivDocument,
303
-
304
- //creates a shived element
305
- createElement: createElement,
306
-
307
- //creates a shived documentFragment
308
- createDocumentFragment: createDocumentFragment,
309
-
310
- //extends list of elements
311
- addElements: addElements
312
- };
313
-
314
- /*--------------------------------------------------------------------------*/
315
-
316
- // expose html5
317
- window.html5 = html5;
318
-
319
- // shiv the document
320
- shivDocument(document);
321
-
322
- if(typeof module == 'object' && module.exports){
323
- module.exports = html5;
324
- }
325
-
326
- }(typeof window !== "undefined" ? window : this, document));