@atlassian/aui 9.3.21 → 9.3.23

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 (272) hide show
  1. package/LICENSE.md +1 -1
  2. package/README.md +7 -9
  3. package/dist/aui/aui-css-deprecations.js +1 -1
  4. package/dist/aui/aui-css-deprecations.js.map +1 -1
  5. package/dist/aui/aui-prototyping-browserfocus.css +1 -353
  6. package/dist/aui/aui-prototyping-darkmode.css +1 -262
  7. package/dist/aui/aui-prototyping.css +10 -10
  8. package/dist/aui/aui-prototyping.js +7 -7
  9. package/dist/aui/aui-prototyping.js.map +1 -1
  10. package/dist/aui/aui-prototyping.nodeps.css +10 -10
  11. package/dist/aui/aui-prototyping.nodeps.js +9 -9
  12. package/dist/aui/aui-prototyping.nodeps.js.map +1 -1
  13. package/entry/aui.batch.components.js +21 -21
  14. package/entry/aui.batch.page.js +3 -3
  15. package/entry/aui.batch.patterns.js +20 -20
  16. package/entry/aui.batch.prototyping.js +3 -11
  17. package/entry/aui.component.nav.js +1 -1
  18. package/entry/aui.component.progressbar.js +4 -1
  19. package/entry/aui.side-effects.js +2 -2
  20. package/entry/behaviours/aui.behaviour.format.js +1 -1
  21. package/entry/behaviours/aui.behaviour.i18n.js +1 -1
  22. package/entry/behaviours/aui.behaviour.keyboard-shortcuts.js +1 -1
  23. package/entry/behaviours/aui.behaviour.progressive-data-set.js +1 -1
  24. package/entry/behaviours/aui.behaviour.version.js +1 -1
  25. package/entry/deprecated/aui.component.inline-dialog1.js +1 -1
  26. package/package.json +3 -7
  27. package/src/js/aui/alphanum.js +1 -1
  28. package/src/js/aui/banner.js +2 -2
  29. package/src/js/aui/blanket.js +7 -11
  30. package/src/js/aui/button.js +5 -5
  31. package/src/js/aui/checkbox-multiselect.js +79 -76
  32. package/src/js/aui/clone.js +1 -1
  33. package/src/js/aui/close-button.js +2 -6
  34. package/src/js/aui/contain-dropdown.js +5 -5
  35. package/src/js/aui/contains.js +1 -1
  36. package/src/js/aui/cookie.js +12 -16
  37. package/src/js/aui/date-picker.js +84 -69
  38. package/src/js/aui/debounce.js +5 -8
  39. package/src/js/aui/dialog.js +206 -172
  40. package/src/js/aui/dialog2.js +9 -8
  41. package/src/js/aui/dropdown2.js +211 -181
  42. package/src/js/aui/escape-html.js +2 -2
  43. package/src/js/aui/escape.js +1 -1
  44. package/src/js/aui/event.js +4 -8
  45. package/src/js/aui/expander.js +9 -7
  46. package/src/js/aui/flag.js +15 -17
  47. package/src/js/aui/focus-manager.js +19 -18
  48. package/src/js/aui/form-notification.js +14 -13
  49. package/src/js/aui/form-validation/basic-validators.js +39 -30
  50. package/src/js/aui/form-validation/validator-register.js +9 -5
  51. package/src/js/aui/form-validation.js +17 -14
  52. package/src/js/aui/format.js +9 -6
  53. package/src/js/aui/forms/create-forms-component-body.js +6 -9
  54. package/src/js/aui/forms/custom-checkbox.js +2 -6
  55. package/src/js/aui/forms/custom-radio.js +2 -6
  56. package/src/js/aui/forms.js +4 -8
  57. package/src/js/aui/header-async.js +1 -1
  58. package/src/js/aui/header.js +2 -2
  59. package/src/js/aui/i18n.js +2 -5
  60. package/src/js/aui/index-of.js +1 -1
  61. package/src/js/aui/inline-dialog.js +171 -117
  62. package/src/js/aui/inline-dialog2.js +60 -50
  63. package/src/js/aui/internal/add-id.js +1 -1
  64. package/src/js/aui/internal/alignment.js +57 -49
  65. package/src/js/aui/internal/amdify.js +0 -1
  66. package/src/js/aui/internal/animation.js +2 -5
  67. package/src/js/aui/internal/attributes.js +2 -3
  68. package/src/js/aui/internal/browser.js +5 -6
  69. package/src/js/aui/internal/constants.js +1 -3
  70. package/src/js/aui/internal/deduplicateIDs.js +8 -7
  71. package/src/js/aui/internal/deprecation/deprecated-adg2-icons.js +132 -132
  72. package/src/js/aui/internal/deprecation.js +53 -31
  73. package/src/js/aui/internal/detect-children-change.js +3 -2
  74. package/src/js/aui/internal/elements.js +2 -5
  75. package/src/js/aui/internal/enforcer.js +11 -13
  76. package/src/js/aui/internal/globalize.js +3 -3
  77. package/src/js/aui/internal/has-touch.js +1 -2
  78. package/src/js/aui/internal/header/create-header.js +54 -28
  79. package/src/js/aui/internal/i18n/aui.js +8 -5
  80. package/src/js/aui/internal/i18n/aui_af.js +31 -31
  81. package/src/js/aui/internal/i18n/aui_ar.js +31 -31
  82. package/src/js/aui/internal/i18n/aui_ar_DZ.js +31 -31
  83. package/src/js/aui/internal/i18n/aui_az.js +31 -31
  84. package/src/js/aui/internal/i18n/aui_bg.js +31 -31
  85. package/src/js/aui/internal/i18n/aui_bs.js +31 -31
  86. package/src/js/aui/internal/i18n/aui_ca.js +31 -31
  87. package/src/js/aui/internal/i18n/aui_cs.js +31 -31
  88. package/src/js/aui/internal/i18n/aui_da.js +31 -31
  89. package/src/js/aui/internal/i18n/aui_de.js +31 -31
  90. package/src/js/aui/internal/i18n/aui_el.js +31 -31
  91. package/src/js/aui/internal/i18n/aui_en_AU.js +31 -31
  92. package/src/js/aui/internal/i18n/aui_en_GB.js +31 -31
  93. package/src/js/aui/internal/i18n/aui_en_NZ.js +31 -31
  94. package/src/js/aui/internal/i18n/aui_eo.js +31 -31
  95. package/src/js/aui/internal/i18n/aui_es.js +31 -31
  96. package/src/js/aui/internal/i18n/aui_et.js +31 -31
  97. package/src/js/aui/internal/i18n/aui_eu.js +31 -31
  98. package/src/js/aui/internal/i18n/aui_fa.js +31 -31
  99. package/src/js/aui/internal/i18n/aui_fi.js +31 -31
  100. package/src/js/aui/internal/i18n/aui_fo.js +31 -31
  101. package/src/js/aui/internal/i18n/aui_fr.js +31 -31
  102. package/src/js/aui/internal/i18n/aui_fr_CH.js +31 -31
  103. package/src/js/aui/internal/i18n/aui_gl.js +31 -31
  104. package/src/js/aui/internal/i18n/aui_he.js +31 -31
  105. package/src/js/aui/internal/i18n/aui_hr.js +31 -31
  106. package/src/js/aui/internal/i18n/aui_hu.js +31 -31
  107. package/src/js/aui/internal/i18n/aui_hy.js +31 -31
  108. package/src/js/aui/internal/i18n/aui_id.js +31 -31
  109. package/src/js/aui/internal/i18n/aui_is.js +31 -31
  110. package/src/js/aui/internal/i18n/aui_it.js +31 -31
  111. package/src/js/aui/internal/i18n/aui_ja.js +31 -31
  112. package/src/js/aui/internal/i18n/aui_ko.js +31 -31
  113. package/src/js/aui/internal/i18n/aui_kz.js +31 -31
  114. package/src/js/aui/internal/i18n/aui_lt.js +31 -31
  115. package/src/js/aui/internal/i18n/aui_lv.js +31 -31
  116. package/src/js/aui/internal/i18n/aui_ml.js +31 -31
  117. package/src/js/aui/internal/i18n/aui_ms.js +31 -31
  118. package/src/js/aui/internal/i18n/aui_nl.js +31 -31
  119. package/src/js/aui/internal/i18n/aui_no.js +31 -31
  120. package/src/js/aui/internal/i18n/aui_pl.js +31 -31
  121. package/src/js/aui/internal/i18n/aui_pt.js +31 -31
  122. package/src/js/aui/internal/i18n/aui_pt_BR.js +31 -31
  123. package/src/js/aui/internal/i18n/aui_rm.js +31 -31
  124. package/src/js/aui/internal/i18n/aui_ro.js +31 -31
  125. package/src/js/aui/internal/i18n/aui_ru.js +31 -31
  126. package/src/js/aui/internal/i18n/aui_sk.js +31 -31
  127. package/src/js/aui/internal/i18n/aui_sl.js +31 -31
  128. package/src/js/aui/internal/i18n/aui_sq.js +31 -31
  129. package/src/js/aui/internal/i18n/aui_sr.js +31 -31
  130. package/src/js/aui/internal/i18n/aui_sr_SR.js +31 -31
  131. package/src/js/aui/internal/i18n/aui_sv.js +31 -31
  132. package/src/js/aui/internal/i18n/aui_ta.js +31 -31
  133. package/src/js/aui/internal/i18n/aui_th.js +31 -31
  134. package/src/js/aui/internal/i18n/aui_tj.js +31 -31
  135. package/src/js/aui/internal/i18n/aui_tr.js +31 -31
  136. package/src/js/aui/internal/i18n/aui_uk.js +31 -31
  137. package/src/js/aui/internal/i18n/aui_vi.js +31 -31
  138. package/src/js/aui/internal/i18n/aui_zh_CN.js +31 -31
  139. package/src/js/aui/internal/i18n/aui_zh_HK.js +31 -31
  140. package/src/js/aui/internal/i18n/aui_zh_TW.js +31 -31
  141. package/src/js/aui/internal/log.js +2 -6
  142. package/src/js/aui/internal/mediaQuery.js +2 -3
  143. package/src/js/aui/internal/select/option.js +3 -3
  144. package/src/js/aui/internal/select/suggestion-model.js +1 -1
  145. package/src/js/aui/internal/select/suggestions-model.js +4 -5
  146. package/src/js/aui/internal/select/suggestions-view.js +17 -12
  147. package/src/js/aui/internal/state.js +2 -3
  148. package/src/js/aui/is-clipped.js +2 -2
  149. package/src/js/aui/key-code.js +1 -1
  150. package/src/js/aui/label.js +6 -6
  151. package/src/js/aui/layer.js +100 -98
  152. package/src/js/aui/messages.js +51 -38
  153. package/src/js/aui/navigation.js +7 -9
  154. package/src/js/aui/on-text-resize.js +7 -5
  155. package/src/js/aui/params.js +11 -8
  156. package/src/js/aui/polyfills/custom-event.js +7 -7
  157. package/src/js/aui/polyfills/placeholder.js +4 -4
  158. package/src/js/aui/populate-parameters.js +4 -4
  159. package/src/js/aui/progress-indicator.js +35 -27
  160. package/src/js/aui/progressive-data-set.js +13 -8
  161. package/src/js/aui/query-input.js +1 -1
  162. package/src/js/aui/restful-table/class-names.js +1 -1
  163. package/src/js/aui/restful-table/data-keys.js +1 -1
  164. package/src/js/aui/restful-table/edit-row.js +63 -63
  165. package/src/js/aui/restful-table/entry-model.js +6 -13
  166. package/src/js/aui/restful-table/event-handlers.js +4 -8
  167. package/src/js/aui/restful-table/event-names.js +1 -1
  168. package/src/js/aui/restful-table/row.js +41 -23
  169. package/src/js/aui/restful-table.js +101 -72
  170. package/src/js/aui/result-set.js +5 -5
  171. package/src/js/aui/results-list.js +3 -3
  172. package/src/js/aui/select.js +65 -49
  173. package/src/js/aui/select2.js +14 -6
  174. package/src/js/aui/sidebar.js +81 -51
  175. package/src/js/aui/spin.js +61 -49
  176. package/src/js/aui/spinner.js +11 -12
  177. package/src/js/aui/tables-sortable.js +21 -10
  178. package/src/js/aui/tabs.js +108 -77
  179. package/src/js/aui/to-init.js +1 -1
  180. package/src/js/aui/toggle.js +55 -43
  181. package/src/js/aui/tooltip.js +32 -31
  182. package/src/js/aui/trigger.js +20 -18
  183. package/src/js/aui/truncating-progressive-data-set.js +1 -1
  184. package/src/js/aui/unbind-text-resize.js +1 -1
  185. package/src/js/aui/unique-id.js +1 -1
  186. package/src/js/aui/when-i-type.js +66 -39
  187. package/src/js/aui-css-deprecations.js +50 -50
  188. package/src/js/jquery/jquery.hotkeys.js +124 -49
  189. package/src/js/jquery/jquery.moveto.js +18 -12
  190. package/src/less/adg-fancy-file-input.less +2 -3
  191. package/src/less/adg-header-quicksearch.less +4 -1
  192. package/src/less/adg-iconfont.less +242 -242
  193. package/src/less/adgs-icons.less +262 -262
  194. package/src/less/aui-appheader.less +10 -6
  195. package/src/less/aui-buttons.less +6 -5
  196. package/src/less/aui-date-picker.less +9 -6
  197. package/src/less/aui-experimental-expander.less +8 -8
  198. package/src/less/aui-experimental-labels.less +4 -3
  199. package/src/less/aui-experimental-progress-indicator.less +10 -4
  200. package/src/less/aui-experimental-progress-tracker.less +9 -6
  201. package/src/less/aui-experimental-restfultable.less +11 -3
  202. package/src/less/aui-experimental-tables-sortable.less +5 -3
  203. package/src/less/aui-experimental-tooltip.less +1 -1
  204. package/src/less/aui-link.less +0 -1
  205. package/src/less/aui-lozenge.less +6 -3
  206. package/src/less/aui-navigation.less +13 -13
  207. package/src/less/aui-page-layout.less +3 -4
  208. package/src/less/aui-page-typography.less +8 -3
  209. package/src/less/aui-reset.less +22 -6
  210. package/src/less/aui-select2.less +11 -8
  211. package/src/less/aui-sidebar-badges.less +1 -2
  212. package/src/less/aui-sidebar-config.less +7 -2
  213. package/src/less/aui-sidebar-grouping.less +16 -6
  214. package/src/less/aui-sidebar-navigation.less +7 -5
  215. package/src/less/aui-sidebar-skeleton.less +4 -3
  216. package/src/less/aui-skip-link.less +2 -1
  217. package/src/less/aui-spinner.less +2 -2
  218. package/src/less/aui-toggle.less +2 -2
  219. package/src/less/aui-toolbar2.less +1 -1
  220. package/src/less/checkbox-multiselect.less +13 -13
  221. package/src/less/dialog.less +3 -3
  222. package/src/less/dialog2.less +12 -11
  223. package/src/less/dropdown2-temp.css +4 -4
  224. package/src/less/dropdown2.less +3 -3
  225. package/src/less/form-notification.less +10 -6
  226. package/src/less/forms-current.less +6 -5
  227. package/src/less/forms-legacy.less +4 -2
  228. package/src/less/forms-radios-and-checkboxes.less +9 -11
  229. package/src/less/forms.less +2 -4
  230. package/src/less/iconfont-mixin.less +7 -4
  231. package/src/less/imports/aui-theme/adg/adg-colors.less +40 -40
  232. package/src/less/imports/aui-theme/adg/adg-neutral-dark.less +20 -20
  233. package/src/less/imports/aui-theme/adg/adg-neutral-light.less +20 -20
  234. package/src/less/imports/aui-theme/components/buttons.less +5 -1
  235. package/src/less/imports/aui-theme/components/dropdown.less +3 -1
  236. package/src/less/imports/aui-theme/components/form-notification.less +2 -1
  237. package/src/less/imports/aui-theme/components/forms.less +16 -1
  238. package/src/less/imports/aui-theme/components/inline-dialog2.less +1 -1
  239. package/src/less/imports/aui-theme/components/navigation.less +3 -3
  240. package/src/less/imports/aui-theme/components/progress-tracker.less +6 -2
  241. package/src/less/imports/aui-theme/components/tables.less +3 -2
  242. package/src/less/imports/aui-theme/components/toggle.less +8 -3
  243. package/src/less/imports/aui-theme/core/colors.less +12 -4
  244. package/src/less/imports/aui-theme/core/icons.less +22 -22
  245. package/src/less/imports/aui-theme/core/text.less +6 -3
  246. package/src/less/imports/mixins/dropdown2-trigger-chevron-icon.less +0 -1
  247. package/src/less/imports/mixins/focus.less +12 -4
  248. package/src/less/imports/mixins/media-queries.less +2 -2
  249. package/src/less/imports/mixins/shadows.less +3 -1
  250. package/src/less/imports/mixins/tab-indicator.less +2 -2
  251. package/src/less/imports/mixins.less +11 -4
  252. package/src/less/inline-dialog.less +21 -19
  253. package/src/less/layer.less +0 -2
  254. package/src/less/messages.less +2 -1
  255. package/src/less/single-select.less +14 -9
  256. package/src/less/tables.less +3 -2
  257. package/src/less/tabs.less +4 -3
  258. package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.css +0 -797
  259. package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-base-themes.js +0 -26
  260. package/entry/token-themes-generated/npm/aui-prototyping-design-tokens-theme-import-map.js +0 -51
  261. package/entry/token-themes-generated/npm/themes/dark-future.js +0 -7
  262. package/entry/token-themes-generated/npm/themes/dark-new-input-border.js +0 -7
  263. package/entry/token-themes-generated/npm/themes/dark.js +0 -395
  264. package/entry/token-themes-generated/npm/themes/legacy-dark.js +0 -395
  265. package/entry/token-themes-generated/npm/themes/legacy-light.js +0 -395
  266. package/entry/token-themes-generated/npm/themes/light-future.js +0 -7
  267. package/entry/token-themes-generated/npm/themes/light-new-input-border.js +0 -7
  268. package/entry/token-themes-generated/npm/themes/light.js +0 -395
  269. package/entry/token-themes-generated/npm/themes/shape.js +0 -15
  270. package/entry/token-themes-generated/npm/themes/spacing.js +0 -27
  271. package/entry/token-themes-generated/npm/themes/typography-adg3.js +0 -50
  272. package/entry/token-themes-generated/npm/themes/typography-minor3.js +0 -41
