@oat-sa/tao-core-ui 1.58.1 → 1.58.2

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 (233) hide show
  1. package/dist/actionbar.js +386 -395
  2. package/dist/adder.js +21 -19
  3. package/dist/animable/absorbable/absorbable.js +204 -213
  4. package/dist/animable/absorbable/css/absorb.css +1 -0
  5. package/dist/animable/absorbable/css/absorb.css.map +1 -1
  6. package/dist/animable/pulsable/pulsable.js +168 -177
  7. package/dist/autocomplete/css/autocomplete.css +1 -0
  8. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  9. package/dist/autocomplete.js +68 -66
  10. package/dist/badge/badge.js +188 -197
  11. package/dist/badge/css/badge.css +1 -0
  12. package/dist/badge/css/badge.css.map +1 -1
  13. package/dist/breadcrumbs.js +275 -284
  14. package/dist/btngrouper.js +5 -5
  15. package/dist/bulkActionPopup.js +490 -495
  16. package/dist/button.js +283 -291
  17. package/dist/cascadingComboBox.js +249 -258
  18. package/dist/ckeditor/ckConfigurator.js +26 -19
  19. package/dist/ckeditor/dtdHandler.js +11 -9
  20. package/dist/class/selector.js +441 -450
  21. package/dist/component/resizable.js +1 -1
  22. package/dist/component/windowed.js +285 -294
  23. package/dist/component.js +419 -428
  24. package/dist/contextualPopup.js +417 -426
  25. package/dist/dashboard.js +300 -309
  26. package/dist/datalist.js +753 -762
  27. package/dist/datatable/filterStrategy/multiple.js +1 -1
  28. package/dist/datatable/filterStrategy/single.js +1 -1
  29. package/dist/datatable.js +1527 -1550
  30. package/dist/dateRange/dateRange.js +393 -402
  31. package/dist/datetime/picker.js +665 -672
  32. package/dist/deleter.js +368 -377
  33. package/dist/destination/selector.js +286 -295
  34. package/dist/dialog/alert.js +3 -3
  35. package/dist/dialog/confirm.js +1 -1
  36. package/dist/dialog/confirmDelete.js +216 -225
  37. package/dist/dialog.js +650 -654
  38. package/dist/disabler.js +8 -8
  39. package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +166 -175
  40. package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +518 -527
  41. package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +380 -389
  42. package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +539 -548
  43. package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +369 -378
  44. package/dist/documentViewer/providers/pdfViewer.js +184 -193
  45. package/dist/documentViewer.js +292 -301
  46. package/dist/dropdown.js +383 -392
  47. package/dist/durationer.js +5 -5
  48. package/dist/dynamicComponent.js +597 -598
  49. package/dist/feedback.js +356 -362
  50. package/dist/figure/FigureStateActive.js +117 -108
  51. package/dist/filesender.js +2 -2
  52. package/dist/filter.js +230 -239
  53. package/dist/form/dropdownForm.js +355 -357
  54. package/dist/form/form.js +919 -690
  55. package/dist/form/simpleForm.js +1 -1
  56. package/dist/form/validator/renderer.js +233 -235
  57. package/dist/form/validator/validator.js +257 -189
  58. package/dist/form/widget/definitions.js +1 -1
  59. package/dist/form/widget/providers/checkBox.js +254 -259
  60. package/dist/form/widget/providers/comboBox.js +187 -192
  61. package/dist/form/widget/providers/default.js +8 -9
  62. package/dist/form/widget/providers/hidden.js +170 -179
  63. package/dist/form/widget/providers/hiddenBox.js +262 -267
  64. package/dist/form/widget/providers/radioBox.js +216 -225
  65. package/dist/form/widget/providers/textArea.js +187 -196
  66. package/dist/form/widget/providers/textBox.js +2 -3
  67. package/dist/form/widget/widget.js +473 -475
  68. package/dist/formValidator/formValidator.js +1 -1
  69. package/dist/formValidator/highlighters/message.js +1 -1
  70. package/dist/generis/form/form.js +314 -323
  71. package/dist/generis/validator/validator.js +209 -218
  72. package/dist/generis/widget/checkBox/checkBox.js +218 -227
  73. package/dist/generis/widget/comboBox/comboBox.js +179 -188
  74. package/dist/generis/widget/hiddenBox/hiddenBox.js +220 -229
  75. package/dist/generis/widget/textBox/textBox.js +169 -178
  76. package/dist/generis/widget/widget.js +246 -255
  77. package/dist/groupedComboBox.js +222 -231
  78. package/dist/groupvalidator.js +2 -2
  79. package/dist/highlighter.js +967 -958
  80. package/dist/image/ImgStateActive/helper.js +7 -5
  81. package/dist/image/ImgStateActive/initHelper.js +49 -43
  82. package/dist/image/ImgStateActive/initMediaEditor.js +24 -20
  83. package/dist/image/ImgStateActive/mediaSizer.js +14 -12
  84. package/dist/image/ImgStateActive.js +72 -70
  85. package/dist/incrementer.js +6 -6
  86. package/dist/inplacer.js +6 -6
  87. package/dist/itemButtonList/css/item-button-list.css +1 -0
  88. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  89. package/dist/itemButtonList.js +439 -435
  90. package/dist/keyNavigation/navigableDomElement.js +51 -38
  91. package/dist/keyNavigation/navigator.js +85 -70
  92. package/dist/listbox.js +460 -469
  93. package/dist/liststyler.js +8 -8
  94. package/dist/loadingButton/loadingButton.js +209 -218
  95. package/dist/lock.js +476 -485
  96. package/dist/login/login.js +475 -484
  97. package/dist/maths/calculator/basicCalculator.js +235 -244
  98. package/dist/maths/calculator/calculatorComponent.js +3 -3
  99. package/dist/maths/calculator/core/board.js +772 -781
  100. package/dist/maths/calculator/core/expression.js +476 -485
  101. package/dist/maths/calculator/core/labels.js +228 -237
  102. package/dist/maths/calculator/core/tokenizer.js +1 -1
  103. package/dist/maths/calculator/core/tokens.js +163 -170
  104. package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +244 -253
  105. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +279 -288
  106. package/dist/maths/calculator/scientificCalculator.js +327 -336
  107. package/dist/mediaEditor/mediaEditorComponent.js +238 -245
  108. package/dist/mediaEditor/plugins/mediaAlignment/helper.js +7 -7
  109. package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +229 -235
  110. package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +580 -589
  111. package/dist/mediaplayer/players/html5.js +666 -675
  112. package/dist/mediaplayer/players/youtube.js +419 -424
  113. package/dist/mediaplayer/support.js +11 -10
  114. package/dist/mediaplayer/utils/reminder.js +14 -13
  115. package/dist/mediaplayer/utils/timeObserver.js +10 -11
  116. package/dist/mediaplayer/youtubeManager.js +164 -145
  117. package/dist/mediaplayer.js +1565 -1520
  118. package/dist/mediasizer.js +669 -678
  119. package/dist/modal.js +10 -17
  120. package/dist/pageSizeSelector.js +219 -228
  121. package/dist/pagination/providers/pages.js +280 -289
  122. package/dist/pagination/providers/simple.js +192 -201
  123. package/dist/previewer.js +30 -30
  124. package/dist/progressbar.js +4 -4
  125. package/dist/report.js +347 -356
  126. package/dist/resource/filters.js +271 -280
  127. package/dist/resource/list.js +1264 -1273
  128. package/dist/resource/selector.js +865 -874
  129. package/dist/resource/tree.js +1483 -1492
  130. package/dist/resourcemgr/fileBrowser.js +564 -569
  131. package/dist/resourcemgr/filePreview.js +16 -16
  132. package/dist/resourcemgr/fileSelector.js +515 -524
  133. package/dist/resourcemgr/util/updatePermissions.js +2 -2
  134. package/dist/resourcemgr.js +306 -315
  135. package/dist/searchModal/advancedSearch.js +796 -767
  136. package/dist/searchModal.js +114 -91
  137. package/dist/switch/switch.js +298 -307
  138. package/dist/tabs.js +598 -575
  139. package/dist/taskQueue/status.js +312 -321
  140. package/dist/taskQueue/table.js +375 -384
  141. package/dist/taskQueue/taskQueueModel.js +488 -472
  142. package/dist/taskQueueButton/taskable.js +264 -273
  143. package/dist/taskQueueButton/treeButton.js +189 -198
  144. package/dist/themeLoader.js +24 -23
  145. package/dist/themes.js +1 -1
  146. package/dist/toggler.js +3 -3
  147. package/dist/tooltip.js +295 -304
  148. package/dist/transformer.js +2 -2
  149. package/dist/tristateCheckboxGroup.js +311 -320
  150. package/dist/uploader.js +687 -696
  151. package/dist/validator/Report.js +1 -1
  152. package/dist/validator/Validator.js +3 -3
  153. package/dist/validator/validators.js +9 -9
  154. package/dist/validator.js +240 -230
  155. package/dist/waitForMedia.js +1 -1
  156. package/package.json +3 -3
  157. package/src/animable/absorbable/css/absorb.css +1 -0
  158. package/src/animable/absorbable/css/absorb.css.map +1 -1
  159. package/src/autocomplete/css/autocomplete.css +1 -0
  160. package/src/autocomplete/css/autocomplete.css.map +1 -1
  161. package/src/badge/css/badge.css +1 -0
  162. package/src/badge/css/badge.css.map +1 -1
  163. package/src/ckeditor/ckConfigurator.js +4 -0
  164. package/src/itemButtonList/css/item-button-list.css +1 -0
  165. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  166. package/src/.DS_Store +0 -0
  167. package/src/css/basic.css +0 -7826
  168. package/src/css/basic.css.map +0 -1
  169. package/src/css/ckeditor/skins/tao/css/dialog.css +0 -950
  170. package/src/css/ckeditor/skins/tao/css/dialog.css.map +0 -1
  171. package/src/css/ckeditor/skins/tao/css/editor.css +0 -1850
  172. package/src/css/ckeditor/skins/tao/css/editor.css.map +0 -1
  173. package/src/scss/.DS_Store +0 -0
  174. package/src/scss/basic.scss +0 -16
  175. package/src/scss/ckeditor/skins/tao/scss/dialog.scss +0 -763
  176. package/src/scss/ckeditor/skins/tao/scss/editor.scss +0 -111
  177. package/src/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +0 -59
  178. package/src/scss/ckeditor/skins/tao/scss/inc/_colorpanel.scss +0 -118
  179. package/src/scss/ckeditor/skins/tao/scss/inc/_elementspath.scss +0 -69
  180. package/src/scss/ckeditor/skins/tao/scss/inc/_mainui.scss +0 -194
  181. package/src/scss/ckeditor/skins/tao/scss/inc/_menu.scss +0 -181
  182. package/src/scss/ckeditor/skins/tao/scss/inc/_panel.scss +0 -200
  183. package/src/scss/ckeditor/skins/tao/scss/inc/_presets.scss +0 -32
  184. package/src/scss/ckeditor/skins/tao/scss/inc/_reset.scss +0 -101
  185. package/src/scss/ckeditor/skins/tao/scss/inc/_richcombo.scss +0 -213
  186. package/src/scss/ckeditor/skins/tao/scss/inc/_tao.scss +0 -59
  187. package/src/scss/ckeditor/skins/tao/scss/inc/_toolbar.scss +0 -301
  188. package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
  189. package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot.b64 +0 -1
  190. package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
  191. package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff.b64 +0 -1
  192. package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
  193. package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot.b64 +0 -1
  194. package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
  195. package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff.b64 +0 -1
  196. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot +0 -0
  197. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot.b64 +0 -1
  198. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff +0 -0
  199. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff.b64 +0 -1
  200. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
  201. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot.b64 +0 -1
  202. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
  203. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff.b64 +0 -1
  204. package/src/scss/font/tao/tao.eot +0 -0
  205. package/src/scss/font/tao/tao.svg +0 -235
  206. package/src/scss/font/tao/tao.ttf +0 -0
  207. package/src/scss/font/tao/tao.woff +0 -0
  208. package/src/scss/inc/_base.scss +0 -496
  209. package/src/scss/inc/_bootstrap.scss +0 -6
  210. package/src/scss/inc/_buttons.scss +0 -114
  211. package/src/scss/inc/_colors.scss +0 -88
  212. package/src/scss/inc/_feedback.scss +0 -150
  213. package/src/scss/inc/_flex-grid.scss +0 -15
  214. package/src/scss/inc/_fonts.scss +0 -4
  215. package/src/scss/inc/_forms.scss +0 -827
  216. package/src/scss/inc/_functions.scss +0 -283
  217. package/src/scss/inc/_grid.scss +0 -66
  218. package/src/scss/inc/_jquery.nouislider.scss +0 -254
  219. package/src/scss/inc/_normalize.scss +0 -528
  220. package/src/scss/inc/_report.scss +0 -68
  221. package/src/scss/inc/_secondary-properties.scss +0 -89
  222. package/src/scss/inc/_select2.scss +0 -634
  223. package/src/scss/inc/_toolbars.scss +0 -155
  224. package/src/scss/inc/_tooltip.scss +0 -312
  225. package/src/scss/inc/_variables.scss +0 -21
  226. package/src/scss/inc/base/_highlight.scss +0 -5
  227. package/src/scss/inc/base/_list-style.scss +0 -59
  228. package/src/scss/inc/base/_svg.scss +0 -3
  229. package/src/scss/inc/base/_table.scss +0 -63
  230. package/src/scss/inc/fonts/_source-sans-pro.scss +0 -29
  231. package/src/scss/inc/fonts/_tao-icon-classes.scss +0 -226
  232. package/src/scss/inc/fonts/_tao-icon-def.scss +0 -12
  233. package/src/scss/inc/fonts/_tao-icon-vars.scss +0 -240
