@oat-sa/tao-core-ui 1.60.2 → 1.62.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.
- package/LICENSE +339 -339
- package/README.md +23 -18
- package/dist/actionbar.js +393 -410
- package/dist/adder.js +143 -156
- package/dist/animable/absorbable/absorbable.js +208 -211
- package/dist/animable/absorbable/css/absorb.css +7 -8
- package/dist/animable/absorbable/css/absorb.css.map +1 -1
- package/dist/animable/pulsable/css/pulse.css +7 -7
- package/dist/animable/pulsable/css/pulse.css.map +1 -1
- package/dist/animable/pulsable/pulsable.js +174 -174
- package/dist/areaBroker.js +59 -72
- package/dist/autocomplete/css/autocomplete.css +7 -8
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +494 -604
- package/dist/autoscroll.js +23 -25
- package/dist/badge/badge.js +201 -199
- package/dist/badge/css/badge.css +7 -8
- package/dist/badge/css/badge.css.map +1 -1
- package/dist/breadcrumbs/css/breadcrumbs.css +7 -7
- package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
- package/dist/breadcrumbs.js +286 -285
- package/dist/btngrouper.js +83 -95
- package/dist/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/dist/bulkActionPopup.js +503 -503
- package/dist/button.js +300 -293
- package/dist/calculator/css/calculator.css +10 -10
- package/dist/calculator/css/calculator.css.map +1 -1
- package/dist/calculator.js +59 -72
- package/dist/cascadingComboBox.js +257 -256
- package/dist/ckeditor/ckConfigurator.js +130 -154
- package/dist/ckeditor/dtdHandler.js +305 -345
- package/dist/class/css/selector.css +7 -7
- package/dist/class/css/selector.css.map +1 -1
- package/dist/class/selector.js +437 -470
- package/dist/component/alignable.js +97 -121
- package/dist/component/containable.js +53 -58
- package/dist/component/css/components.css +7 -7
- package/dist/component/css/components.css.map +1 -1
- package/dist/component/css/windowComponent.css +7 -7
- package/dist/component/css/windowComponent.css.map +1 -1
- package/dist/component/draggable.js +34 -36
- package/dist/component/placeable.js +84 -102
- package/dist/component/resizable.js +79 -89
- package/dist/component/stackable.js +21 -27
- package/dist/component/windowed.js +284 -297
- package/dist/component.js +439 -467
- package/dist/container.js +79 -98
- package/dist/contextualPopup/css/contextualPopup.css +7 -7
- package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
- package/dist/contextualPopup.js +417 -436
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +302 -305
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +783 -791
- package/dist/datatable/css/datatable.css +11 -7
- package/dist/datatable/css/datatable.css.map +1 -1
- package/dist/datatable/filterStrategy/filterStrategy.js +28 -30
- package/dist/datatable/filterStrategy/multiple.js +26 -45
- package/dist/datatable/filterStrategy/single.js +28 -40
- package/dist/datatable.js +1591 -1616
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +398 -412
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +670 -703
- package/dist/deleter.js +383 -398
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +295 -293
- package/dist/dialog/alert.js +30 -32
- package/dist/dialog/confirm.js +29 -32
- package/dist/dialog/confirmDelete.js +223 -221
- package/dist/dialog.js +651 -695
- package/dist/disabler.js +108 -119
- package/dist/documentViewer/css/documentViewer.css +7 -7
- package/dist/documentViewer/css/documentViewer.css.map +1 -1
- package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +172 -169
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +32 -29
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +523 -564
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +376 -393
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +53 -68
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +517 -567
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +73 -96
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +381 -392
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +125 -152
- package/dist/documentViewer/providers/pdfViewer.js +189 -191
- package/dist/documentViewer/viewerFactory.js +76 -81
- package/dist/documentViewer.js +303 -311
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +392 -412
- package/dist/durationer.js +77 -85
- package/dist/dynamicComponent/css/dynamicComponent.css +7 -7
- package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/dist/dynamicComponent.js +595 -630
- package/dist/feedback.js +365 -375
- package/dist/figure/FigureStateActive.js +246 -296
- package/dist/filesender.js +44 -54
- package/dist/filter.js +244 -240
- package/dist/form/css/dropdownForm.css +7 -7
- package/dist/form/css/dropdownForm.css.map +1 -1
- package/dist/form/css/form.css +7 -7
- package/dist/form/css/form.css.map +1 -1
- package/dist/form/dropdownForm.js +357 -362
- package/dist/form/form.js +703 -984
- package/dist/form/simpleForm.js +74 -77
- package/dist/form/validator/css/validator.css +7 -7
- package/dist/form/validator/css/validator.css.map +1 -1
- package/dist/form/validator/renderer.js +235 -241
- package/dist/form/validator/validator.js +181 -267
- package/dist/form/widget/css/widget.css +7 -7
- package/dist/form/widget/css/widget.css.map +1 -1
- package/dist/form/widget/definitions.js +27 -28
- package/dist/form/widget/loader.js +16 -16
- package/dist/form/widget/providers/checkBox.js +257 -264
- package/dist/form/widget/providers/comboBox.js +194 -193
- package/dist/form/widget/providers/default.js +44 -50
- package/dist/form/widget/providers/hidden.js +179 -176
- package/dist/form/widget/providers/hiddenBox.js +262 -272
- package/dist/form/widget/providers/radioBox.js +222 -223
- package/dist/form/widget/providers/textArea.js +197 -193
- package/dist/form/widget/providers/textBox.js +36 -37
- package/dist/form/widget/widget.js +480 -508
- package/dist/form.js +12 -17
- package/dist/formValidator/formValidator.js +74 -91
- package/dist/formValidator/highlighters/highlighter.js +43 -51
- package/dist/formValidator/highlighters/message.js +31 -32
- package/dist/formValidator/highlighters/tooltip.js +33 -35
- package/dist/generis/form/css/form.css +7 -7
- package/dist/generis/form/css/form.css.map +1 -1
- package/dist/generis/form/form.js +323 -331
- package/dist/generis/validator/css/validator.css +7 -7
- package/dist/generis/validator/css/validator.css.map +1 -1
- package/dist/generis/validator/validator.js +215 -216
- package/dist/generis/widget/checkBox/checkBox.js +227 -225
- package/dist/generis/widget/comboBox/comboBox.js +189 -183
- package/dist/generis/widget/css/widget.css +7 -7
- package/dist/generis/widget/css/widget.css.map +1 -1
- package/dist/generis/widget/hiddenBox/hiddenBox.js +231 -232
- package/dist/generis/widget/loader.js +21 -23
- package/dist/generis/widget/textBox/textBox.js +178 -172
- package/dist/generis/widget/widget.js +255 -266
- package/dist/groupedComboBox.js +231 -226
- package/dist/groupvalidator.js +30 -34
- package/dist/hider.js +43 -50
- package/dist/highlighter.js +946 -1057
- package/dist/image/ImgStateActive/extractLabel.js +20 -21
- package/dist/image/ImgStateActive/helper.js +21 -25
- package/dist/image/ImgStateActive/initHelper.js +133 -162
- package/dist/image/ImgStateActive/initMediaEditor.js +72 -92
- package/dist/image/ImgStateActive/mediaSizer.js +48 -58
- package/dist/image/ImgStateActive.js +185 -215
- package/dist/incrementer.js +91 -110
- package/dist/inplacer.js +108 -132
- package/dist/interactUtils.js +56 -67
- package/dist/itemButtonList/css/item-button-list.css +23 -24
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +444 -469
- package/dist/keyNavigation/navigableDomElement.js +124 -158
- package/dist/keyNavigation/navigator.js +235 -312
- package/dist/listbox/css/listbox.css +7 -7
- package/dist/listbox/css/listbox.css.map +1 -1
- package/dist/listbox.js +463 -476
- package/dist/liststyler.js +75 -76
- package/dist/loadingButton/css/button.css +7 -7
- package/dist/loadingButton/css/button.css.map +1 -1
- package/dist/loadingButton/loadingButton.js +219 -218
- package/dist/lock.js +484 -509
- package/dist/login/login.js +471 -486
- package/dist/maths/calculator/basicCalculator.js +247 -242
- package/dist/maths/calculator/calculatorComponent.js +34 -36
- package/dist/maths/calculator/core/areaBroker.js +30 -28
- package/dist/maths/calculator/core/board.js +805 -872
- package/dist/maths/calculator/core/expression.js +500 -518
- package/dist/maths/calculator/core/labels.js +240 -235
- package/dist/maths/calculator/core/plugin.js +20 -20
- package/dist/maths/calculator/core/terms.js +27 -27
- package/dist/maths/calculator/core/tokenizer.js +119 -132
- package/dist/maths/calculator/core/tokens.js +157 -168
- package/dist/maths/calculator/css/calculator.css +7 -7
- package/dist/maths/calculator/css/calculator.css.map +1 -1
- package/dist/maths/calculator/defaultCalculator.js +24 -27
- package/dist/maths/calculator/plugins/core/degrad.js +22 -30
- package/dist/maths/calculator/plugins/core/history.js +55 -67
- package/dist/maths/calculator/plugins/core/remind.js +22 -25
- package/dist/maths/calculator/plugins/core/stepNavigation.js +33 -49
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +255 -258
- package/dist/maths/calculator/plugins/modifiers/pow10.js +47 -52
- package/dist/maths/calculator/plugins/modifiers/sign.js +103 -130
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +288 -293
- package/dist/maths/calculator/pluginsLoader.js +22 -22
- package/dist/maths/calculator/scientificCalculator.js +339 -334
- package/dist/mediaEditor/mediaEditorComponent.js +244 -249
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +28 -33
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +228 -236
- package/dist/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/dist/mediaEditor/plugins/mediaDimension/helper.js +81 -106
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +597 -635
- package/dist/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/dist/mediaplayer/css/player.css +7 -7
- package/dist/mediaplayer/css/player.css.map +1 -1
- package/dist/mediaplayer/players/html5.js +646 -706
- package/dist/mediaplayer/players/youtube.js +393 -438
- package/dist/mediaplayer/players.js +19 -19
- package/dist/mediaplayer/support.js +66 -79
- package/dist/mediaplayer/utils/reminder.js +117 -128
- package/dist/mediaplayer/utils/timeObserver.js +106 -109
- package/dist/mediaplayer/youtubeManager.js +142 -170
- package/dist/mediaplayer.js +1484 -1774
- package/dist/mediasizer.js +633 -676
- package/dist/modal.js +137 -153
- package/dist/movableComponent.js +37 -37
- package/dist/pageSizeSelector.js +231 -224
- package/dist/pageStatus.js +43 -46
- package/dist/pagination/css/pagination.css +7 -7
- package/dist/pagination/css/pagination.css.map +1 -1
- package/dist/pagination/paginationStrategy.js +24 -25
- package/dist/pagination/providers/pages.js +281 -291
- package/dist/pagination/providers/simple.js +202 -196
- package/dist/pagination.js +49 -72
- package/dist/previewer.js +113 -138
- package/dist/progressbar.js +70 -80
- package/dist/propertySelector/css/propertySelector.css +74 -0
- package/dist/propertySelector/css/propertySelector.css.map +1 -0
- package/dist/propertySelector/propertySelector.js +489 -0
- package/dist/report.js +356 -359
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +275 -289
- package/dist/resource/list.js +1589 -1371
- package/dist/resource/selectable.js +101 -136
- package/dist/resource/selector.js +855 -914
- package/dist/resource/tree.js +1796 -1612
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +540 -587
- package/dist/resourcemgr/filePreview.js +16 -25
- package/dist/resourcemgr/fileSelector.js +520 -547
- package/dist/resourcemgr/util/updatePermissions.js +10 -18
- package/dist/resourcemgr.js +325 -332
- package/dist/scroller.js +29 -33
- package/dist/searchModal/advancedSearch.js +949 -833
- package/dist/searchModal/css/advancedSearch.css +7 -14
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +28 -8
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +616 -335
- package/dist/selecter.js +21 -28
- package/dist/stacker.js +52 -60
- package/dist/switch/css/switch.css +7 -7
- package/dist/switch/css/switch.css.map +1 -1
- package/dist/switch/switch.js +305 -311
- package/dist/tableModel.js +39 -49
- package/dist/tabs/css/tabs.css +12 -12
- package/dist/tabs/css/tabs.css.map +1 -1
- package/dist/tabs.js +588 -639
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +317 -322
- package/dist/taskQueue/table.js +383 -394
- package/dist/taskQueue/taskQueue.js +19 -19
- package/dist/taskQueue/taskQueueModel.js +459 -538
- package/dist/taskQueue.js +49 -67
- package/dist/taskQueueButton/css/taskable.css +7 -7
- package/dist/taskQueueButton/css/taskable.css.map +1 -1
- package/dist/taskQueueButton/css/treeButton.css +7 -7
- package/dist/taskQueueButton/css/treeButton.css.map +1 -1
- package/dist/taskQueueButton/standardButton.js +45 -43
- package/dist/taskQueueButton/taskable.js +267 -272
- package/dist/taskQueueButton/treeButton.js +200 -198
- package/dist/themeLoader.js +109 -129
- package/dist/themes.js +86 -100
- package/dist/toggler.js +76 -88
- package/dist/tooltip.js +296 -311
- package/dist/tooltipster.js +17 -17
- package/dist/transformer.js +140 -169
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/dist/tristateCheckboxGroup.js +319 -325
- package/dist/uploader.js +691 -724
- package/dist/validator/Report.js +1 -2
- package/dist/validator/Validator.js +6 -25
- package/dist/validator/validators.js +66 -80
- package/dist/validator.js +218 -254
- package/dist/waitForMedia.js +45 -51
- package/dist/waitingDialog/css/waitingDialog.css +7 -7
- package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
- package/dist/waitingDialog/waitingDialog.js +59 -77
- package/package.json +109 -107
- package/scss/basic.scss +16 -16
- package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +59 -59
- package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
- package/scss/font/tao/tao.svg +234 -234
- package/scss/inc/_base.scss +495 -495
- package/scss/inc/_bootstrap.scss +6 -6
- package/scss/inc/_buttons.scss +114 -114
- package/scss/inc/_colors.scss +93 -88
- package/scss/inc/_feedback.scss +150 -150
- package/scss/inc/_flex-grid.scss +15 -15
- package/scss/inc/_fonts.scss +4 -4
- package/scss/inc/_forms.scss +832 -832
- package/scss/inc/_functions.scss +283 -283
- package/scss/inc/_jquery.nouislider.scss +254 -254
- package/scss/inc/_normalize.scss +528 -528
- package/scss/inc/_report.scss +67 -67
- package/scss/inc/_secondary-properties.scss +89 -89
- package/scss/inc/_select2.scss +634 -634
- package/scss/inc/_toolbars.scss +155 -155
- package/scss/inc/_tooltip.scss +312 -312
- package/scss/inc/_variables.scss +21 -21
- package/scss/inc/base/_highlight.scss +5 -5
- package/scss/inc/base/_list-style.scss +58 -58
- package/scss/inc/base/_svg.scss +3 -3
- package/scss/inc/base/_table.scss +62 -62
- package/scss/inc/fonts/_source-sans-pro.scss +29 -29
- package/scss/inc/fonts/_tao-icon-classes.scss +226 -226
- package/scss/inc/fonts/_tao-icon-def.scss +12 -12
- package/scss/inc/fonts/_tao-icon-vars.scss +240 -240
- package/src/actionbar/tpl/main.tpl +8 -8
- package/src/actionbar.js +251 -251
- package/src/adder.js +250 -250
- package/src/animable/absorbable/absorbable.js +134 -134
- package/src/animable/absorbable/css/absorb.css +7 -8
- package/src/animable/absorbable/css/absorb.css.map +1 -1
- package/src/animable/absorbable/scss/absorb.scss +37 -37
- package/src/animable/pulsable/css/pulse.css +7 -7
- package/src/animable/pulsable/css/pulse.css.map +1 -1
- package/src/animable/pulsable/pulsable.js +90 -90
- package/src/animable/pulsable/scss/pulse.scss +22 -22
- package/src/areaBroker.js +160 -160
- package/src/autocomplete/css/autocomplete.css +7 -8
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/autocomplete/scss/autocomplete.scss +37 -37
- package/src/autocomplete.js +1029 -1029
- package/src/autoscroll.js +57 -57
- package/src/badge/badge.js +119 -119
- package/src/badge/css/badge.css +7 -8
- package/src/badge/css/badge.css.map +1 -1
- package/src/badge/scss/badge.scss +92 -92
- package/src/badge/tpl/badge.tpl +4 -4
- package/src/breadcrumbs/css/breadcrumbs.css +7 -7
- package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
- package/src/breadcrumbs/scss/breadcrumbs.scss +52 -52
- package/src/breadcrumbs/tpl/breadcrumbs.tpl +20 -20
- package/src/breadcrumbs.js +99 -99
- package/src/btngrouper.js +213 -213
- package/src/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/src/bulkActionPopup/scss/bulkActionPopup.scss +63 -63
- package/src/bulkActionPopup/tpl/layout.tpl +76 -76
- package/src/bulkActionPopup/tpl/select.tpl +8 -8
- package/src/bulkActionPopup.js +274 -274
- package/src/button/tpl/button.tpl +4 -4
- package/src/button.js +135 -135
- package/src/calculator/css/calculator.css +10 -10
- package/src/calculator/css/calculator.css.map +1 -1
- package/src/calculator/scss/calculator.scss +139 -139
- package/src/calculator.js +188 -188
- package/src/cascadingComboBox.js +126 -126
- package/src/ckeditor/ckConfigurator.js +736 -736
- package/src/ckeditor/dtdHandler.js +1030 -1030
- package/src/class/css/selector.css +7 -7
- package/src/class/css/selector.css.map +1 -1
- package/src/class/scss/selector.scss +101 -101
- package/src/class/selector.js +329 -329
- package/src/class/tpl/listItem.tpl +9 -9
- package/src/class/tpl/selector.tpl +10 -10
- package/src/component/alignable.js +274 -274
- package/src/component/containable.js +122 -122
- package/src/component/css/components.css +7 -7
- package/src/component/css/components.css.map +1 -1
- package/src/component/css/windowComponent.css +7 -7
- package/src/component/css/windowComponent.css.map +1 -1
- package/src/component/draggable.js +104 -104
- package/src/component/placeable.js +233 -233
- package/src/component/resizable.js +195 -195
- package/src/component/scss/components.scss +507 -507
- package/src/component/scss/windowComponent.scss +62 -62
- package/src/component/stackable.js +67 -67
- package/src/component/tpl/window.tpl +7 -7
- package/src/component/windowed.js +206 -206
- package/src/component.js +401 -401
- package/src/container.js +200 -200
- package/src/contextualPopup/css/contextualPopup.css +7 -7
- package/src/contextualPopup/css/contextualPopup.css.map +1 -1
- package/src/contextualPopup/scss/contextualPopup.scss +78 -78
- package/src/contextualPopup/tpl/popup.tpl +10 -10
- package/src/contextualPopup.js +297 -297
- package/src/css/basic.css +103 -106
- package/src/css/basic.css.map +1 -1
- package/src/dashboard/css/dashboard.css +7 -7
- package/src/dashboard/css/dashboard.css.map +1 -1
- package/src/dashboard/scss/dashboard.scss +93 -93
- package/src/dashboard/tpl/dashboard.tpl +16 -16
- package/src/dashboard/tpl/dashboardMetricsList.tpl +15 -15
- package/src/dashboard.js +184 -184
- package/src/datalist/css/datalist.css +7 -7
- package/src/datalist/css/datalist.css.map +1 -1
- package/src/datalist/scss/datalist.scss +116 -116
- package/src/datalist/tpl/list.tpl +24 -24
- package/src/datalist/tpl/main.tpl +44 -44
- package/src/datalist.js +500 -500
- package/src/datatable/css/datatable.css +11 -7
- package/src/datatable/css/datatable.css.map +1 -1
- package/src/datatable/filterStrategy/filterStrategy.js +70 -70
- package/src/datatable/filterStrategy/multiple.js +126 -126
- package/src/datatable/filterStrategy/single.js +108 -108
- package/src/datatable/scss/datatable.scss +149 -146
- package/src/datatable/tpl/button.tpl +6 -6
- package/src/datatable/tpl/layout.tpl +158 -158
- package/src/datatable.js +1056 -1056
- package/src/dateRange/css/dateRange.css +7 -7
- package/src/dateRange/css/dateRange.css.map +1 -1
- package/src/dateRange/dateRange.js +341 -341
- package/src/dateRange/scss/dateRange.scss +7 -7
- package/src/dateRange/tpl/select.tpl +18 -18
- package/src/datetime/css/picker.css +7 -7
- package/src/datetime/css/picker.css.map +1 -1
- package/src/datetime/picker.js +576 -576
- package/src/datetime/scss/picker.scss +192 -192
- package/src/datetime/tpl/picker.tpl +18 -18
- package/src/deleter/undo.tpl +6 -6
- package/src/deleter.js +296 -296
- package/src/destination/css/selector.css +7 -7
- package/src/destination/css/selector.css.map +1 -1
- package/src/destination/scss/selector.scss +36 -36
- package/src/destination/selector.js +195 -195
- package/src/destination/tpl/selector.tpl +13 -13
- package/src/dialog/alert.js +70 -70
- package/src/dialog/confirm.js +85 -85
- package/src/dialog/confirmDelete.js +95 -95
- package/src/dialog/tpl/body.tpl +24 -24
- package/src/dialog/tpl/buttons.tpl +6 -6
- package/src/dialog/tpl/checkbox.tpl +5 -5
- package/src/dialog.js +517 -517
- package/src/disabler.js +230 -230
- package/src/documentViewer/css/documentViewer.css +7 -7
- package/src/documentViewer/css/documentViewer.css.map +1 -1
- package/src/documentViewer/providers/pdfViewer/fallback/viewer.js +69 -69
- package/src/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +41 -41
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.js +475 -475
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.tpl +20 -20
- package/src/documentViewer/providers/pdfViewer/pdfjs/match.tpl +1 -1
- package/src/documentViewer/providers/pdfViewer/pdfjs/page.tpl +4 -4
- package/src/documentViewer/providers/pdfViewer/pdfjs/pageView.js +318 -318
- package/src/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +167 -167
- package/src/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +451 -451
- package/src/documentViewer/providers/pdfViewer/pdfjs/textManager.js +252 -252
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.js +299 -299
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.tpl +16 -16
- package/src/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +351 -351
- package/src/documentViewer/providers/pdfViewer.js +93 -93
- package/src/documentViewer/scss/documentViewer.scss +184 -184
- package/src/documentViewer/viewerFactory.js +191 -191
- package/src/documentViewer.js +238 -238
- package/src/dropdown/css/dropdown.css +7 -7
- package/src/dropdown/css/dropdown.css.map +1 -1
- package/src/dropdown/scss/dropdown.scss +99 -99
- package/src/dropdown/tpl/dropdown.tpl +8 -8
- package/src/dropdown/tpl/list-item.tpl +4 -4
- package/src/dropdown.js +255 -255
- package/src/durationer.js +222 -222
- package/src/dynamicComponent/css/dynamicComponent.css +7 -7
- package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/src/dynamicComponent/scss/dynamicComponent.scss +98 -98
- package/src/dynamicComponent/tpl/layout.tpl +17 -17
- package/src/dynamicComponent.js +554 -554
- package/src/feedback/feedback.tpl +7 -7
- package/src/feedback.js +295 -295
- package/src/figure/FigureStateActive.js +174 -174
- package/src/filesender.js +114 -114
- package/src/filter/template.tpl +5 -5
- package/src/filter.js +135 -135
- package/src/form/css/dropdownForm.css +7 -7
- package/src/form/css/dropdownForm.css.map +1 -1
- package/src/form/css/form.css +7 -7
- package/src/form/css/form.css.map +1 -1
- package/src/form/dropdownForm.js +281 -281
- package/src/form/form.js +688 -688
- package/src/form/scss/dropdownForm.scss +60 -60
- package/src/form/scss/form.scss +25 -25
- package/src/form/simpleForm.js +125 -125
- package/src/form/tpl/dropdownForm.tpl +4 -4
- package/src/form/tpl/form.tpl +7 -7
- package/src/form/validator/css/validator.css +7 -7
- package/src/form/validator/css/validator.css.map +1 -1
- package/src/form/validator/renderer.js +118 -118
- package/src/form/validator/scss/validator.scss +14 -14
- package/src/form/validator/tpl/message.tpl +1 -1
- package/src/form/validator/tpl/validator.tpl +1 -1
- package/src/form/validator/validator.js +220 -220
- package/src/form/widget/css/widget.css +7 -7
- package/src/form/widget/css/widget.css.map +1 -1
- package/src/form/widget/definitions.js +51 -51
- package/src/form/widget/loader.js +40 -40
- package/src/form/widget/providers/checkBox.js +138 -138
- package/src/form/widget/providers/comboBox.js +63 -63
- package/src/form/widget/providers/default.js +90 -90
- package/src/form/widget/providers/hidden.js +62 -62
- package/src/form/widget/providers/hiddenBox.js +152 -152
- package/src/form/widget/providers/radioBox.js +99 -99
- package/src/form/widget/providers/textArea.js +52 -52
- package/src/form/widget/providers/textBox.js +48 -48
- package/src/form/widget/scss/widget.scss +55 -55
- package/src/form/widget/tpl/checkBox.tpl +25 -25
- package/src/form/widget/tpl/comboBox.tpl +13 -13
- package/src/form/widget/tpl/hidden.tpl +1 -1
- package/src/form/widget/tpl/hiddenBox.tpl +17 -17
- package/src/form/widget/tpl/label.tpl +6 -6
- package/src/form/widget/tpl/radioBox.tpl +25 -25
- package/src/form/widget/tpl/textArea.tpl +8 -8
- package/src/form/widget/tpl/widget.tpl +8 -8
- package/src/form/widget/widget.js +372 -372
- package/src/form.js +53 -53
- package/src/formValidator/formValidator.js +253 -253
- package/src/formValidator/highlighters/highlighter.js +102 -102
- package/src/formValidator/highlighters/message.js +70 -70
- package/src/formValidator/highlighters/tooltip.js +78 -78
- package/src/generis/form/css/form.css +7 -7
- package/src/generis/form/css/form.css.map +1 -1
- package/src/generis/form/form.js +239 -239
- package/src/generis/form/readme.md +70 -70
- package/src/generis/form/scss/form.scss +23 -23
- package/src/generis/form/tpl/form.tpl +16 -16
- package/src/generis/validator/css/validator.css +7 -7
- package/src/generis/validator/css/validator.css.map +1 -1
- package/src/generis/validator/readme.md +46 -46
- package/src/generis/validator/scss/validator.scss +13 -13
- package/src/generis/validator/validator.js +128 -128
- package/src/generis/widget/checkBox/checkBox.js +112 -112
- package/src/generis/widget/checkBox/checkBox.tpl +18 -18
- package/src/generis/widget/comboBox/comboBox.js +67 -67
- package/src/generis/widget/comboBox/comboBox.tpl +12 -12
- package/src/generis/widget/css/widget.css +7 -7
- package/src/generis/widget/css/widget.css.map +1 -1
- package/src/generis/widget/hiddenBox/hiddenBox.js +132 -132
- package/src/generis/widget/hiddenBox/hiddenBox.tpl +16 -16
- package/src/generis/widget/loader.js +49 -49
- package/src/generis/widget/readme.md +59 -59
- package/src/generis/widget/scss/widget.scss +61 -61
- package/src/generis/widget/textBox/textBox.js +65 -65
- package/src/generis/widget/textBox/textBox.tpl +7 -7
- package/src/generis/widget/widget.js +164 -164
- package/src/generis/widget/widget.tpl +5 -5
- package/src/groupedComboBox.js +99 -99
- package/src/groupvalidator.js +84 -84
- package/src/hider.js +88 -88
- package/src/highlighter.js +1166 -1166
- package/src/image/ImgStateActive/extractLabel.js +29 -29
- package/src/image/ImgStateActive/helper.js +36 -36
- package/src/image/ImgStateActive/initHelper.js +137 -137
- package/src/image/ImgStateActive/initMediaEditor.js +92 -92
- package/src/image/ImgStateActive/mediaSizer.js +63 -63
- package/src/image/ImgStateActive.js +115 -115
- package/src/incrementer.js +319 -319
- package/src/inplacer.js +316 -316
- package/src/interactUtils.js +140 -140
- package/src/itemButtonList/css/item-button-list.css +23 -24
- package/src/itemButtonList/css/item-button-list.css.map +1 -1
- package/src/itemButtonList/scss/item-button-list.scss +236 -236
- package/src/itemButtonList/tpl/itemButtonList.tpl +21 -21
- package/src/itemButtonList.js +274 -274
- package/src/keyNavigation/navigableDomElement.js +282 -282
- package/src/keyNavigation/navigator.js +543 -543
- package/src/listbox/css/listbox.css +7 -7
- package/src/listbox/css/listbox.css.map +1 -1
- package/src/listbox/scss/listbox.scss +116 -116
- package/src/listbox/tpl/list.tpl +14 -14
- package/src/listbox/tpl/main.tpl +9 -9
- package/src/listbox.js +251 -251
- package/src/liststyler.js +155 -155
- package/src/loadingButton/css/button.css +7 -7
- package/src/loadingButton/css/button.css.map +1 -1
- package/src/loadingButton/loadingButton.js +110 -110
- package/src/loadingButton/scss/button.scss +41 -41
- package/src/loadingButton/tpl/button.tpl +5 -5
- package/src/lock/lock.tpl +16 -16
- package/src/lock.js +395 -395
- package/src/login/login.js +322 -322
- package/src/login/tpl/login.tpl +29 -29
- package/src/login/tpl/passwordReveal.tpl +7 -7
- package/src/maths/calculator/basicCalculator.js +55 -55
- package/src/maths/calculator/calculatorComponent.js +128 -128
- package/src/maths/calculator/core/areaBroker.js +38 -38
- package/src/maths/calculator/core/board.js +841 -841
- package/src/maths/calculator/core/expression.js +430 -430
- package/src/maths/calculator/core/labels.js +116 -116
- package/src/maths/calculator/core/plugin.js +40 -40
- package/src/maths/calculator/core/terms.js +459 -459
- package/src/maths/calculator/core/tokenizer.js +245 -245
- package/src/maths/calculator/core/tokens.js +178 -178
- package/src/maths/calculator/core/tpl/board.tpl +4 -4
- package/src/maths/calculator/css/calculator.css +7 -7
- package/src/maths/calculator/css/calculator.css.map +1 -1
- package/src/maths/calculator/defaultCalculator.js +66 -66
- package/src/maths/calculator/plugins/core/degrad.js +90 -90
- package/src/maths/calculator/plugins/core/history.js +166 -166
- package/src/maths/calculator/plugins/core/remind.js +96 -96
- package/src/maths/calculator/plugins/core/stepNavigation.js +175 -175
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate.tpl +36 -36
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +91 -91
- package/src/maths/calculator/plugins/modifiers/pow10.js +143 -143
- package/src/maths/calculator/plugins/modifiers/sign.js +339 -339
- package/src/maths/calculator/plugins/screen/simpleScreen/defaultTemplate.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/history.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +191 -191
- package/src/maths/calculator/pluginsLoader.js +46 -46
- package/src/maths/calculator/scientificCalculator.js +74 -74
- package/src/maths/calculator/scss/calculator.scss +396 -396
- package/src/maths/calculator/tpl/basicKeyboard.tpl +37 -37
- package/src/maths/calculator/tpl/basicScreen.tpl +2 -2
- package/src/maths/calculator/tpl/scientificKeyboard.tpl +61 -61
- package/src/maths/calculator/tpl/scientificScreen.tpl +3 -3
- package/src/mediaEditor/mediaEditorComponent.js +141 -141
- package/src/mediaEditor/plugins/mediaAlignment/helper.js +62 -62
- package/src/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +99 -99
- package/src/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/src/mediaEditor/plugins/mediaAlignment/tpl/mediaAlignment.tpl +25 -25
- package/src/mediaEditor/plugins/mediaDimension/helper.js +189 -189
- package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +561 -561
- package/src/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/src/mediaEditor/plugins/mediaDimension/tpl/mediaDimension.tpl +55 -55
- package/src/mediaEditor/tpl/editor.tpl +4 -4
- package/src/mediaplayer/css/player.css +7 -7
- package/src/mediaplayer/css/player.css.map +1 -1
- package/src/mediaplayer/players/html5.js +564 -564
- package/src/mediaplayer/players/youtube.js +323 -323
- package/src/mediaplayer/players.js +29 -29
- package/src/mediaplayer/readme.md +305 -305
- package/src/mediaplayer/scss/player.scss +569 -569
- package/src/mediaplayer/support.js +126 -126
- package/src/mediaplayer/tpl/audio.tpl +6 -6
- package/src/mediaplayer/tpl/player.tpl +37 -37
- package/src/mediaplayer/tpl/source.tpl +1 -1
- package/src/mediaplayer/tpl/video.tpl +6 -6
- package/src/mediaplayer/tpl/youtube.tpl +1 -1
- package/src/mediaplayer/utils/reminder.js +184 -184
- package/src/mediaplayer/utils/timeObserver.js +143 -143
- package/src/mediaplayer/youtubeManager.js +161 -161
- package/src/mediaplayer.js +1606 -1606
- package/src/mediasizer/mediasizer.tpl +55 -55
- package/src/mediasizer.js +635 -635
- package/src/modal.js +365 -365
- package/src/movableComponent.js +78 -78
- package/src/pageSizeSelector/tpl/pageSizeSelector.tpl +9 -9
- package/src/pageSizeSelector.js +107 -107
- package/src/pageStatus.js +147 -147
- package/src/pagination/css/pagination.css +7 -7
- package/src/pagination/css/pagination.css.map +1 -1
- package/src/pagination/paginationStrategy.js +53 -53
- package/src/pagination/providers/pages.js +161 -161
- package/src/pagination/providers/simple.js +74 -74
- package/src/pagination/providers/tpl/pages/page.tpl +1 -1
- package/src/pagination/providers/tpl/pages.tpl +8 -8
- package/src/pagination/providers/tpl/simple.tpl +7 -7
- package/src/pagination/scss/pagination.scss +111 -111
- package/src/pagination.js +237 -237
- package/src/previewer.js +300 -300
- package/src/progressbar.js +165 -165
- package/src/propertySelector/css/propertySelector.css +74 -0
- package/src/propertySelector/css/propertySelector.css.map +1 -0
- package/src/propertySelector/propertySelector.js +286 -0
- package/src/propertySelector/scss/propertySelector.scss +66 -0
- package/src/propertySelector/tpl/highlighted-text.tpl +1 -0
- package/src/propertySelector/tpl/property-description.tpl +13 -0
- package/src/propertySelector/tpl/property-selector.tpl +7 -0
- package/src/report/feedback.tpl +11 -11
- package/src/report/layout.tpl +10 -10
- package/src/report.js +184 -184
- package/src/resource/css/selector.css +7 -7
- package/src/resource/css/selector.css.map +1 -1
- package/src/resource/filters.js +208 -208
- package/src/resource/list.js +200 -200
- package/src/resource/scss/_filters.scss +26 -26
- package/src/resource/scss/_resource-list.scss +107 -107
- package/src/resource/scss/_resource-tree.scss +205 -205
- package/src/resource/scss/selector.scss +187 -187
- package/src/resource/selectable.js +322 -322
- package/src/resource/selector.js +871 -871
- package/src/resource/tpl/filters.tpl +2 -2
- package/src/resource/tpl/list.tpl +7 -7
- package/src/resource/tpl/listNode.tpl +4 -4
- package/src/resource/tpl/selector.tpl +46 -46
- package/src/resource/tpl/tree.tpl +4 -4
- package/src/resource/tpl/treeNode.tpl +30 -30
- package/src/resource/tree.js +400 -400
- package/src/resourcemgr/css/resourcemgr.css +7 -7
- package/src/resourcemgr/css/resourcemgr.css.map +1 -1
- package/src/resourcemgr/fileBrowser.js +381 -381
- package/src/resourcemgr/filePreview.js +73 -73
- package/src/resourcemgr/fileSelector.js +348 -348
- package/src/resourcemgr/scss/resourcemgr.scss +254 -254
- package/src/resourcemgr/tpl/fileSelect.tpl +39 -39
- package/src/resourcemgr/tpl/folder.tpl +11 -11
- package/src/resourcemgr/tpl/layout.tpl +84 -84
- package/src/resourcemgr/tpl/rootFolder.tpl +13 -13
- package/src/resourcemgr/util/updatePermissions.js +53 -53
- package/src/resourcemgr.js +216 -216
- package/src/scroller.js +94 -94
- package/src/scss/basic.scss +16 -16
- package/src/searchModal/advancedSearch.js +638 -601
- package/src/searchModal/css/advancedSearch.css +7 -14
- package/src/searchModal/css/advancedSearch.css.map +1 -1
- package/src/searchModal/css/searchModal.css +28 -8
- package/src/searchModal/css/searchModal.css.map +1 -1
- package/src/searchModal/scss/advancedSearch.scss +171 -177
- package/src/searchModal/scss/searchModal.scss +393 -375
- package/src/searchModal/tpl/advanced-search.tpl +9 -9
- package/src/searchModal/tpl/criteria-alias.tpl +1 -0
- package/src/searchModal/tpl/criteria-class-label.tpl +1 -0
- package/src/searchModal/tpl/criteria-label.tpl +1 -0
- package/src/searchModal/tpl/highlighted-text.tpl +1 -0
- package/src/searchModal/tpl/info-message.tpl +3 -3
- package/src/searchModal/tpl/invalid-criteria-warning.tpl +10 -10
- package/src/searchModal/tpl/layout.tpl +27 -25
- package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -12
- package/src/searchModal/tpl/list-select-criterion.tpl +12 -6
- package/src/searchModal/tpl/property-select-button.tpl +1 -0
- package/src/searchModal/tpl/results-container.tpl +1 -0
- package/src/searchModal/tpl/text-criterion.tpl +11 -6
- package/src/searchModal.js +761 -496
- package/src/selecter.js +43 -43
- package/src/stacker.js +133 -133
- package/src/switch/css/switch.css +7 -7
- package/src/switch/css/switch.css.map +1 -1
- package/src/switch/scss/switch.scss +83 -83
- package/src/switch/switch.js +195 -195
- package/src/switch/tpl/switch.tpl +7 -7
- package/src/tableModel.js +112 -112
- package/src/tabs/css/tabs.css +12 -12
- package/src/tabs/css/tabs.css.map +1 -1
- package/src/tabs/scss/tabs.scss +50 -50
- package/src/tabs/tpl/panel.tpl +3 -3
- package/src/tabs/tpl/tabs.tpl +10 -10
- package/src/tabs.js +528 -528
- package/src/taskQueue/css/taskQueue.css +7 -7
- package/src/taskQueue/css/taskQueue.css.map +1 -1
- package/src/taskQueue/scss/taskQueue.scss +47 -47
- package/src/taskQueue/status.js +228 -228
- package/src/taskQueue/table.js +350 -350
- package/src/taskQueue/taskQueue.js +33 -33
- package/src/taskQueue/taskQueueModel.js +548 -548
- package/src/taskQueue/tpl/statusMessage.tpl +7 -7
- package/src/taskQueue.js +218 -218
- package/src/taskQueueButton/css/taskable.css +7 -7
- package/src/taskQueueButton/css/taskable.css.map +1 -1
- package/src/taskQueueButton/css/treeButton.css +7 -7
- package/src/taskQueueButton/css/treeButton.css.map +1 -1
- package/src/taskQueueButton/scss/taskable.scss +4 -4
- package/src/taskQueueButton/scss/treeButton.scss +34 -34
- package/src/taskQueueButton/standardButton.js +108 -108
- package/src/taskQueueButton/taskable.js +202 -202
- package/src/taskQueueButton/tpl/report.tpl +5 -5
- package/src/taskQueueButton/tpl/treeButton.tpl +6 -6
- package/src/taskQueueButton/treeButton.js +109 -109
- package/src/themeLoader.js +252 -252
- package/src/themes.js +162 -162
- package/src/toggler.js +200 -200
- package/src/tooltip/default.tpl +3 -3
- package/src/tooltip.js +160 -160
- package/src/tooltipster.js +25 -25
- package/src/transformer.js +327 -327
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/src/tristateCheckboxGroup/scss/tristateCheckboxGroup.scss +15 -15
- package/src/tristateCheckboxGroup/tpl/li.tpl +6 -6
- package/src/tristateCheckboxGroup.js +207 -207
- package/src/uploader/fileEntry.tpl +6 -6
- package/src/uploader/uploader.tpl +32 -32
- package/src/uploader.js +594 -594
- package/src/validator/Report.js +10 -10
- package/src/validator/Validator.js +108 -108
- package/src/validator/validators.js +220 -220
- package/src/validator.js +264 -264
- package/src/waitForMedia.js +82 -82
- package/src/waitingDialog/css/waitingDialog.css +7 -7
- package/src/waitingDialog/css/waitingDialog.css.map +1 -1
- package/src/waitingDialog/scss/waitingDialog.scss +34 -34
- package/src/waitingDialog/waitingDialog.js +240 -240
|
@@ -5,194 +5,166 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
|
|
|
5
5
|
eventifier = eventifier && Object.prototype.hasOwnProperty.call(eventifier, 'default') ? eventifier['default'] : eventifier;
|
|
6
6
|
navigableDomElement = navigableDomElement && Object.prototype.hasOwnProperty.call(navigableDomElement, 'default') ? navigableDomElement['default'] : navigableDomElement;
|
|
7
7
|
|
|
8
|
-
/*
|
|
9
|
-
* This program is free software; you can redistribute it and/or
|
|
10
|
-
* modify it under the terms of the GNU General Public License
|
|
11
|
-
* as published by the Free Software Foundation; under version 2
|
|
12
|
-
* of the License (non-upgradable).
|
|
13
|
-
*
|
|
14
|
-
* This program is distributed in the hope that it will be useful,
|
|
15
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
-
* GNU General Public License for more details.
|
|
18
|
-
*
|
|
19
|
-
* You should have received a copy of the GNU General Public License
|
|
20
|
-
* along with this program; if not, write to the Free Software
|
|
21
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
22
|
-
*
|
|
23
|
-
* Copyright (c) 2017-2020 (original work) Open Assessment Technologies SA;
|
|
24
|
-
*
|
|
8
|
+
/*
|
|
9
|
+
* This program is free software; you can redistribute it and/or
|
|
10
|
+
* modify it under the terms of the GNU General Public License
|
|
11
|
+
* as published by the Free Software Foundation; under version 2
|
|
12
|
+
* of the License (non-upgradable).
|
|
13
|
+
*
|
|
14
|
+
* This program is distributed in the hope that it will be useful,
|
|
15
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
* GNU General Public License for more details.
|
|
18
|
+
*
|
|
19
|
+
* You should have received a copy of the GNU General Public License
|
|
20
|
+
* along with this program; if not, write to the Free Software
|
|
21
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
22
|
+
*
|
|
23
|
+
* Copyright (c) 2017-2020 (original work) Open Assessment Technologies SA;
|
|
24
|
+
*
|
|
25
25
|
*/
|
|
26
|
-
|
|
26
|
+
const defaults = {
|
|
27
27
|
defaultPosition: -1,
|
|
28
28
|
keepState: false,
|
|
29
29
|
loop: false,
|
|
30
30
|
propagateTab: true
|
|
31
31
|
};
|
|
32
|
-
/**
|
|
33
|
-
* Create a keyNavigator
|
|
34
|
-
*
|
|
35
|
-
* @param config - the config
|
|
36
|
-
* @param {String} config.id - global unique id to define this group
|
|
37
|
-
* @param {jQuery} config.elements - the group of element to be keyboard-navigated
|
|
38
|
-
* @param {jQuery} [config.group] - the container the group of elements belong to
|
|
39
|
-
* @param {Number|Function} [config.defaultPosition=0] - the default position the group should set the focus on (could be a function to compute the position)
|
|
40
|
-
* @param {Boolean} [config.keepState=false] - define if the position should be saved in memory after the group blurs and re-focuses
|
|
41
|
-
* @param {Boolean} [config.loop=false] - define if the navigation should loop after reaching the last or the first element
|
|
42
|
-
* @param {Boolean} [config.propagateTab=true] - allows the key event to propagate when the Tab key is pressed.
|
|
43
|
-
* @returns {keyNavigator}
|
|
44
|
-
*/
|
|
45
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Create a keyNavigator
|
|
35
|
+
*
|
|
36
|
+
* @param config - the config
|
|
37
|
+
* @param {String} config.id - global unique id to define this group
|
|
38
|
+
* @param {jQuery} config.elements - the group of element to be keyboard-navigated
|
|
39
|
+
* @param {jQuery} [config.group] - the container the group of elements belong to
|
|
40
|
+
* @param {Number|Function} [config.defaultPosition=0] - the default position the group should set the focus on (could be a function to compute the position)
|
|
41
|
+
* @param {Boolean} [config.keepState=false] - define if the position should be saved in memory after the group blurs and re-focuses
|
|
42
|
+
* @param {Boolean} [config.loop=false] - define if the navigation should loop after reaching the last or the first element
|
|
43
|
+
* @param {Boolean} [config.propagateTab=true] - allows the key event to propagate when the Tab key is pressed.
|
|
44
|
+
* @returns {keyNavigator}
|
|
45
|
+
*/
|
|
46
46
|
function keyNavigatorFactory(config) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
var $group = navigatorConfig.group && $(navigatorConfig.group).addClass('key-navigation-group').attr('data-navigation-id', id);
|
|
52
|
-
|
|
47
|
+
const navigatorConfig = Object.assign({}, defaults, config || {});
|
|
48
|
+
const id = navigatorConfig.id || _.uniqueId('navigator_');
|
|
49
|
+
const $group = navigatorConfig.group && $(navigatorConfig.group).addClass('key-navigation-group').attr('data-navigation-id', id);
|
|
53
50
|
if (navigatorConfig.group && (!$group.length || !$.contains(document.body, $group.get(0)))) {
|
|
54
51
|
throw new TypeError('group element does not exist');
|
|
55
52
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Checks if the navigable element is available
|
|
62
|
-
* @param {navigableDomElement} navigable
|
|
63
|
-
* @returns {Boolean}
|
|
53
|
+
const navigableElements = navigatorConfig.elements || [];
|
|
54
|
+
let lastPosition = -1;
|
|
55
|
+
let focusOutObserver;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Checks if the navigable element is available
|
|
59
|
+
* @param {navigableDomElement} navigable
|
|
60
|
+
* @returns {Boolean}
|
|
64
61
|
*/
|
|
62
|
+
const isNavigableAvailable = navigable => navigable && navigable.isVisible() && navigable.isEnabled();
|
|
65
63
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
* Checks if the navigable element is focused
|
|
71
|
-
* @param {navigableDomElement} navigable
|
|
72
|
-
* @returns {Boolean}
|
|
64
|
+
/**
|
|
65
|
+
* Checks if the navigable element is focused
|
|
66
|
+
* @param {navigableDomElement} navigable
|
|
67
|
+
* @returns {Boolean}
|
|
73
68
|
*/
|
|
69
|
+
const isNavigableFocused = navigable => isNavigableAvailable(navigable) && navigable.isFocused();
|
|
74
70
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
* Gets the closest allowed position to the right
|
|
81
|
-
*
|
|
82
|
-
* @param {Number} fromPosition - the starting position
|
|
83
|
-
* @returns {Number}
|
|
71
|
+
/**
|
|
72
|
+
* Gets the closest allowed position to the right
|
|
73
|
+
*
|
|
74
|
+
* @param {Number} fromPosition - the starting position
|
|
75
|
+
* @returns {Number}
|
|
84
76
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
var getClosestPositionRight = function getClosestPositionRight(fromPosition) {
|
|
88
|
-
for (var pos = fromPosition; pos < navigableElements.length; pos++) {
|
|
77
|
+
const getClosestPositionRight = fromPosition => {
|
|
78
|
+
for (let pos = fromPosition; pos < navigableElements.length; pos++) {
|
|
89
79
|
if (isNavigableAvailable(navigableElements[pos])) {
|
|
90
80
|
return pos;
|
|
91
81
|
}
|
|
92
82
|
}
|
|
93
|
-
|
|
94
83
|
return -1;
|
|
95
84
|
};
|
|
96
|
-
/**
|
|
97
|
-
* Gets the closest allowed position to the left
|
|
98
|
-
*
|
|
99
|
-
* @param {Number} fromPosition - the starting position
|
|
100
|
-
* @returns {Number}
|
|
101
|
-
*/
|
|
102
85
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
86
|
+
/**
|
|
87
|
+
* Gets the closest allowed position to the left
|
|
88
|
+
*
|
|
89
|
+
* @param {Number} fromPosition - the starting position
|
|
90
|
+
* @returns {Number}
|
|
91
|
+
*/
|
|
92
|
+
const getClosestPositionLeft = fromPosition => {
|
|
93
|
+
for (let pos = fromPosition; pos >= 0; pos--) {
|
|
106
94
|
if (isNavigableAvailable(navigableElements[pos])) {
|
|
107
95
|
return pos;
|
|
108
96
|
}
|
|
109
97
|
}
|
|
110
|
-
|
|
111
98
|
return -1;
|
|
112
99
|
};
|
|
113
|
-
/**
|
|
114
|
-
* The navigation group object
|
|
115
|
-
*
|
|
116
|
-
* @typedef keyNavigator
|
|
117
|
-
*/
|
|
118
|
-
|
|
119
100
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
101
|
+
/**
|
|
102
|
+
* The navigation group object
|
|
103
|
+
*
|
|
104
|
+
* @typedef keyNavigator
|
|
105
|
+
*/
|
|
106
|
+
const keyNavigator = eventifier({
|
|
107
|
+
/**
|
|
108
|
+
* Setups the navigator
|
|
109
|
+
* @returns {keyNavigator}
|
|
124
110
|
*/
|
|
125
|
-
init
|
|
126
|
-
var _this = this;
|
|
127
|
-
|
|
111
|
+
init() {
|
|
128
112
|
if ($group) {
|
|
129
113
|
//add the focusin and focus out class for group highlighting
|
|
130
|
-
$group.on(
|
|
131
|
-
if (
|
|
114
|
+
$group.on(`focusin.${this.getId()}`, () => {
|
|
115
|
+
if (this.isFocused()) {
|
|
132
116
|
$group.addClass('focusin');
|
|
133
117
|
}
|
|
134
|
-
}).on(
|
|
135
|
-
if (!
|
|
118
|
+
}).on(`focusout.${this.getId()}`, () => {
|
|
119
|
+
if (!this.isFocused()) {
|
|
136
120
|
$group.removeClass('focusin');
|
|
137
121
|
}
|
|
138
122
|
});
|
|
139
|
-
focusOutObserver = new MutationObserver(
|
|
140
|
-
if (!
|
|
123
|
+
focusOutObserver = new MutationObserver(() => {
|
|
124
|
+
if (!this.isVisible() && $group.hasClass('focusin')) {
|
|
141
125
|
$group.removeClass('focusin');
|
|
142
126
|
}
|
|
143
127
|
});
|
|
144
|
-
$group.each(
|
|
128
|
+
$group.each(index => {
|
|
145
129
|
focusOutObserver.observe($group.get(index), {
|
|
146
130
|
childList: true,
|
|
147
131
|
subtree: true
|
|
148
132
|
});
|
|
149
133
|
});
|
|
150
134
|
}
|
|
151
|
-
|
|
152
|
-
navigableElements.forEach(function (navigable) {
|
|
135
|
+
navigableElements.forEach(navigable => {
|
|
153
136
|
if (!navigableDomElement.isNavigableElement(navigable)) {
|
|
154
137
|
throw new TypeError('not a valid navigable element');
|
|
155
138
|
}
|
|
156
|
-
|
|
157
139
|
if (navigable.getType() === 'element') {
|
|
158
140
|
navigable.init({
|
|
159
141
|
propagateTab: navigatorConfig.propagateTab
|
|
160
142
|
});
|
|
161
143
|
}
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
lastPosition = _this.getCurrentPosition();
|
|
167
|
-
}).on("blur.".concat(_this.getId()), function () {
|
|
168
|
-
var cursor = _this.getCursorAt(lastPosition);
|
|
169
|
-
|
|
144
|
+
navigable.off(`.${this.getId()}`).on(`key.${this.getId()}`, (key, el) => this.trigger('key', key, el)).on(`focus.${this.getId()}`, () => {
|
|
145
|
+
lastPosition = this.getCurrentPosition();
|
|
146
|
+
}).on(`blur.${this.getId()}`, () => {
|
|
147
|
+
const cursor = this.getCursorAt(lastPosition);
|
|
170
148
|
if (cursor.navigable) {
|
|
171
|
-
|
|
149
|
+
this.trigger('blur', cursor);
|
|
172
150
|
}
|
|
173
151
|
});
|
|
174
152
|
});
|
|
175
153
|
return this;
|
|
176
154
|
},
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
*
|
|
180
|
-
* @returns {keyNavigator}
|
|
155
|
+
/**
|
|
156
|
+
* Destroys and cleanup
|
|
157
|
+
* @returns {keyNavigator}
|
|
181
158
|
*/
|
|
182
|
-
destroy
|
|
183
|
-
var _this2 = this;
|
|
184
|
-
|
|
159
|
+
destroy() {
|
|
185
160
|
if ($group) {
|
|
186
|
-
$group.off(
|
|
161
|
+
$group.off(`.${this.getId()}`).removeClass('focusin');
|
|
187
162
|
}
|
|
188
|
-
|
|
189
163
|
if (focusOutObserver) {
|
|
190
164
|
focusOutObserver.disconnect();
|
|
191
165
|
}
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
navigable.off(".".concat(_this2.getId));
|
|
195
|
-
|
|
166
|
+
navigableElements.forEach(navigable => {
|
|
167
|
+
navigable.off(`.${this.getId}`);
|
|
196
168
|
if (navigable.getType() === 'element') {
|
|
197
169
|
navigable.destroy();
|
|
198
170
|
}
|
|
@@ -200,324 +172,276 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
|
|
|
200
172
|
lastPosition = -1;
|
|
201
173
|
return this;
|
|
202
174
|
},
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
*
|
|
206
|
-
* @returns {String}
|
|
175
|
+
/**
|
|
176
|
+
* Gets the navigation group id
|
|
177
|
+
* @returns {String}
|
|
207
178
|
*/
|
|
208
|
-
getId
|
|
179
|
+
getId() {
|
|
209
180
|
return id;
|
|
210
181
|
},
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
*
|
|
214
|
-
* @returns {String}
|
|
182
|
+
/**
|
|
183
|
+
* Gets the type of navigable element
|
|
184
|
+
* @returns {String}
|
|
215
185
|
*/
|
|
216
|
-
getType
|
|
186
|
+
getType() {
|
|
217
187
|
return 'navigator';
|
|
218
188
|
},
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
*
|
|
222
|
-
* @returns {jQuery}
|
|
189
|
+
/**
|
|
190
|
+
* Gets the defined group the navigator group belongs to
|
|
191
|
+
* @returns {jQuery}
|
|
223
192
|
*/
|
|
224
|
-
getElement
|
|
193
|
+
getElement() {
|
|
225
194
|
return $group;
|
|
226
195
|
},
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
*
|
|
230
|
-
* @returns {Object}
|
|
196
|
+
/**
|
|
197
|
+
* Returns the current cursor of the navigator
|
|
198
|
+
* @returns {Object}
|
|
231
199
|
*/
|
|
232
|
-
getCursor
|
|
200
|
+
getCursor() {
|
|
233
201
|
return this.getCursorAt(this.getCurrentPosition());
|
|
234
202
|
},
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
*
|
|
238
|
-
* @
|
|
239
|
-
* @returns {navigableDomElement}
|
|
203
|
+
/**
|
|
204
|
+
* Gets a navigable at a given position
|
|
205
|
+
* @param {Number} position
|
|
206
|
+
* @returns {navigableDomElement}
|
|
240
207
|
*/
|
|
241
|
-
getNavigableAt
|
|
208
|
+
getNavigableAt(position) {
|
|
242
209
|
if (position >= 0 && navigableElements[position]) {
|
|
243
210
|
return navigableElements[position];
|
|
244
211
|
}
|
|
245
|
-
|
|
246
212
|
return null;
|
|
247
213
|
},
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
*
|
|
251
|
-
* @
|
|
252
|
-
* @returns {Object}
|
|
214
|
+
/**
|
|
215
|
+
* Gets the cursor at a given position
|
|
216
|
+
* @param {Number} position
|
|
217
|
+
* @returns {Object}
|
|
253
218
|
*/
|
|
254
|
-
getCursorAt
|
|
255
|
-
|
|
219
|
+
getCursorAt(position) {
|
|
220
|
+
const navigable = this.getNavigableAt(position);
|
|
256
221
|
return {
|
|
257
222
|
position: navigable ? position : -1,
|
|
258
|
-
navigable
|
|
223
|
+
navigable
|
|
259
224
|
};
|
|
260
225
|
},
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
* @
|
|
266
|
-
* @
|
|
267
|
-
* @fires
|
|
268
|
-
* @fires focus on the new cursor
|
|
226
|
+
/**
|
|
227
|
+
* Sets the focus to the element at the given position
|
|
228
|
+
*
|
|
229
|
+
* @param {Number} position
|
|
230
|
+
* @returns {keyNavigator}
|
|
231
|
+
* @fires blur on the previous cursor
|
|
232
|
+
* @fires focus on the new cursor
|
|
269
233
|
*/
|
|
270
|
-
setCursorAt
|
|
234
|
+
setCursorAt(position) {
|
|
271
235
|
if (navigableElements[position]) {
|
|
272
|
-
|
|
273
|
-
|
|
236
|
+
const cursor = this.getCursorAt(lastPosition);
|
|
274
237
|
if (cursor.navigable) {
|
|
275
|
-
/**
|
|
276
|
-
* @event blur
|
|
277
|
-
* @param {Object} cursor
|
|
238
|
+
/**
|
|
239
|
+
* @event blur
|
|
240
|
+
* @param {Object} cursor
|
|
278
241
|
*/
|
|
279
242
|
this.trigger('blur', cursor);
|
|
280
243
|
}
|
|
281
|
-
|
|
282
|
-
var direction = position - lastPosition;
|
|
244
|
+
const direction = position - lastPosition;
|
|
283
245
|
lastPosition = position;
|
|
284
246
|
navigableElements[position].focus(direction);
|
|
285
|
-
/**
|
|
286
|
-
* @event focus
|
|
287
|
-
* @param {Object} cursor
|
|
288
|
-
*/
|
|
289
247
|
|
|
248
|
+
/**
|
|
249
|
+
* @event focus
|
|
250
|
+
* @param {Object} cursor
|
|
251
|
+
*/
|
|
290
252
|
this.trigger('focus', this.getCursor());
|
|
291
253
|
}
|
|
292
|
-
|
|
293
254
|
return this;
|
|
294
255
|
},
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
*
|
|
298
|
-
* @returns {Number}
|
|
256
|
+
/**
|
|
257
|
+
* Returns the current position in the navigator
|
|
258
|
+
* @returns {Number}
|
|
299
259
|
*/
|
|
300
|
-
getCurrentPosition
|
|
260
|
+
getCurrentPosition() {
|
|
301
261
|
if (document.activeElement) {
|
|
302
262
|
return _.findIndex(navigableElements, isNavigableFocused);
|
|
303
263
|
}
|
|
304
|
-
|
|
305
264
|
return -1;
|
|
306
265
|
},
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
*
|
|
310
|
-
* @returns {Object}
|
|
266
|
+
/**
|
|
267
|
+
* Returns the current navigable in the navigator
|
|
268
|
+
* @returns {Object}
|
|
311
269
|
*/
|
|
312
|
-
getCurrentNavigable
|
|
313
|
-
|
|
314
|
-
|
|
270
|
+
getCurrentNavigable() {
|
|
271
|
+
const position = this.getCurrentPosition();
|
|
315
272
|
if (position >= 0) {
|
|
316
273
|
return navigableElements[position];
|
|
317
274
|
}
|
|
318
|
-
|
|
319
275
|
return null;
|
|
320
276
|
},
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
*
|
|
324
|
-
* @returns {Array}
|
|
277
|
+
/**
|
|
278
|
+
* Returns the array of navigable objects composing the navigator
|
|
279
|
+
* @returns {Array}
|
|
325
280
|
*/
|
|
326
|
-
getNavigableElements
|
|
281
|
+
getNavigableElements() {
|
|
327
282
|
return navigableElements.slice();
|
|
328
283
|
},
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
*
|
|
332
|
-
* @returns {boolean}
|
|
284
|
+
/**
|
|
285
|
+
* Checks if the group and at least one navigable element is visible
|
|
286
|
+
* @returns {boolean}
|
|
333
287
|
*/
|
|
334
|
-
isVisible
|
|
288
|
+
isVisible() {
|
|
335
289
|
if (!$group || $group.is(':visible')) {
|
|
336
|
-
return navigableElements.some(
|
|
337
|
-
return navigable.isVisible();
|
|
338
|
-
});
|
|
290
|
+
return navigableElements.some(navigable => navigable.isVisible());
|
|
339
291
|
}
|
|
340
|
-
|
|
341
292
|
return false;
|
|
342
293
|
},
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
*
|
|
346
|
-
* @returns {Boolean}
|
|
294
|
+
/**
|
|
295
|
+
* Checks if the group and at least one navigable element is enabled
|
|
296
|
+
* @returns {Boolean}
|
|
347
297
|
*/
|
|
348
|
-
isEnabled
|
|
298
|
+
isEnabled() {
|
|
349
299
|
if (!$group || !$group.is(':disabled')) {
|
|
350
|
-
return navigableElements.some(
|
|
351
|
-
return navigable.isEnabled();
|
|
352
|
-
});
|
|
300
|
+
return navigableElements.some(navigable => navigable.isEnabled());
|
|
353
301
|
}
|
|
354
|
-
|
|
355
302
|
return false;
|
|
356
303
|
},
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
*
|
|
360
|
-
* @returns {Boolean}
|
|
304
|
+
/**
|
|
305
|
+
* Checks if at least one navigable element is focused
|
|
306
|
+
* @returns {Boolean}
|
|
361
307
|
*/
|
|
362
|
-
isFocused
|
|
308
|
+
isFocused() {
|
|
363
309
|
if (document.activeElement) {
|
|
364
|
-
return navigableElements.some(
|
|
365
|
-
return navigable.isFocused();
|
|
366
|
-
});
|
|
310
|
+
return navigableElements.some(navigable => navigable.isFocused());
|
|
367
311
|
}
|
|
368
|
-
|
|
369
312
|
return false;
|
|
370
313
|
},
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
*
|
|
374
|
-
* @returns {keyNavigator}
|
|
314
|
+
/**
|
|
315
|
+
* Sets the focus on the first available focusable element
|
|
316
|
+
* @returns {keyNavigator}
|
|
375
317
|
*/
|
|
376
|
-
first
|
|
318
|
+
first() {
|
|
377
319
|
this.setCursorAt(getClosestPositionRight(0));
|
|
378
320
|
return this;
|
|
379
321
|
},
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
*
|
|
383
|
-
* @returns {keyNavigator}
|
|
322
|
+
/**
|
|
323
|
+
* Sets the focus on the last available focusable element
|
|
324
|
+
* @returns {keyNavigator}
|
|
384
325
|
*/
|
|
385
|
-
last
|
|
326
|
+
last() {
|
|
386
327
|
this.setCursorAt(getClosestPositionLeft(navigableElements.length - 1));
|
|
387
328
|
return this;
|
|
388
329
|
},
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
*
|
|
392
|
-
*
|
|
393
|
-
* @
|
|
394
|
-
* @fires
|
|
395
|
-
* @fires next when the cursor successfully moved to the next position
|
|
330
|
+
/**
|
|
331
|
+
* Moves the cursor to the next position
|
|
332
|
+
*
|
|
333
|
+
* @returns {keyNavigator}
|
|
334
|
+
* @fires upperbound when we cannot move further
|
|
335
|
+
* @fires next when the cursor successfully moved to the next position
|
|
396
336
|
*/
|
|
397
|
-
next
|
|
398
|
-
|
|
399
|
-
|
|
337
|
+
next() {
|
|
338
|
+
let position = this.getCurrentPosition();
|
|
400
339
|
if (position >= 0) {
|
|
401
340
|
position = getClosestPositionRight(position + 1);
|
|
402
|
-
|
|
403
341
|
if (position >= 0) {
|
|
404
342
|
this.setCursorAt(position);
|
|
405
343
|
} else if (navigatorConfig.loop) {
|
|
406
344
|
this.first();
|
|
407
345
|
} else {
|
|
408
|
-
/**
|
|
409
|
-
* reaching the end of the list
|
|
410
|
-
* @event upperbound
|
|
346
|
+
/**
|
|
347
|
+
* reaching the end of the list
|
|
348
|
+
* @event upperbound
|
|
411
349
|
*/
|
|
412
350
|
this.trigger('upperbound');
|
|
413
351
|
}
|
|
352
|
+
const cursor = this.getCursor();
|
|
414
353
|
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
* @
|
|
418
|
-
* @param {Object} cursor
|
|
354
|
+
/**
|
|
355
|
+
* @event next
|
|
356
|
+
* @param {Object} cursor
|
|
419
357
|
*/
|
|
420
|
-
|
|
421
358
|
this.trigger('next', cursor);
|
|
422
359
|
} else {
|
|
423
360
|
this.first();
|
|
424
361
|
}
|
|
425
|
-
|
|
426
362
|
return this;
|
|
427
363
|
},
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
*
|
|
431
|
-
*
|
|
432
|
-
* @
|
|
433
|
-
* @fires
|
|
434
|
-
* @fires previous when the cursor successfully moved to the previous position
|
|
364
|
+
/**
|
|
365
|
+
* Moves the cursor to the previous position
|
|
366
|
+
*
|
|
367
|
+
* @returns {keyNavigator}
|
|
368
|
+
* @fires lowerbound when we cannot move lower
|
|
369
|
+
* @fires previous when the cursor successfully moved to the previous position
|
|
435
370
|
*/
|
|
436
|
-
previous
|
|
437
|
-
|
|
438
|
-
|
|
371
|
+
previous() {
|
|
372
|
+
let position = this.getCurrentPosition();
|
|
439
373
|
if (position >= 0) {
|
|
440
374
|
position = getClosestPositionLeft(position - 1);
|
|
441
|
-
|
|
442
375
|
if (position >= 0) {
|
|
443
376
|
this.setCursorAt(position);
|
|
444
377
|
} else if (navigatorConfig.loop) {
|
|
445
378
|
this.last();
|
|
446
379
|
} else {
|
|
447
|
-
/**
|
|
448
|
-
* reaching the end of the list
|
|
449
|
-
* @event lowerbound
|
|
380
|
+
/**
|
|
381
|
+
* reaching the end of the list
|
|
382
|
+
* @event lowerbound
|
|
450
383
|
*/
|
|
451
384
|
this.trigger('lowerbound');
|
|
452
385
|
}
|
|
386
|
+
const cursor = this.getCursor();
|
|
453
387
|
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
* @
|
|
457
|
-
* @param {Object} cursor
|
|
388
|
+
/**
|
|
389
|
+
* @event previous
|
|
390
|
+
* @param {Object} cursor
|
|
458
391
|
*/
|
|
459
|
-
|
|
460
392
|
this.trigger('previous', cursor);
|
|
461
393
|
} else {
|
|
462
394
|
this.first();
|
|
463
395
|
}
|
|
464
|
-
|
|
465
396
|
return this;
|
|
466
397
|
},
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
*
|
|
470
|
-
*
|
|
471
|
-
* @
|
|
472
|
-
* @
|
|
473
|
-
* @fires activate
|
|
398
|
+
/**
|
|
399
|
+
* Activates the focused element, if any
|
|
400
|
+
*
|
|
401
|
+
* @param {Object} target
|
|
402
|
+
* @returns {keyNavigator}
|
|
403
|
+
* @fires activate
|
|
474
404
|
*/
|
|
475
|
-
activate
|
|
476
|
-
|
|
477
|
-
|
|
405
|
+
activate(target) {
|
|
406
|
+
const cursor = this.getCursor();
|
|
478
407
|
if (cursor.navigable) {
|
|
479
|
-
/**
|
|
480
|
-
* @event activate
|
|
481
|
-
* @param {Object} cursor
|
|
482
|
-
* @param {Object} target
|
|
408
|
+
/**
|
|
409
|
+
* @event activate
|
|
410
|
+
* @param {Object} cursor
|
|
411
|
+
* @param {Object} target
|
|
483
412
|
*/
|
|
484
413
|
this.trigger('activate', cursor, target);
|
|
485
414
|
}
|
|
486
|
-
|
|
487
415
|
return this;
|
|
488
416
|
},
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
*
|
|
492
|
-
* @returns {keyNavigator}
|
|
417
|
+
/**
|
|
418
|
+
* Blurs the focused element, if any
|
|
419
|
+
* @returns {keyNavigator}
|
|
493
420
|
*/
|
|
494
|
-
blur
|
|
495
|
-
|
|
496
|
-
|
|
421
|
+
blur() {
|
|
422
|
+
const cursor = this.getCursorAt(lastPosition);
|
|
497
423
|
if (cursor.navigable) {
|
|
498
424
|
cursor.navigable.blur();
|
|
499
425
|
}
|
|
500
|
-
|
|
501
426
|
return this;
|
|
502
427
|
},
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
*
|
|
506
|
-
*
|
|
507
|
-
*
|
|
508
|
-
* A
|
|
509
|
-
*
|
|
510
|
-
* @returns {keyNavigator}
|
|
428
|
+
/**
|
|
429
|
+
* Sets the focus to the current element
|
|
430
|
+
* @param {Number} [direction=1] - The direction that lead to this navigator.
|
|
431
|
+
* This will condition which element to focus if there is no default.
|
|
432
|
+
* A positive direction (or null) will lead to the first focusable element.
|
|
433
|
+
* A negative direction will lead to the last focusable element.
|
|
434
|
+
* @returns {keyNavigator}
|
|
511
435
|
*/
|
|
512
|
-
focus
|
|
513
|
-
|
|
514
|
-
|
|
436
|
+
focus() {
|
|
437
|
+
let direction = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1;
|
|
438
|
+
let position = -1;
|
|
515
439
|
|
|
440
|
+
// try to get the default position
|
|
516
441
|
if (navigatorConfig.keepState && this.getNavigableAt(lastPosition)) {
|
|
517
442
|
position = lastPosition;
|
|
518
443
|
} else {
|
|
519
444
|
lastPosition = -1;
|
|
520
|
-
|
|
521
445
|
if ('undefined' !== typeof navigatorConfig.defaultPosition) {
|
|
522
446
|
if (_.isFunction(navigatorConfig.defaultPosition)) {
|
|
523
447
|
position = navigatorConfig.defaultPosition(this.getNavigableElements(), direction);
|
|
@@ -525,9 +449,9 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
|
|
|
525
449
|
position = navigatorConfig.defaultPosition;
|
|
526
450
|
}
|
|
527
451
|
}
|
|
528
|
-
}
|
|
529
|
-
|
|
452
|
+
}
|
|
530
453
|
|
|
454
|
+
// select the default position with respect to the movement direction
|
|
531
455
|
if (position === -1) {
|
|
532
456
|
if (direction < 0) {
|
|
533
457
|
position = getClosestPositionLeft(navigableElements.length - 1);
|
|
@@ -535,12 +459,11 @@ define(['jquery', 'lodash', 'core/eventifier', 'ui/keyNavigation/navigableDomEle
|
|
|
535
459
|
position = 0;
|
|
536
460
|
}
|
|
537
461
|
}
|
|
538
|
-
|
|
539
462
|
this.setCursorAt(getClosestPositionRight(position));
|
|
540
463
|
return this;
|
|
541
464
|
}
|
|
542
465
|
});
|
|
543
|
-
return keyNavigator.init().on('key',
|
|
466
|
+
return keyNavigator.init().on('key', (key, el) => {
|
|
544
467
|
if (key === 'space' || key === 'enter') {
|
|
545
468
|
keyNavigator.activate(el);
|
|
546
469
|
} else {
|