@@ -13,8 +13,8 @@ import layer from './layer';
13
13
  import state from './internal/state';
14
14
  import skate from './internal/skate';
15
15
  import escapeHtml from './escape-html';
16
- import {ifGone} from './internal/elements';
17
- import {doIfTrigger, setTrigger} from './trigger';
16
+ import { ifGone } from './internal/elements';
17
+ import { doIfTrigger, setTrigger } from './trigger';
18
18
  import generateUniqueId from './unique-id';
19
19
 
20
20
  function isHidden(el) {
@@ -40,7 +40,7 @@ function handleFocus(dropdown, e = {}) {
40
40
  const isKeyDownEvent = e.type.indexOf('key') > -1;
41
41
  if (dropdown.isSubmenu) {
42
42
  !isMouseEvent ? dropdown.focusItem(0) : dropdown.focus();
43
- } else if (isKeyDownEvent){
43
+ } else if (isKeyDownEvent) {
44
44
  const isUpArrow = e.keyCode === keyCode.UP;
45
45
  // set focus to last item in the menu to navigate bottom -> up
46
46
  if (isUpArrow) {
@@ -64,43 +64,46 @@ var LOADING = 'loading';
64
64
  var ERROR = 'error';
65
65
  var SUCCESS = 'success';
66
66
 
67
-
68
67
  // ASYNC DROPDOWN FUNCTIONS
69
68
 
70
- function makeAsyncDropdownContents (json) {
71
- var dropdownContents = json.map(function makeSection (sectionData) {
72
- var sectionItemsHtml = sectionData.items.map(function makeSectionItem (itemData) {
73
- function makeBooleanAttribute (attr) {
74
- return itemData[attr] ? `${attr} ="true"` : '';
75
- }
76
-
77
- function makeAttribute (attr) {
78
- return itemData[attr] ? `${attr}="${itemData[attr]}"` : '';
79
- }
80
-
81
- var tagName = 'aui-item-' + itemData.type;
82
- var itemHtml = `
69
+ function makeAsyncDropdownContents(json) {
70
+ var dropdownContents = json
71
+ .map(function makeSection(sectionData) {
72
+ var sectionItemsHtml = sectionData.items
73
+ .map(function makeSectionItem(itemData) {
74
+ function makeBooleanAttribute(attr) {
75
+ return itemData[attr] ? `${attr} ="true"` : '';
76
+ }
77
+
78
+ function makeAttribute(attr) {
79
+ return itemData[attr] ? `${attr}="${itemData[attr]}"` : '';
80
+ }
81
+
82
+ var tagName = 'aui-item-' + itemData.type;
83
+ var itemHtml = `
83
84
  <${tagName} ${makeAttribute('for')} ${makeAttribute('href')} ${makeBooleanAttribute('interactive')}
84
85
  ${makeBooleanAttribute('checked')} ${makeBooleanAttribute('disabled')} ${makeBooleanAttribute('hidden')}>
85
86
  ${escapeHtml(itemData.content)}
86
87
  </${tagName}>`;
87
88
 
88
- return itemHtml;
89
- }).join('');
89
+ return itemHtml;
90
+ })
91
+ .join('');
90
92
 
91
- var sectionAttributes = sectionData.label ? `label="${sectionData.label}"` : '';
92
- var sectionHtml = `
93
+ var sectionAttributes = sectionData.label ? `label="${sectionData.label}"` : '';
94
+ var sectionHtml = `
93
95
  <aui-section ${sectionAttributes}>
94
96
  ${sectionItemsHtml}
95
97
  </aui-section>`;
96
98
 
97
- return sectionHtml;
98
- }).join('\n');
99
+ return sectionHtml;
100
+ })
101
+ .join('\n');
99
102
 
100
103
  return dropdownContents;
101
104
  }
102
105
 
103
- function setDropdownContents (dropdown, json) {
106
+ function setDropdownContents(dropdown, json) {
104
107
  state(dropdown).set('loading-state', SUCCESS);
105
108
  dropdown.innerHTML = makeAsyncDropdownContents(json);
106
109
  skate.init(dropdown);
@@ -108,7 +111,7 @@ function setDropdownContents (dropdown, json) {
108
111
  * to make the loading state more accessible, we might need to move focus inside the dropdown container,
109
112
  * which would change the check from "focus is on trigger" to "focus is within dropdown".
110
113
  */
111
- doIfTrigger(dropdown, function(trigger) {
114
+ doIfTrigger(dropdown, function (trigger) {
112
115
  // Only manage focus if the focus was on the triggering element at the time it loaded.
113
116
  // Otherwise, the user likely moved on and doesn't want it any more.
114
117
  if (document.activeElement === trigger) {
@@ -117,7 +120,7 @@ function setDropdownContents (dropdown, json) {
117
120
  });
118
121
  }
119
122
 
120
- function setDropdownErrorState (dropdown) {
123
+ function setDropdownErrorState(dropdown) {
121
124
  state(dropdown).set('loading-state', ERROR);
122
125
  state(dropdown).set('hasErrorBeenShown', dropdown.isVisible());
123
126
  dropdown.innerHTML = `
@@ -127,7 +130,7 @@ function setDropdownErrorState (dropdown) {
127
130
  `;
128
131
  }
129
132
 
130
- function setDropdownLoadingState (dropdown) {
133
+ function setDropdownLoadingState(dropdown) {
131
134
  state(dropdown).set('loading-state', LOADING);
132
135
  state(dropdown).set('hasErrorBeenShown', false);
133
136
 
@@ -142,13 +145,13 @@ function setDropdownLoadingState (dropdown) {
142
145
  `;
143
146
  }
144
147
 
145
- function setDropdownLoaded (dropdown) {
148
+ function setDropdownLoaded(dropdown) {
146
149
  doIfTrigger(dropdown, function (trigger) {
147
150
  trigger.setAttribute('aria-busy', 'false');
148
151
  });
149
152
  }
150
153
 
151
- function loadContentsIfAsync (dropdown) {
154
+ function loadContentsIfAsync(dropdown) {
152
155
  if (!dropdown.src || state(dropdown).get('loading-state') === LOADING) {
153
156
  return;
154
157
  }
@@ -175,7 +178,7 @@ function loadContentsIfAsync (dropdown) {
175
178
  function loadContentWhenMouseEnterTrigger(dropdown) {
176
179
  var isDropdownUnloaded = state(dropdown).get('loading-state') === UNLOADED;
177
180
  var hasCurrentErrorBeenShown = state(dropdown).get('hasErrorBeenShown');
178
- if (isDropdownUnloaded || hasCurrentErrorBeenShown && !dropdown.isVisible()) {
181
+ if (isDropdownUnloaded || (hasCurrentErrorBeenShown && !dropdown.isVisible())) {
179
182
  loadContentsIfAsync(dropdown);
180
183
  }
181
184
  }
@@ -191,18 +194,19 @@ function loadContentWhenMenuShown(dropdown) {
191
194
  }
192
195
  }
193
196
 
194
-
195
197
  // The dropdown's trigger
196
198
  // ----------------------
197
199
 
198
- function triggerCreated (trigger) {
200
+ function triggerCreated(trigger) {
199
201
  let dropdownID = trigger.getAttribute('aria-controls');
200
202
 
201
203
  if (!dropdownID) {
202
204
  dropdownID = trigger.getAttribute('aria-owns');
203
205
 
204
206
  if (!dropdownID) {
205
- logger.error('Dropdown triggers need either a "aria-owns" or "aria-controls" attribute');
207
+ logger.error(
208
+ 'Dropdown triggers need either a "aria-owns" or "aria-controls" attribute'
209
+ );
206
210
  } else {
207
211
  trigger.removeAttribute('aria-owns');
208
212
  trigger.setAttribute('aria-controls', dropdownID);
@@ -282,9 +286,10 @@ function triggerCreated (trigger) {
282
286
  if (e.currentTarget !== trigger) {
283
287
  return;
284
288
  }
285
- const normalInvoke = (e.keyCode === keyCode.ENTER || e.keyCode === keyCode.SPACE);
286
- const submenuInvoke = (e.keyCode === keyCode.RIGHT && trigger.hasSubmenu());
287
- const rootMenuInvoke = ((e.keyCode === keyCode.UP || e.keyCode === keyCode.DOWN) && !trigger.hasSubmenu());
289
+ const normalInvoke = e.keyCode === keyCode.ENTER || e.keyCode === keyCode.SPACE;
290
+ const submenuInvoke = e.keyCode === keyCode.RIGHT && trigger.hasSubmenu();
291
+ const rootMenuInvoke =
292
+ (e.keyCode === keyCode.UP || e.keyCode === keyCode.DOWN) && !trigger.hasSubmenu();
288
293
 
289
294
  if (normalInvoke) {
290
295
  handleIt(e);
@@ -298,8 +303,7 @@ function triggerCreated (trigger) {
298
303
  .on('aui-button-invoke', handleIt)
299
304
  .on('click', handleIt)
300
305
  .on('keydown', handleKeydown)
301
- .on('mouseenter', handleMouseEnter)
302
- ;
306
+ .on('mouseenter', handleMouseEnter);
303
307
  }
304
308
 
305
309
  var triggerPrototype = {
@@ -314,13 +318,15 @@ var triggerPrototype = {
314
318
  },
315
319
 
316
320
  isEnabled: function () {
317
- return this.getAttribute('aria-disabled') !== 'true' &&
318
- this.classList.contains('aui-dropdown2-disabled') === false;
321
+ return (
322
+ this.getAttribute('aria-disabled') !== 'true' &&
323
+ this.classList.contains('aui-dropdown2-disabled') === false
324
+ );
319
325
  },
320
326
 
321
327
  hasSubmenu: function () {
322
328
  return this.classList.contains('aui-dropdown2-sub-trigger');
323
- }
329
+ },
324
330
  };
325
331
 
326
332
  //To remove at a later date. Some dropdown triggers initialise lazily, so we need to listen for mousedown
@@ -335,8 +341,9 @@ function bindLazyTriggerInitialisation() {
335
341
  removeInVersion: '10.0.0',
336
342
  alternativeName: 'initialisation on DOM insertion',
337
343
  sinceVersion: '5.8.0',
338
- extraInfo: 'Dropdown2 triggers should have all necessary attributes on DOM insertion',
339
- deprecationType: 'JS'
344
+ extraInfo:
345
+ 'Dropdown2 triggers should have all necessary attributes on DOM insertion',
346
+ deprecationType: 'JS',
340
347
  });
341
348
  lazyDeprecate();
342
349
  }
@@ -348,62 +355,69 @@ bindLazyTriggerInitialisation();
348
355
  // Dropdown trigger groups
349
356
  // -----------------------
350
357
 
351
- $(document).on('mouseenter', '.aui-dropdown2-trigger-group a, .aui-dropdown2-trigger-group button', function (e) {
352
- const $item = $(e.currentTarget);
358
+ $(document).on(
359
+ 'mouseenter',
360
+ '.aui-dropdown2-trigger-group a, .aui-dropdown2-trigger-group button',
361
+ function (e) {
362
+ const $item = $(e.currentTarget);
353
363
 
354
- if ($item.is('.aui-dropdown2-active')) {
355
- return; // No point doing anything if we're hovering over the already-active item trigger.
356
- }
364
+ if ($item.is('.aui-dropdown2-active')) {
365
+ return; // No point doing anything if we're hovering over the already-active item trigger.
366
+ }
357
367
 
358
- if ($item.closest('.aui-dropdown2').length) {
359
- return; // We don't want to deal with dropdown items, just the potential triggers in the group.
360
- }
368
+ if ($item.closest('.aui-dropdown2').length) {
369
+ return; // We don't want to deal with dropdown items, just the potential triggers in the group.
370
+ }
361
371
 
362
- const $triggerGroup = $item.closest('.aui-dropdown2-trigger-group');
372
+ const $triggerGroup = $item.closest('.aui-dropdown2-trigger-group');
363
373
 
364
- const $groupActiveTrigger = $triggerGroup.find('.aui-dropdown2-active');
365
- if ($groupActiveTrigger.length && $item.is('.aui-dropdown2-trigger')) {
366
- $groupActiveTrigger.blur(); // Remove focus from the previously opened menu.
367
- $item.trigger('aui-button-invoke'); // Open this trigger's menu.
368
- e.preventDefault();
369
- }
374
+ const $groupActiveTrigger = $triggerGroup.find('.aui-dropdown2-active');
375
+ if ($groupActiveTrigger.length && $item.is('.aui-dropdown2-trigger')) {
376
+ $groupActiveTrigger.blur(); // Remove focus from the previously opened menu.
377
+ $item.trigger('aui-button-invoke'); // Open this trigger's menu.
378
+ e.preventDefault();
379
+ }
370
380
 
371
- const $groupFocusedTrigger = $triggerGroup.find(':focus');
372
- if ($groupFocusedTrigger.length && $item.is('.aui-dropdown2-trigger')) {
373
- $groupFocusedTrigger.blur();
381
+ const $groupFocusedTrigger = $triggerGroup.find(':focus');
382
+ if ($groupFocusedTrigger.length && $item.is('.aui-dropdown2-trigger')) {
383
+ $groupFocusedTrigger.blur();
384
+ }
374
385
  }
375
- });
376
-
386
+ );
377
387
 
378
388
  // Dropdown items
379
389
  // --------------
380
390
 
381
- function getDropdownItems (dropdown, filter) {
391
+ function getDropdownItems(dropdown, filter) {
382
392
  return $(dropdown)
383
- .find([
384
- // Legacy markup.
385
- '> ul > li',
386
- '> .aui-dropdown2-section > ul > li',
387
- '> .aui-dropdown2-section > div[role="group"] > ul > li',
388
- '> div > .aui-dropdown2-section > div[role="group"] > ul > li',
389
- // Web component.
390
- 'aui-item-link',
391
- 'aui-item-checkbox',
392
- 'aui-item-radio'
393
- ].join(', '))
393
+ .find(
394
+ [
395
+ // Legacy markup.
396
+ '> ul > li',
397
+ '> .aui-dropdown2-section > ul > li',
398
+ '> .aui-dropdown2-section > div[role="group"] > ul > li',
399
+ '> div > .aui-dropdown2-section > div[role="group"] > ul > li',
400
+ // Web component.
401
+ 'aui-item-link',
402
+ 'aui-item-checkbox',
403
+ 'aui-item-radio',
404
+ ].join(', ')
405
+ )
394
406
  .filter(filter)
395
- .children('a, button, [role="checkbox"], [role="menuitemcheckbox"], [role="radio"], [role="menuitemradio"]');
407
+ .children(
408
+ 'a, button, [role="checkbox"], [role="menuitemcheckbox"], [role="radio"], [role="menuitemradio"]'
409
+ );
396
410
  }
397
411
 
398
- function getAllDropdownItems (dropdown) {
412
+ function getAllDropdownItems(dropdown) {
399
413
  return getDropdownItems(dropdown, () => true);
400
414
  }
401
415
 
402
- function getVisibleDropdownItems (dropdown) {
416
+ function getVisibleDropdownItems(dropdown) {
403
417
  return getDropdownItems(dropdown, (i, el) => !isHidden(el));
404
418
  }
405
419
 
406
- function amendDropdownItem (item) {
420
+ function amendDropdownItem(item) {
407
421
  item.setAttribute('tabindex', '-1');
408
422
 
409
423
  /**
@@ -415,7 +429,7 @@ function amendDropdownItem (item) {
415
429
  }
416
430
  }
417
431
 
418
- function amendDropdownContent (dropdown) {
432
+ function amendDropdownContent(dropdown) {
419
433
  // Add assistive semantics to each dropdown item
420
434
  getAllDropdownItems(dropdown).each((i, el) => amendDropdownItem(el));
421
435
  }
@@ -428,16 +442,15 @@ function amendDropdownContent (dropdown) {
428
442
  *
429
443
  * Calling this function will add the new namespaced classes to elements with legacy names.
430
444
  */
431
- function migrateAndSyncLegacyClassNames (dropdown) {
445
+ function migrateAndSyncLegacyClassNames(dropdown) {
432
446
  var $dropdown = $(dropdown);
433
447
 
434
448
  // Migrate away from legacy, unprefixed class names
435
- ['disabled', 'interactive', 'active', 'checked'].forEach(type => {
449
+ ['disabled', 'interactive', 'active', 'checked'].forEach((type) => {
436
450
  $dropdown.find(`.${type}`).addClass(`aui-dropdown2-${type}`);
437
451
  });
438
452
  }
439
453
 
440
-
441
454
  // The Dropdown itself
442
455
  // -------------------
443
456
 
@@ -473,7 +486,7 @@ function setLayerAlignment(dropdown, trigger) {
473
486
  preventOverflow: false,
474
487
  // space between a dropdown trigger and the dropdown itself, based on @aui-dropdown-trigger-offset
475
488
  // only added for dropdowns which are not submenus
476
- offset: (trigger.hasSubmenu && trigger.hasSubmenu()) ? [-3, 0] : [0, 3]
489
+ offset: trigger.hasSubmenu && trigger.hasSubmenu() ? [-3, 0] : [0, 3],
477
490
  });
478
491
 
479
492
  dropdown._auiAlignment.enable();
@@ -484,7 +497,10 @@ function saveCurrentAlignment(dropdown) {
484
497
  if (dropdown.hasAttribute('data-aui-alignment')) {
485
498
  $dropdown.data('previous-data-aui-alignment', dropdown.getAttribute('data-aui-alignment'));
486
499
  }
487
- $dropdown.data('had-data-aui-alignment-static', dropdown.hasAttribute('data-aui-alignment-static'));
500
+ $dropdown.data(
501
+ 'had-data-aui-alignment-static',
502
+ dropdown.hasAttribute('data-aui-alignment-static')
503
+ );
488
504
  }
489
505
 
490
506
  function restorePreviousAlignment(dropdown) {
@@ -510,12 +526,12 @@ function getDropdownHideLocation(dropdown, trigger) {
510
526
  }
511
527
 
512
528
  var keyboardClose = false;
513
- function keyboardCloseDetected () {
529
+ function keyboardCloseDetected() {
514
530
  keyboardClose = true;
515
531
  }
516
532
 
517
- function wasProbablyClosedViaKeyboard () {
518
- var result = (keyboardClose === true);
533
+ function wasProbablyClosedViaKeyboard() {
534
+ var result = keyboardClose === true;
519
535
  keyboardClose = false;
520
536
  return result;
521
537
  }
@@ -523,7 +539,6 @@ function wasProbablyClosedViaKeyboard () {
523
539
  function bindDropdownBehaviourToLayer(dropdown) {
524
540
  layer(dropdown);
525
541
 
526
-
527
542
  dropdown.addEventListener('aui-layer-show', function (e) {
528
543
  if (dropdown !== e.target) {
529
544
  return;
@@ -577,7 +592,7 @@ function bindDropdownBehaviourToLayer(dropdown) {
577
592
  });
578
593
  }
579
594
 
580
- function bindItemInteractionBehaviourToDropdown (dropdown) {
595
+ function bindItemInteractionBehaviourToDropdown(dropdown) {
581
596
  var $dropdown = $(dropdown);
582
597
 
583
598
  function belongsToDropdown(item) {
@@ -610,7 +625,7 @@ function bindItemInteractionBehaviourToDropdown (dropdown) {
610
625
  }
611
626
  });
612
627
 
613
- const hideIfNotSubmenuAndNotInteractive = function(e) {
628
+ const hideIfNotSubmenuAndNotInteractive = function (e) {
614
629
  var item = e.currentTarget;
615
630
 
616
631
  if (item.getAttribute('aria-disabled') === 'true') {
@@ -620,7 +635,6 @@ function bindItemInteractionBehaviourToDropdown (dropdown) {
620
635
 
621
636
  const isSubmenuTrigger = e.currentTarget.hasSubmenu && e.currentTarget.hasSubmenu();
622
637
  if (!isSubmenuTrigger && !item.classList.contains('aui-dropdown2-interactive')) {
623
-
624
638
  var theMenu = dropdown;
625
639
  do {
626
640
  var dd = layer(theMenu);
@@ -632,60 +646,78 @@ function bindItemInteractionBehaviourToDropdown (dropdown) {
632
646
  }
633
647
  };
634
648
 
635
- $dropdown.on('click keydown', 'a, button, [role="menuitem"], [role="menuitemcheckbox"], [role="checkbox"], [role="menuitemradio"], [role="radio"]', function (e) {
636
- if (!belongsToDropdown(e.target)) {
637
- return;
638
- }
639
- const item = e.currentTarget;
640
- const eventKeyCode = e.keyCode;
641
- const isEnter = eventKeyCode === keyCode.ENTER;
642
- const isSpace = eventKeyCode === keyCode.SPACE;
649
+ $dropdown.on(
650
+ 'click keydown',
651
+ 'a, button, [role="menuitem"], [role="menuitemcheckbox"], [role="checkbox"], [role="menuitemradio"], [role="radio"]',
652
+ function (e) {
653
+ if (!belongsToDropdown(e.target)) {
654
+ return;
655
+ }
656
+ const item = e.currentTarget;
657
+ const eventKeyCode = e.keyCode;
658
+ const isEnter = eventKeyCode === keyCode.ENTER;
659
+ const isSpace = eventKeyCode === keyCode.SPACE;
643
660
 
644
- // AUI-4283: Accessibility - need to ignore enter on links/buttons so
645
- // that the dropdown remains visible to allow the click event to eventually fire.
646
- const itemIgnoresEnter = isEnter && $(item).is('a[href], button');
661
+ // AUI-4283: Accessibility - need to ignore enter on links/buttons so
662
+ // that the dropdown remains visible to allow the click event to eventually fire.
663
+ const itemIgnoresEnter = isEnter && $(item).is('a[href], button');
647
664
 
648
- if (!itemIgnoresEnter && (e.type === 'click' || isEnter || isSpace)) {
649
- hideIfNotSubmenuAndNotInteractive(e);
665
+ if (!itemIgnoresEnter && (e.type === 'click' || isEnter || isSpace)) {
666
+ hideIfNotSubmenuAndNotInteractive(e);
667
+ }
650
668
  }
651
- });
669
+ );
652
670
 
653
671
  // close a submenus when the mouse moves over items other than its trigger
654
- $dropdown.on('mouseenter', 'a, button, [role="menuitem"], [role="menuitemcheckbox"], [role="checkbox"], [role="menuitemradio"], [role="radio"]', function (e) {
655
- if (!belongsToDropdown(e.target)) {
656
- return;
657
- }
658
- var item = e.currentTarget;
659
- var hasSubmenu = item.hasSubmenu && item.hasSubmenu();
672
+ $dropdown.on(
673
+ 'mouseenter',
674
+ 'a, button, [role="menuitem"], [role="menuitemcheckbox"], [role="checkbox"], [role="menuitemradio"], [role="radio"]',
675
+ function (e) {
676
+ if (!belongsToDropdown(e.target)) {
677
+ return;
678
+ }
679
+ var item = e.currentTarget;
680
+ var hasSubmenu = item.hasSubmenu && item.hasSubmenu();
660
681
 
661
- if (!e.isDefaultPrevented() && !hasSubmenu) {
662
- var maybeALayer = layer(dropdown).above();
682
+ if (!e.isDefaultPrevented() && !hasSubmenu) {
683
+ var maybeALayer = layer(dropdown).above();
663
684
 
664
- if (maybeALayer) {
665
- layer(maybeALayer).hide();
685
+ if (maybeALayer) {
686
+ layer(maybeALayer).hide();
687
+ }
666
688
  }
667
689
  }
668
- });
690
+ );
669
691
  }
670
692
 
671
- $(window).on('resize', debounce(function () {
672
- $('.aui-dropdown2').each(function (index, dropdown) {
673
- skate.init(dropdown);
674
- if (dropdown.isVisible()){
675
- dropdown.hide();
676
- }
677
- });
678
- }, 1000, true));
693
+ $(window).on(
694
+ 'resize',
695
+ debounce(
696
+ function () {
697
+ $('.aui-dropdown2').each(function (index, dropdown) {
698
+ skate.init(dropdown);
699
+ if (dropdown.isVisible()) {
700
+ dropdown.hide();
701
+ }
702
+ });
703
+ },
704
+ 1000,
705
+ true
706
+ )
707
+ );
679
708
 
680
709
  // Dropdowns
681
710
  // ---------
682
711
 
683
- function dropdownCreated (dropdown) {
712
+ function dropdownCreated(dropdown) {
684
713
  dropdown.classList.add('aui-dropdown2');
685
- dropdown.setAttribute('tabindex','-1');
714
+ dropdown.setAttribute('tabindex', '-1');
686
715
 
687
716
  if (dropdown.hasAttribute('data-container')) {
688
- dropdown.setAttribute('data-aui-alignment-container', dropdown.getAttribute('data-container'));
717
+ dropdown.setAttribute(
718
+ 'data-aui-alignment-container',
719
+ dropdown.getAttribute('data-container')
720
+ );
689
721
  dropdown.removeAttribute('data-container');
690
722
  }
691
723
 
@@ -724,9 +756,13 @@ function dropdownCreated (dropdown) {
724
756
 
725
757
  if (this.isEnabled() && this.isChecked() === false) {
726
758
  // toggle the checked state
727
- $(radio).closest('ul,[role=group]').find('.aui-dropdown2-checked').not(this).each(function () {
728
- this.uncheck();
729
- });
759
+ $(radio)
760
+ .closest('ul,[role=group]')
761
+ .find('.aui-dropdown2-checked')
762
+ .not(this)
763
+ .each(function () {
764
+ this.uncheck();
765
+ });
730
766
  radio.check();
731
767
  }
732
768
  }
@@ -836,7 +872,7 @@ var dropdownPrototype = {
836
872
  */
837
873
  isVisible: function () {
838
874
  return layer(this).isVisible();
839
- }
875
+ },
840
876
  };
841
877
 
842
878
  // Web component API for dropdowns
@@ -852,7 +888,7 @@ var disabledAttributeHandler = {
852
888
  var a = element.children[0];
853
889
  a.setAttribute('aria-disabled', 'false');
854
890
  a.classList.remove('disabled', 'aui-dropdown2-disabled');
855
- }
891
+ },
856
892
  };
857
893
 
858
894
  var interactiveAttributeHandler = {
@@ -863,7 +899,7 @@ var interactiveAttributeHandler = {
863
899
  removed: function (element) {
864
900
  var a = element.children[0];
865
901
  a.classList.remove('interactive', 'aui-dropdown2-interactive');
866
- }
902
+ },
867
903
  };
868
904
 
869
905
  var checkedAttributeHandler = {
@@ -871,14 +907,14 @@ var checkedAttributeHandler = {
871
907
  var a = element.children[0];
872
908
  a.classList.add('checked', 'aui-dropdown2-checked');
873
909
  a.setAttribute('aria-checked', true);
874
- element.dispatchEvent(new CustomEvent('change', {bubbles: true}));
910
+ element.dispatchEvent(new CustomEvent('change', { bubbles: true }));
875
911
  },
876
912
  removed: function (element) {
877
913
  var a = element.children[0];
878
914
  a.classList.remove('checked', 'aui-dropdown2-checked');
879
915
  a.setAttribute('aria-checked', false);
880
- element.dispatchEvent(new CustomEvent('change', {bubbles: true}));
881
- }
916
+ element.dispatchEvent(new CustomEvent('change', { bubbles: true }));
917
+ },
882
918
  };
883
919
 
884
920
  var hiddenAttributeHandler = {
@@ -887,10 +923,10 @@ var hiddenAttributeHandler = {
887
923
  },
888
924
  removed: function (element) {
889
925
  disabledAttributeHandler.removed(element);
890
- }
926
+ },
891
927
  };
892
928
 
893
- var stringAttributeHandlerGenerator = function(attrName) {
929
+ var stringAttributeHandlerGenerator = function (attrName) {
894
930
  return {
895
931
  fallback: function (element, change) {
896
932
  var a = element.children[0];
@@ -899,25 +935,26 @@ var stringAttributeHandlerGenerator = function(attrName) {
899
935
  removed: function (element) {
900
936
  var a = element.children[0];
901
937
  a.removeAttribute(attrName);
902
- }
938
+ },
903
939
  };
904
940
  };
905
941
 
906
942
  const convertCssClassesToArray = function (spaceDelimitedClasses = '') {
907
- return spaceDelimitedClasses.split(' ').map(str => str.trim()).filter(x => x);
908
- }
943
+ return spaceDelimitedClasses
944
+ .split(' ')
945
+ .map((str) => str.trim())
946
+ .filter((x) => x);
947
+ };
909
948
 
910
949
  const ItemLinkEl = skate('aui-item-link', {
911
- template: template(
912
- '<a role="menuitem" tabindex="-1"><content></content></a>'
913
- ),
950
+ template: template('<a role="menuitem" tabindex="-1"><content></content></a>'),
914
951
  attributes: {
915
- disabled: disabledAttributeHandler,
916
- interactive: interactiveAttributeHandler,
917
- hidden: hiddenAttributeHandler,
918
- href: stringAttributeHandlerGenerator('href'),
952
+ 'disabled': disabledAttributeHandler,
953
+ 'interactive': interactiveAttributeHandler,
954
+ 'hidden': hiddenAttributeHandler,
955
+ 'href': stringAttributeHandlerGenerator('href'),
919
956
  'item-id': stringAttributeHandlerGenerator('id'),
920
- for: {
957
+ 'for': {
921
958
  created: function (element) {
922
959
  var anchor = element.children[0];
923
960
  anchor.setAttribute('aria-controls', element.getAttribute('for'));
@@ -931,7 +968,7 @@ const ItemLinkEl = skate('aui-item-link', {
931
968
  var anchor = element.children[0];
932
969
  anchor.removeAttribute('aria-controls');
933
970
  $(anchor).removeClass('aui-dropdown2-sub-trigger');
934
- }
971
+ },
935
972
  },
936
973
  'extra-classes': function (element, change) {
937
974
  const anchor = element.children[0];
@@ -945,17 +982,17 @@ const ItemLinkEl = skate('aui-item-link', {
945
982
  },
946
983
  });
947
984
 
948
- const [ItemCheckboxEl, ItemRadioEl] = ['checkbox', 'radio'].map(type => {
985
+ const [ItemCheckboxEl, ItemRadioEl] = ['checkbox', 'radio'].map((type) => {
949
986
  return skate(`aui-item-${type}`, {
950
987
  template: template(
951
988
  `<span role="${type}" class="aui-dropdown2-${type}" tabindex="-1"><content></content></span>`
952
989
  ),
953
990
  attributes: {
954
991
  'item-id': stringAttributeHandlerGenerator('id'),
955
- disabled: disabledAttributeHandler,
956
- interactive: interactiveAttributeHandler,
957
- checked: checkedAttributeHandler,
958
- hidden: hiddenAttributeHandler
992
+ 'disabled': disabledAttributeHandler,
993
+ 'interactive': interactiveAttributeHandler,
994
+ 'checked': checkedAttributeHandler,
995
+ 'hidden': hiddenAttributeHandler,
959
996
  },
960
997
  });
961
998
  });
@@ -975,11 +1012,11 @@ const SectionEl = skate('aui-section', {
975
1012
  headingElement.textContent = data.newValue;
976
1013
  headingElement.id = id;
977
1014
  groupElement.setAttribute('aria-labelledby', id);
978
- }
1015
+ },
979
1016
  },
980
1017
  created: function (element) {
981
1018
  element.classList.add('aui-dropdown2-section');
982
- }
1019
+ },
983
1020
  });
984
1021
 
985
1022
  const DropdownEl = skate('aui-dropdown-menu', {
@@ -995,12 +1032,12 @@ const DropdownEl = skate('aui-dropdown-menu', {
995
1032
  ifGone(dropdown).then(() => destroyAlignment(dropdown));
996
1033
  },
997
1034
  attributes: {
998
- src: {}
1035
+ src: {},
999
1036
  },
1000
1037
  prototype: dropdownPrototype,
1001
1038
  events: {
1002
- 'aui-layer-show': loadContentWhenMenuShown
1003
- }
1039
+ 'aui-layer-show': loadContentWhenMenuShown,
1040
+ },
1004
1041
  });
1005
1042
 
1006
1043
  // Legacy dropdown inits
@@ -1009,19 +1046,19 @@ const DropdownEl = skate('aui-dropdown-menu', {
1009
1046
  skate('aui-dropdown2', {
1010
1047
  type: skate.type.CLASSNAME,
1011
1048
  created: dropdownCreated,
1012
- prototype: dropdownPrototype
1049
+ prototype: dropdownPrototype,
1013
1050
  });
1014
1051
 
1015
1052
  skate('data-aui-dropdown2', {
1016
1053
  type: skate.type.ATTRIBUTE,
1017
1054
  created: dropdownCreated,
1018
- prototype: dropdownPrototype
1055
+ prototype: dropdownPrototype,
1019
1056
  });
1020
1057
 
1021
1058
  skate('aui-dropdown2-trigger', {
1022
1059
  type: skate.type.CLASSNAME,
1023
1060
  created: triggerCreated,
1024
- prototype: triggerPrototype
1061
+ prototype: triggerPrototype,
1025
1062
  });
1026
1063
 
1027
1064
  skate('aui-dropdown2-sub-trigger', {
@@ -1029,22 +1066,21 @@ skate('aui-dropdown2-sub-trigger', {
1029
1066
  created: function (trigger) {
1030
1067
  trigger.classList.add('aui-dropdown2-trigger');
1031
1068
  skate.init(trigger);
1032
- }
1069
+ },
1033
1070
  });
1034
1071
 
1035
1072
  // Checkboxes and radios
1036
1073
  // ---------------------
1037
- ['checkbox', 'radio'].map(type => {
1074
+ ['checkbox', 'radio'].map((type) => {
1038
1075
  return skate(`aui-dropdown2-${type}`, {
1039
1076
  type: skate.type.CLASSNAME,
1040
1077
 
1041
1078
  created: function (checkbox) {
1042
1079
  // determine checked state based on any one of three attributes, then sync all of them.
1043
- const checked = (
1080
+ const checked =
1044
1081
  checkbox.getAttribute('aria-checked') === 'true' ||
1045
1082
  checkbox.classList.contains('checked') ||
1046
- checkbox.classList.contains('aui-dropdown2-checked')
1047
- );
1083
+ checkbox.classList.contains('aui-dropdown2-checked');
1048
1084
  checkbox.classList[checked ? 'add' : 'remove']('checked', 'aui-dropdown2-checked');
1049
1085
  checkbox.setAttribute('aria-checked', checked);
1050
1086
 
@@ -1053,7 +1089,7 @@ skate('aui-dropdown2-sub-trigger', {
1053
1089
 
1054
1090
  // swap from the "menuitemX" role to plain role for VoiceOver
1055
1091
  if (supportsVoiceOver()) {
1056
- checkbox.setAttribute('role',type);
1092
+ checkbox.setAttribute('role', type);
1057
1093
  }
1058
1094
  },
1059
1095
 
@@ -1088,15 +1124,9 @@ skate('aui-dropdown2-sub-trigger', {
1088
1124
  .attr('aria-checked', 'true')
1089
1125
  .addClass('checked aui-dropdown2-checked')
1090
1126
  .trigger('aui-dropdown2-item-check');
1091
- }
1092
- }
1127
+ },
1128
+ },
1093
1129
  });
1094
- })
1095
-
1096
- export {
1097
- DropdownEl,
1098
- ItemLinkEl,
1099
- ItemRadioEl,
1100
- ItemCheckboxEl,
1101
- SectionEl,
1102
- };
1130
+ });
1131
+
1132
+ export { DropdownEl, ItemLinkEl, ItemRadioEl, ItemCheckboxEl, SectionEl };