@@ -23,14 +23,14 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
23
23
  * Copyright (c) 2017-2020 (original work) Open Assessment Technologies SA;
24
24
  *
25
25
  */
26
- const navigableCls = 'key-navigation-highlight';
27
- const eventNS = '.ui-key-navigator';
26
+ var navigableCls = 'key-navigation-highlight';
27
+ var eventNS = '.ui-key-navigator';
28
28
  /**
29
29
  * The list of mandatory methods a navigable element must expose.
30
30
  * @type {String[]}
31
31
  */
32
32
 
33
- const navigableApi = ['init', 'destroy', 'getType', 'getElement', 'isVisible', 'isEnabled', 'isFocused', 'blur', 'focus'];
33
+ var navigableApi = ['init', 'destroy', 'getType', 'getElement', 'isVisible', 'isEnabled', 'isFocused', 'blur', 'focus'];
34
34
  /**
35
35
  * From a dom element, create a navigable element compatible with ui/KeyNavigator/navigator
36
36
  * @param {String|Element|jQuery} element
@@ -41,9 +41,9 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
41
41
  */
42
42
 
43
43
  function navigableDomElement(element) {
44
- const $element = $(element);
45
- const shortcuts = shortcutRegistry($element);
46
- let initialTabIndex = null;
44
+ var $element = $(element);
45
+ var shortcuts = shortcutRegistry($element);
46
+ var initialTabIndex = null;
47
47
  /**
48
48
  * @typedef navigableDomElement
49
49
  */
@@ -54,21 +54,25 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
54
54
  * @param {Boolean} propagateTab - allows the key event to propagate when the Tab key is pressed.
55
55
  * @returns {navigableDomElement}
56
56
  */
57
- init() {
58
- let {
59
- propagateTab = false
60
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
57
+ init: function init() {
58
+ var _this = this;
61
59
 
62
- const keyboard = (key, el) => {
60
+ var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
61
+ _ref$propagateTab = _ref.propagateTab,
62
+ propagateTab = _ref$propagateTab === void 0 ? false : _ref$propagateTab;
63
+
64
+ var keyboard = function keyboard(key, el) {
63
65
  /**
64
66
  * @event key
65
67
  * @param {String} key
66
68
  * @param {Element} el
67
69
  */
68
- this.trigger('key', key, el);
70
+ _this.trigger('key', key, el);
69
71
  };
70
72
 
71
- const isInput = $el => $el.is(':text,textarea');
73
+ var isInput = function isInput($el) {
74
+ return $el.is(':text,textarea');
75
+ };
72
76
 
73
77
  if (!$element.length) {
74
78
  throw new TypeError('dom element does not exist');
@@ -76,21 +80,21 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
76
80
 
77
81
  initialTabIndex = $element.attr('tabindex'); // add a tabindex to enable focusing, this tabindex is not actually used in tabbing order
78
82
 
79
- $element.addClass(navigableCls).attr('tabindex', -1).on(`focus${eventNS}`, e => {
83
+ $element.addClass(navigableCls).attr('tabindex', -1).on("focus".concat(eventNS), function (e) {
80
84
  /**
81
85
  * @event focus
82
86
  * @param {Element} el
83
87
  */
84
- this.trigger('focus', e.target);
85
- }).on(`blur${eventNS}`, e => {
88
+ _this.trigger('focus', e.target);
89
+ }).on("blur".concat(eventNS), function (e) {
86
90
  /**
87
91
  * @event blur
88
92
  * @param {Element} el
89
93
  */
90
- this.trigger('blur', e.target);
94
+ _this.trigger('blur', e.target);
91
95
  }) // requires a keyup event to make unselecting radio button work with space bar
92
- .on(`keyup${eventNS}`, e => {
93
- const keyCode = e.keyCode ? e.keyCode : e.charCode;
96
+ .on("keyup".concat(eventNS), function (e) {
97
+ var keyCode = e.keyCode ? e.keyCode : e.charCode;
94
98
 
95
99
  if (keyCode === 32) {
96
100
  // if the inner element is an input we let the space work
@@ -103,11 +107,13 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
103
107
  }
104
108
  }); // init standard key bindings
105
109
 
106
- shortcuts.clear().add('tab shift+tab', (e, key) => keyboard(key, e.target), {
110
+ shortcuts.clear().add('tab shift+tab', function (e, key) {
111
+ return keyboard(key, e.target);
112
+ }, {
107
113
  propagate: !!propagateTab,
108
114
  prevent: true
109
- }).add('up down left right', (e, key) => {
110
- const $target = $(e.target);
115
+ }).add('up down left right', function (e, key) {
116
+ var $target = $(e.target);
111
117
 
112
118
  if (!isInput($target)) {
113
119
  if (!$target.is('img') && !$target.hasClass('key-navigation-scrollable') && !($target.hasClass('key-navigation-scrollable-up') && (key === 'up' || key === 'left')) && !($target.hasClass('key-navigation-scrollable-down') && (key === 'down' || key === 'right'))) {
@@ -119,7 +125,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
119
125
  }
120
126
  }, {
121
127
  propagate: false
122
- }).add('enter', e => {
128
+ }).add('enter', function (e) {
123
129
  if (!isInput($(e.target))) {
124
130
  if (!e.target.classList.contains('key-navigation-actionable')) {
125
131
  //prevent activating the element when typing a text
@@ -138,7 +144,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
138
144
  * Destroys the navigableDomElement instance
139
145
  * @returns {navigableDomElement}
140
146
  */
141
- destroy() {
147
+ destroy: function destroy() {
142
148
  $element.removeClass(navigableCls).off(eventNS);
143
149
 
144
150
  if (initialTabIndex || initialTabIndex === 0) {
@@ -160,7 +166,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
160
166
  * Gets the type of navigable element
161
167
  * @returns {String}
162
168
  */
163
- getType() {
169
+ getType: function getType() {
164
170
  return 'element';
165
171
  },
166
172
 
@@ -168,7 +174,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
168
174
  * Gets the dom element
169
175
  * @returns {jQuery}
170
176
  */
171
- getElement() {
177
+ getElement: function getElement() {
172
178
  return $element;
173
179
  },
174
180
 
@@ -176,7 +182,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
176
182
  * Checks if the navigable element is visible
177
183
  * @returns {Boolean}
178
184
  */
179
- isVisible() {
185
+ isVisible: function isVisible() {
180
186
  return $element.is(':visible');
181
187
  },
182
188
 
@@ -184,7 +190,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
184
190
  * Checks if the navigable element is enabled
185
191
  * @returns {Boolean}
186
192
  */
187
- isEnabled() {
193
+ isEnabled: function isEnabled() {
188
194
  return !$element.is(':disabled');
189
195
  },
190
196
 
@@ -192,8 +198,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
192
198
  * Checks if the navigable element is focused
193
199
  * @returns {Boolean}
194
200
  */
195
- isFocused() {
196
- const el = $element.get(0);
201
+ isFocused: function isFocused() {
202
+ var el = $element.get(0);
197
203
  return document.activeElement && el === document.activeElement;
198
204
  },
199
205
 
@@ -201,7 +207,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
201
207
  * Removes the focus from the navigable element
202
208
  * @returns {navigableDomElement}
203
209
  */
204
- blur() {
210
+ blur: function blur() {
205
211
  $element.blur();
206
212
  return this;
207
213
  },
@@ -210,11 +216,10 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
210
216
  * Sets the focus on the navigable element
211
217
  * @returns {navigableDomElement}
212
218
  */
213
- focus() {
219
+ focus: function focus() {
214
220
  $element.focus();
215
221
  return this;
216
222
  }
217
-
218
223
  });
219
224
  }
220
225
  /**
@@ -223,14 +228,18 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
223
228
  * @returns {Array}
224
229
  */
225
230
 
226
- navigableDomElement.createFromDoms = $elements => {
227
- const list = [];
231
+ navigableDomElement.createFromDoms = function ($elements) {
232
+ var list = [];
228
233
 
229
- const addElement = element => list.push(navigableDomElement(element));
234
+ var addElement = function addElement(element) {
235
+ return list.push(navigableDomElement(element));
236
+ };
230
237
 
231
238
  if ($elements) {
232
239
  if ($elements instanceof $) {
233
- $elements.each((i, element) => addElement(element));
240
+ $elements.each(function (i, element) {
241
+ return addElement(element);
242
+ });
234
243
  } else {
235
244
  _.forEach($elements, addElement);
236
245
  }
@@ -246,7 +255,11 @@ define(['jquery', 'lodash', 'core/eventifier', 'util/shortcut/registry'], functi
246
255
  */
247
256
 
248
257
 
249
- navigableDomElement.isNavigableElement = navigable => !!navigable && navigableApi.every(n => 'function' === typeof navigable[n]);
258
+ navigableDomElement.isNavigableElement = function (navigable) {
259
+ return !!navigable && navigableApi.every(function (n) {
260
+ return 'function' === typeof navigable[n];
261
+ });
262
+ };
250
263
 
251
264
  return navigableDomElement;
252
265
 
@@ -23,7 +23,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
23
23
  * Copyright (c) 2017-2020 (original work) Open Assessment Technologies SA;
24
24
  *
25
25
  */
26
- const defaults = {
26
+ var defaults = {
27
27
  defaultPosition: -1,
28
28
  keepState: false,
29
29
  loop: false,
@@ -44,26 +44,28 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
44
44
  */
45
45
 
46
46
  function keyNavigatorFactory(config) {
47
- const navigatorConfig = Object.assign({}, defaults, config || {});
47
+ var navigatorConfig = Object.assign({}, defaults, config || {});
48
48
 
49
- const id = navigatorConfig.id || _.uniqueId('navigator_');
49
+ var id = navigatorConfig.id || _.uniqueId('navigator_');
50
50
 
51
- const $group = navigatorConfig.group && $(navigatorConfig.group).addClass('key-navigation-group').attr('data-navigation-id', id);
51
+ var $group = navigatorConfig.group && $(navigatorConfig.group).addClass('key-navigation-group').attr('data-navigation-id', id);
52
52
 
53
53
  if (navigatorConfig.group && (!$group.length || !$.contains(document.body, $group.get(0)))) {
54
54
  throw new TypeError('group element does not exist');
55
55
  }
56
56
 
57
- const navigableElements = navigatorConfig.elements || [];
58
- let lastPosition = -1;
59
- let focusOutObserver;
57
+ var navigableElements = navigatorConfig.elements || [];
58
+ var lastPosition = -1;
59
+ var focusOutObserver;
60
60
  /**
61
61
  * Checks if the navigable element is available
62
62
  * @param {navigableDomElement} navigable
63
63
  * @returns {Boolean}
64
64
  */
65
65
 
66
- const isNavigableAvailable = navigable => navigable && navigable.isVisible() && navigable.isEnabled();
66
+ var isNavigableAvailable = function isNavigableAvailable(navigable) {
67
+ return navigable && navigable.isVisible() && navigable.isEnabled();
68
+ };
67
69
  /**
68
70
  * Checks if the navigable element is focused
69
71
  * @param {navigableDomElement} navigable
@@ -71,7 +73,9 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
71
73
  */
72
74
 
73
75
 
74
- const isNavigableFocused = navigable => isNavigableAvailable(navigable) && navigable.isFocused();
76
+ var isNavigableFocused = function isNavigableFocused(navigable) {
77
+ return isNavigableAvailable(navigable) && navigable.isFocused();
78
+ };
75
79
  /**
76
80
  * Gets the closest allowed position to the right
77
81
  *
@@ -80,8 +84,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
80
84
  */
81
85
 
82
86
 
83
- const getClosestPositionRight = fromPosition => {
84
- for (let pos = fromPosition; pos < navigableElements.length; pos++) {
87
+ var getClosestPositionRight = function getClosestPositionRight(fromPosition) {
88
+ for (var pos = fromPosition; pos < navigableElements.length; pos++) {
85
89
  if (isNavigableAvailable(navigableElements[pos])) {
86
90
  return pos;
87
91
  }
@@ -97,8 +101,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
97
101
  */
98
102
 
99
103
 
100
- const getClosestPositionLeft = fromPosition => {
101
- for (let pos = fromPosition; pos >= 0; pos--) {
104
+ var getClosestPositionLeft = function getClosestPositionLeft(fromPosition) {
105
+ for (var pos = fromPosition; pos >= 0; pos--) {
102
106
  if (isNavigableAvailable(navigableElements[pos])) {
103
107
  return pos;
104
108
  }
@@ -113,29 +117,31 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
113
117
  */
114
118
 
115
119
 
116
- const keyNavigator = eventifier({
120
+ var keyNavigator = eventifier({
117
121
  /**
118
122
  * Setups the navigator
119
123
  * @returns {keyNavigator}
120
124
  */
121
- init() {
125
+ init: function init() {
126
+ var _this = this;
127
+
122
128
  if ($group) {
123
129
  //add the focusin and focus out class for group highlighting
124
- $group.on(`focusin.${this.getId()}`, () => {
125
- if (this.isFocused()) {
130
+ $group.on("focusin.".concat(this.getId()), function () {
131
+ if (_this.isFocused()) {
126
132
  $group.addClass('focusin');
127
133
  }
128
- }).on(`focusout.${this.getId()}`, () => {
129
- if (!this.isFocused()) {
134
+ }).on("focusout.".concat(this.getId()), function () {
135
+ if (!_this.isFocused()) {
130
136
  $group.removeClass('focusin');
131
137
  }
132
138
  });
133
- focusOutObserver = new MutationObserver(() => {
134
- if (!this.isVisible() && $group.hasClass('focusin')) {
139
+ focusOutObserver = new MutationObserver(function () {
140
+ if (!_this.isVisible() && $group.hasClass('focusin')) {
135
141
  $group.removeClass('focusin');
136
142
  }
137
143
  });
138
- $group.each(index => {
144
+ $group.each(function (index) {
139
145
  focusOutObserver.observe($group.get(index), {
140
146
  childList: true,
141
147
  subtree: true
@@ -143,7 +149,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
143
149
  });
144
150
  }
145
151
 
146
- navigableElements.forEach(navigable => {
152
+ navigableElements.forEach(function (navigable) {
147
153
  if (!navigableDomElement.isNavigableElement(navigable)) {
148
154
  throw new TypeError('not a valid navigable element');
149
155
  }
@@ -154,13 +160,15 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
154
160
  });
155
161
  }
156
162
 
157
- navigable.off(`.${this.getId()}`).on(`key.${this.getId()}`, (key, el) => this.trigger('key', key, el)).on(`focus.${this.getId()}`, () => {
158
- lastPosition = this.getCurrentPosition();
159
- }).on(`blur.${this.getId()}`, () => {
160
- const cursor = this.getCursorAt(lastPosition);
163
+ navigable.off(".".concat(_this.getId())).on("key.".concat(_this.getId()), function (key, el) {
164
+ return _this.trigger('key', key, el);
165
+ }).on("focus.".concat(_this.getId()), function () {
166
+ lastPosition = _this.getCurrentPosition();
167
+ }).on("blur.".concat(_this.getId()), function () {
168
+ var cursor = _this.getCursorAt(lastPosition);
161
169
 
162
170
  if (cursor.navigable) {
163
- this.trigger('blur', cursor);
171
+ _this.trigger('blur', cursor);
164
172
  }
165
173
  });
166
174
  });
@@ -171,17 +179,19 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
171
179
  * Destroys and cleanup
172
180
  * @returns {keyNavigator}
173
181
  */
174
- destroy() {
182
+ destroy: function destroy() {
183
+ var _this2 = this;
184
+
175
185
  if ($group) {
176
- $group.off(`.${this.getId()}`).removeClass('focusin');
186
+ $group.off(".".concat(this.getId())).removeClass('focusin');
177
187
  }
178
188
 
179
189
  if (focusOutObserver) {
180
190
  focusOutObserver.disconnect();
181
191
  }
182
192
 
183
- navigableElements.forEach(navigable => {
184
- navigable.off(`.${this.getId}`);
193
+ navigableElements.forEach(function (navigable) {
194
+ navigable.off(".".concat(_this2.getId));
185
195
 
186
196
  if (navigable.getType() === 'element') {
187
197
  navigable.destroy();
@@ -195,7 +205,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
195
205
  * Gets the navigation group id
196
206
  * @returns {String}
197
207
  */
198
- getId() {
208
+ getId: function getId() {
199
209
  return id;
200
210
  },
201
211
 
@@ -203,7 +213,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
203
213
  * Gets the type of navigable element
204
214
  * @returns {String}
205
215
  */
206
- getType() {
216
+ getType: function getType() {
207
217
  return 'navigator';
208
218
  },
209
219
 
@@ -211,7 +221,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
211
221
  * Gets the defined group the navigator group belongs to
212
222
  * @returns {jQuery}
213
223
  */
214
- getElement() {
224
+ getElement: function getElement() {
215
225
  return $group;
216
226
  },
217
227
 
@@ -219,7 +229,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
219
229
  * Returns the current cursor of the navigator
220
230
  * @returns {Object}
221
231
  */
222
- getCursor() {
232
+ getCursor: function getCursor() {
223
233
  return this.getCursorAt(this.getCurrentPosition());
224
234
  },
225
235
 
@@ -228,7 +238,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
228
238
  * @param {Number} position
229
239
  * @returns {navigableDomElement}
230
240
  */
231
- getNavigableAt(position) {
241
+ getNavigableAt: function getNavigableAt(position) {
232
242
  if (position >= 0 && navigableElements[position]) {
233
243
  return navigableElements[position];
234
244
  }
@@ -241,11 +251,11 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
241
251
  * @param {Number} position
242
252
  * @returns {Object}
243
253
  */
244
- getCursorAt(position) {
245
- const navigable = this.getNavigableAt(position);
254
+ getCursorAt: function getCursorAt(position) {
255
+ var navigable = this.getNavigableAt(position);
246
256
  return {
247
257
  position: navigable ? position : -1,
248
- navigable
258
+ navigable: navigable
249
259
  };
250
260
  },
251
261
 
@@ -257,9 +267,9 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
257
267
  * @fires blur on the previous cursor
258
268
  * @fires focus on the new cursor
259
269
  */
260
- setCursorAt(position) {
270
+ setCursorAt: function setCursorAt(position) {
261
271
  if (navigableElements[position]) {
262
- const cursor = this.getCursorAt(lastPosition);
272
+ var cursor = this.getCursorAt(lastPosition);
263
273
 
264
274
  if (cursor.navigable) {
265
275
  /**
@@ -269,7 +279,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
269
279
  this.trigger('blur', cursor);
270
280
  }
271
281
 
272
- const direction = position - lastPosition;
282
+ var direction = position - lastPosition;
273
283
  lastPosition = position;
274
284
  navigableElements[position].focus(direction);
275
285
  /**
@@ -287,7 +297,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
287
297
  * Returns the current position in the navigator
288
298
  * @returns {Number}
289
299
  */
290
- getCurrentPosition() {
300
+ getCurrentPosition: function getCurrentPosition() {
291
301
  if (document.activeElement) {
292
302
  return _.findIndex(navigableElements, isNavigableFocused);
293
303
  }
@@ -299,8 +309,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
299
309
  * Returns the current navigable in the navigator
300
310
  * @returns {Object}
301
311
  */
302
- getCurrentNavigable() {
303
- const position = this.getCurrentPosition();
312
+ getCurrentNavigable: function getCurrentNavigable() {
313
+ var position = this.getCurrentPosition();
304
314
 
305
315
  if (position >= 0) {
306
316
  return navigableElements[position];
@@ -313,7 +323,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
313
323
  * Returns the array of navigable objects composing the navigator
314
324
  * @returns {Array}
315
325
  */
316
- getNavigableElements() {
326
+ getNavigableElements: function getNavigableElements() {
317
327
  return navigableElements.slice();
318
328
  },
319
329
 
@@ -321,9 +331,11 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
321
331
  * Checks if the group and at least one navigable element is visible
322
332
  * @returns {boolean}
323
333
  */
324
- isVisible() {
334
+ isVisible: function isVisible() {
325
335
  if (!$group || $group.is(':visible')) {
326
- return navigableElements.some(navigable => navigable.isVisible());
336
+ return navigableElements.some(function (navigable) {
337
+ return navigable.isVisible();
338
+ });
327
339
  }
328
340
 
329
341
  return false;
@@ -333,9 +345,11 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
333
345
  * Checks if the group and at least one navigable element is enabled
334
346
  * @returns {Boolean}
335
347
  */
336
- isEnabled() {
348
+ isEnabled: function isEnabled() {
337
349
  if (!$group || !$group.is(':disabled')) {
338
- return navigableElements.some(navigable => navigable.isEnabled());
350
+ return navigableElements.some(function (navigable) {
351
+ return navigable.isEnabled();
352
+ });
339
353
  }
340
354
 
341
355
  return false;
@@ -345,9 +359,11 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
345
359
  * Checks if at least one navigable element is focused
346
360
  * @returns {Boolean}
347
361
  */
348
- isFocused() {
362
+ isFocused: function isFocused() {
349
363
  if (document.activeElement) {
350
- return navigableElements.some(navigable => navigable.isFocused());
364
+ return navigableElements.some(function (navigable) {
365
+ return navigable.isFocused();
366
+ });
351
367
  }
352
368
 
353
369
  return false;
@@ -357,7 +373,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
357
373
  * Sets the focus on the first available focusable element
358
374
  * @returns {keyNavigator}
359
375
  */
360
- first() {
376
+ first: function first() {
361
377
  this.setCursorAt(getClosestPositionRight(0));
362
378
  return this;
363
379
  },
@@ -366,7 +382,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
366
382
  * Sets the focus on the last available focusable element
367
383
  * @returns {keyNavigator}
368
384
  */
369
- last() {
385
+ last: function last() {
370
386
  this.setCursorAt(getClosestPositionLeft(navigableElements.length - 1));
371
387
  return this;
372
388
  },
@@ -378,8 +394,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
378
394
  * @fires upperbound when we cannot move further
379
395
  * @fires next when the cursor successfully moved to the next position
380
396
  */
381
- next() {
382
- let position = this.getCurrentPosition();
397
+ next: function next() {
398
+ var position = this.getCurrentPosition();
383
399
 
384
400
  if (position >= 0) {
385
401
  position = getClosestPositionRight(position + 1);
@@ -396,7 +412,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
396
412
  this.trigger('upperbound');
397
413
  }
398
414
 
399
- const cursor = this.getCursor();
415
+ var cursor = this.getCursor();
400
416
  /**
401
417
  * @event next
402
418
  * @param {Object} cursor
@@ -417,8 +433,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
417
433
  * @fires lowerbound when we cannot move lower
418
434
  * @fires previous when the cursor successfully moved to the previous position
419
435
  */
420
- previous() {
421
- let position = this.getCurrentPosition();
436
+ previous: function previous() {
437
+ var position = this.getCurrentPosition();
422
438
 
423
439
  if (position >= 0) {
424
440
  position = getClosestPositionLeft(position - 1);
@@ -435,7 +451,7 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
435
451
  this.trigger('lowerbound');
436
452
  }
437
453
 
438
- const cursor = this.getCursor();
454
+ var cursor = this.getCursor();
439
455
  /**
440
456
  * @event previous
441
457
  * @param {Object} cursor
@@ -456,8 +472,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
456
472
  * @returns {keyNavigator}
457
473
  * @fires activate
458
474
  */
459
- activate(target) {
460
- const cursor = this.getCursor();
475
+ activate: function activate(target) {
476
+ var cursor = this.getCursor();
461
477
 
462
478
  if (cursor.navigable) {
463
479
  /**
@@ -475,8 +491,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
475
491
  * Blurs the focused element, if any
476
492
  * @returns {keyNavigator}
477
493
  */
478
- blur() {
479
- const cursor = this.getCursorAt(lastPosition);
494
+ blur: function blur() {
495
+ var cursor = this.getCursorAt(lastPosition);
480
496
 
481
497
  if (cursor.navigable) {
482
498
  cursor.navigable.blur();
@@ -493,9 +509,9 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
493
509
  * A negative direction will lead to the last focusable element.
494
510
  * @returns {keyNavigator}
495
511
  */
496
- focus() {
497
- let direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
498
- let position = -1; // try to get the default position
512
+ focus: function focus() {
513
+ var direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
514
+ var position = -1; // try to get the default position
499
515
 
500
516
  if (navigatorConfig.keepState && this.getNavigableAt(lastPosition)) {
501
517
  position = lastPosition;
@@ -523,9 +539,8 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
523
539
  this.setCursorAt(getClosestPositionRight(position));
524
540
  return this;
525
541
  }
526
-
527
542
  });
528
- return keyNavigator.init().on('key', (key, el) => {
543
+ return keyNavigator.init().on('key', function (key, el) {
529
544
  if (key === 'space' || key === 'enter') {
530
545
  keyNavigator.activate(el);
531
546
  } else {