@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
package/dist/autocomplete.js
CHANGED
|
@@ -6,279 +6,259 @@ define(['jquery', 'lodash', 'i18n', 'util/capitalize', 'ui/tooltip', 'jquery.aut
|
|
|
6
6
|
capitalize = capitalize && Object.prototype.hasOwnProperty.call(capitalize, 'default') ? capitalize['default'] : capitalize;
|
|
7
7
|
tooltip = tooltip && Object.prototype.hasOwnProperty.call(tooltip, 'default') ? tooltip['default'] : tooltip;
|
|
8
8
|
|
|
9
|
-
/**
|
|
10
|
-
* This program is free software; you can redistribute it and/or
|
|
11
|
-
* modify it under the terms of the GNU General Public License
|
|
12
|
-
* as published by the Free Software Foundation; under version 2
|
|
13
|
-
* of the License (non-upgradable).
|
|
14
|
-
*
|
|
15
|
-
* This program is distributed in the hope that it will be useful,
|
|
16
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
18
|
-
* GNU General Public License for more details.
|
|
19
|
-
*
|
|
20
|
-
* You should have received a copy of the GNU General Public License
|
|
21
|
-
* along with this program; if not, write to the Free Software
|
|
22
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
23
|
-
*
|
|
24
|
-
* Copyright (c) 2015-2020 (original work) Open Assessment Technologies SA ;
|
|
25
|
-
*/
|
|
26
|
-
/**
|
|
27
|
-
* Namespace for component
|
|
28
|
-
* @type {String}
|
|
9
|
+
/**
|
|
10
|
+
* This program is free software; you can redistribute it and/or
|
|
11
|
+
* modify it under the terms of the GNU General Public License
|
|
12
|
+
* as published by the Free Software Foundation; under version 2
|
|
13
|
+
* of the License (non-upgradable).
|
|
14
|
+
*
|
|
15
|
+
* This program is distributed in the hope that it will be useful,
|
|
16
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
18
|
+
* GNU General Public License for more details.
|
|
19
|
+
*
|
|
20
|
+
* You should have received a copy of the GNU General Public License
|
|
21
|
+
* along with this program; if not, write to the Free Software
|
|
22
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
23
|
+
*
|
|
24
|
+
* Copyright (c) 2015-2020 (original work) Open Assessment Technologies SA ;
|
|
29
25
|
*/
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
*
|
|
34
|
-
* @type {Object}
|
|
27
|
+
/**
|
|
28
|
+
* Namespace for component
|
|
29
|
+
* @type {String}
|
|
35
30
|
*/
|
|
31
|
+
var NS = 'autocompleter';
|
|
36
32
|
|
|
33
|
+
/**
|
|
34
|
+
* Default config for tooltip displayed when the server returns less records than available
|
|
35
|
+
* @type {Object}
|
|
36
|
+
*/
|
|
37
37
|
var tooltipConfigTooMany = {
|
|
38
38
|
container: $('body').get(0),
|
|
39
39
|
trigger: 'manual'
|
|
40
40
|
};
|
|
41
|
-
|
|
42
41
|
var toolTipMessage = __('Too many suggestions match your query. Only a few are listed');
|
|
43
|
-
/**
|
|
44
|
-
* A list of default values for allowed options
|
|
45
|
-
* @type {Object}
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
42
|
|
|
43
|
+
/**
|
|
44
|
+
* A list of default values for allowed options
|
|
45
|
+
* @type {Object}
|
|
46
|
+
*/
|
|
49
47
|
var defaults = {
|
|
50
|
-
/**
|
|
51
|
-
* The name of the wrapped plugin
|
|
52
|
-
* @type {String}
|
|
48
|
+
/**
|
|
49
|
+
* The name of the wrapped plugin
|
|
50
|
+
* @type {String}
|
|
53
51
|
*/
|
|
54
52
|
pluginName: 'autocomplete',
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
*
|
|
58
|
-
* @type {String}
|
|
53
|
+
/**
|
|
54
|
+
* Defines the URL to data source
|
|
55
|
+
* @type {String}
|
|
59
56
|
*/
|
|
60
57
|
url: null,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
*
|
|
64
|
-
* @type {Object}
|
|
58
|
+
/**
|
|
59
|
+
* Defines a list of extra params to be sent with the query.
|
|
60
|
+
* @type {Object}
|
|
65
61
|
*/
|
|
66
62
|
params: null,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* @type {String}
|
|
63
|
+
/**
|
|
64
|
+
* Defines the root for seach params.
|
|
65
|
+
* When provided, all the search params are wrapped under the same root.
|
|
66
|
+
* @type {String}
|
|
72
67
|
*/
|
|
73
68
|
paramsRoot: null,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
*
|
|
77
|
-
* @type {String|String[]}
|
|
69
|
+
/**
|
|
70
|
+
* Defines the name of the param providing the ontology URI
|
|
71
|
+
* @type {String|String[]}
|
|
78
72
|
*/
|
|
79
73
|
ontologyParam: 'rootNode',
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
*
|
|
83
|
-
* @type {String}
|
|
74
|
+
/**
|
|
75
|
+
* Defines the name of the param providing the searched pattern
|
|
76
|
+
* @type {String}
|
|
84
77
|
*/
|
|
85
78
|
queryParam: 'query',
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
*
|
|
89
|
-
* @type {String}
|
|
79
|
+
/**
|
|
80
|
+
* Defines the request method. Can be either GET or POST, default to GET.
|
|
81
|
+
* @type {String}
|
|
90
82
|
*/
|
|
91
83
|
type: 'GET',
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
*
|
|
95
|
-
* @type {String}
|
|
84
|
+
/**
|
|
85
|
+
* Defines the URI of the target ontology.
|
|
86
|
+
* @type {String}
|
|
96
87
|
*/
|
|
97
88
|
ontology: null,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
*
|
|
101
|
-
* @type {String}
|
|
89
|
+
/**
|
|
90
|
+
* The current value
|
|
91
|
+
* @type {String}
|
|
102
92
|
*/
|
|
103
93
|
value: null,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
*
|
|
107
|
-
* @type {String}
|
|
94
|
+
/**
|
|
95
|
+
* The current label
|
|
96
|
+
* @type {String}
|
|
108
97
|
*/
|
|
109
98
|
label: null,
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
*
|
|
113
|
-
* @type {String}
|
|
99
|
+
/**
|
|
100
|
+
* Defines the name of the field containing the value within the received data.
|
|
101
|
+
* @type {String}
|
|
114
102
|
*/
|
|
115
103
|
valueField: 'id',
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
*
|
|
119
|
-
* @type {String}
|
|
104
|
+
/**
|
|
105
|
+
* Defines the name of the field containing the label within the received data.
|
|
106
|
+
* @type {String}
|
|
120
107
|
*/
|
|
121
108
|
labelField: 'http://www.w3.org/2000/01/rdf-schema#label',
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* @type {Boolean}
|
|
109
|
+
/**
|
|
110
|
+
* When set to true the component acts as a data provider.
|
|
111
|
+
* In this mode, each time an item is selected from a list,
|
|
112
|
+
* it will be directly removed from the input, so the listener
|
|
113
|
+
* has to take care of the selected value and to add it in its own list.
|
|
114
|
+
* @type {Boolean}
|
|
129
115
|
*/
|
|
130
116
|
isProvider: false,
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
*
|
|
134
|
-
* @type {Boolean}
|
|
117
|
+
/**
|
|
118
|
+
* When set to true the component prevents auto submit when the user hit enter on the text box.
|
|
119
|
+
* @type {Boolean}
|
|
135
120
|
*/
|
|
136
121
|
preventSubmit: false,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
* Number
|
|
140
|
-
* @type {Number}
|
|
122
|
+
/**
|
|
123
|
+
* Number of milliseconds to defer ajax request.
|
|
124
|
+
* @type {Number}
|
|
141
125
|
*/
|
|
142
126
|
delay: 250,
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
*
|
|
146
|
-
* @type {Number}
|
|
127
|
+
/**
|
|
128
|
+
* Minimum number of characters required to trigger the ajax request.
|
|
129
|
+
* @type {Number}
|
|
147
130
|
*/
|
|
148
131
|
minChars: 3,
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
*
|
|
152
|
-
* @type {Boolean}
|
|
132
|
+
/**
|
|
133
|
+
* Flag used to checks if too many suggestions are available on server side for the current query
|
|
134
|
+
* @type {Boolean}
|
|
153
135
|
*/
|
|
154
136
|
tooManySuggestions: false,
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
*
|
|
158
|
-
* @type {Boolean}
|
|
137
|
+
/**
|
|
138
|
+
* Flag used to auto add a wildcard char at the end of the query.
|
|
139
|
+
* @type {Boolean}
|
|
159
140
|
*/
|
|
160
141
|
addWilcard: false
|
|
161
142
|
};
|
|
162
143
|
var autocompleter = {
|
|
163
|
-
/**
|
|
164
|
-
* @event beforeSelectItem Fired when the user select a suggestion in the list.
|
|
165
|
-
* @param {Event} event
|
|
166
|
-
* @param {String} value
|
|
167
|
-
* @param {String} label
|
|
168
|
-
* @param {autocompleter} instance
|
|
169
|
-
* @returns {Boolean} The handler can returns `false` to prevent default handling
|
|
170
|
-
*/
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* @event selectItem Fired after the user has selected a suggestion in the list.
|
|
174
|
-
* @param {Event} event
|
|
175
|
-
* @param {String} value
|
|
176
|
-
* @param {String} label
|
|
177
|
-
* @param {autocompleter} instance
|
|
178
|
-
*/
|
|
179
|
-
|
|
180
|
-
/**
|
|
181
|
-
* @event searchStart Fired when the user input text and a query is about to be requested.
|
|
182
|
-
* @param {Event} event
|
|
183
|
-
* @param {Object} params The list of params which will be bound the query
|
|
184
|
-
* @param {autocompleter} instance
|
|
185
|
-
* @returns {Boolean} The handler can returns `false` to prevent default handling
|
|
186
|
-
*/
|
|
187
|
-
|
|
188
|
-
/**
|
|
189
|
-
* @event searchComplete Fired after ajax response is processed.
|
|
190
|
-
* @param {Event} event
|
|
191
|
-
* @param {String} query The requested fragment
|
|
192
|
-
* @param {Object} suggestions An array containing the results.
|
|
193
|
-
* @param {autocompleter} instance
|
|
194
|
-
*/
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* @event searchError Fired if ajax request fails.
|
|
198
|
-
* @param {Event} event
|
|
199
|
-
* @param {String} query
|
|
200
|
-
* @param {jqXHR} jqXHR
|
|
201
|
-
* @param {String} textStatus
|
|
202
|
-
* @param {Exception} errorThrown
|
|
203
|
-
* @param {autocompleter} instance
|
|
204
|
-
*/
|
|
205
|
-
|
|
206
|
-
/**
|
|
207
|
-
* @event invalidateSelection Fired when input is altered after selection has been made.
|
|
208
|
-
* @param {Event} event
|
|
209
|
-
* @param {autocompleter} instance
|
|
210
|
-
*/
|
|
211
|
-
|
|
212
|
-
/**
|
|
213
|
-
* @event beforeRender Fired before displaying the suggestions.
|
|
214
|
-
* You may manipulate suggestions DOM before it is displayed.
|
|
215
|
-
* @param {Event} event
|
|
216
|
-
* @param {jQuery} $container
|
|
217
|
-
* @param {autocompleter} instance
|
|
218
|
-
*/
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Initializes the component. Installs the autocompleter onto an element.
|
|
222
|
-
* @param {jQuery|Element|String} element The element on which install the autocompleter
|
|
223
|
-
* @param {Object} options A list of options to set
|
|
224
|
-
* The complete list of plugin options can be found at: https://github.com/devbridge/jQuery-Autocomplete
|
|
225
|
-
* @returns {autocompleter} this
|
|
226
|
-
*/
|
|
227
|
-
init: function
|
|
144
|
+
/**
|
|
145
|
+
* @event beforeSelectItem Fired when the user select a suggestion in the list.
|
|
146
|
+
* @param {Event} event
|
|
147
|
+
* @param {String} value
|
|
148
|
+
* @param {String} label
|
|
149
|
+
* @param {autocompleter} instance
|
|
150
|
+
* @returns {Boolean} The handler can returns `false` to prevent default handling
|
|
151
|
+
*/
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* @event selectItem Fired after the user has selected a suggestion in the list.
|
|
155
|
+
* @param {Event} event
|
|
156
|
+
* @param {String} value
|
|
157
|
+
* @param {String} label
|
|
158
|
+
* @param {autocompleter} instance
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
/**
|
|
162
|
+
* @event searchStart Fired when the user input text and a query is about to be requested.
|
|
163
|
+
* @param {Event} event
|
|
164
|
+
* @param {Object} params The list of params which will be bound the query
|
|
165
|
+
* @param {autocompleter} instance
|
|
166
|
+
* @returns {Boolean} The handler can returns `false` to prevent default handling
|
|
167
|
+
*/
|
|
168
|
+
|
|
169
|
+
/**
|
|
170
|
+
* @event searchComplete Fired after ajax response is processed.
|
|
171
|
+
* @param {Event} event
|
|
172
|
+
* @param {String} query The requested fragment
|
|
173
|
+
* @param {Object} suggestions An array containing the results.
|
|
174
|
+
* @param {autocompleter} instance
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @event searchError Fired if ajax request fails.
|
|
179
|
+
* @param {Event} event
|
|
180
|
+
* @param {String} query
|
|
181
|
+
* @param {jqXHR} jqXHR
|
|
182
|
+
* @param {String} textStatus
|
|
183
|
+
* @param {Exception} errorThrown
|
|
184
|
+
* @param {autocompleter} instance
|
|
185
|
+
*/
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* @event invalidateSelection Fired when input is altered after selection has been made.
|
|
189
|
+
* @param {Event} event
|
|
190
|
+
* @param {autocompleter} instance
|
|
191
|
+
*/
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* @event beforeRender Fired before displaying the suggestions.
|
|
195
|
+
* You may manipulate suggestions DOM before it is displayed.
|
|
196
|
+
* @param {Event} event
|
|
197
|
+
* @param {jQuery} $container
|
|
198
|
+
* @param {autocompleter} instance
|
|
199
|
+
*/
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Initializes the component. Installs the autocompleter onto an element.
|
|
203
|
+
* @param {jQuery|Element|String} element The element on which install the autocompleter
|
|
204
|
+
* @param {Object} options A list of options to set
|
|
205
|
+
* The complete list of plugin options can be found at: https://github.com/devbridge/jQuery-Autocomplete
|
|
206
|
+
* @returns {autocompleter} this
|
|
207
|
+
*/
|
|
208
|
+
init: function (element, options) {
|
|
228
209
|
// fetch the element to handle, we need an input element
|
|
229
210
|
this.$element = $(element);
|
|
230
|
-
|
|
231
211
|
if (!this.$element.is(':input')) {
|
|
232
212
|
this.$element = this.$element.find(':input');
|
|
233
|
-
}
|
|
234
|
-
|
|
213
|
+
}
|
|
235
214
|
|
|
236
|
-
|
|
215
|
+
// prepare the tooltip displayed when more suggestions are available on the server side for the current query
|
|
216
|
+
this.tooltip = tooltip.info(this.$element, toolTipMessage, tooltipConfigTooMany);
|
|
237
217
|
|
|
238
|
-
|
|
218
|
+
// loads some options from HTML5 data-* attributes
|
|
219
|
+
options = _.assign(_.clone(options || {}), _.pick(this.$element.data(), ['url', 'ontology', 'paramsRoot', 'ontologyParam', 'queryParam', 'type', 'valueField', 'labelField', 'isProvider', 'preventSubmit', 'delay', 'minChars']));
|
|
239
220
|
|
|
240
|
-
|
|
221
|
+
// install the keyboard listener used to prevent auto submits
|
|
222
|
+
this.on('keyup keydown keypress', this._onKeyEvent.bind(this));
|
|
241
223
|
|
|
224
|
+
// install the events listener used to show/hide tooltip
|
|
242
225
|
this.on('focus', this._onFocus.bind(this));
|
|
243
|
-
this.on('blur', this._onBlur.bind(this));
|
|
226
|
+
this.on('blur', this._onBlur.bind(this));
|
|
244
227
|
|
|
228
|
+
// apply the nested plugin onto the element
|
|
245
229
|
this.$element[this.pluginName](this.parseOptions(options));
|
|
246
230
|
return this;
|
|
247
231
|
},
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
*
|
|
251
|
-
*
|
|
252
|
-
*
|
|
253
|
-
* @returns {autocompleter} this
|
|
232
|
+
/**
|
|
233
|
+
* Destroys the wrapped plugin instance.
|
|
234
|
+
* All events are detached and suggestion containers removed.
|
|
235
|
+
* The value is conserved.
|
|
236
|
+
* @returns {autocompleter} this
|
|
254
237
|
*/
|
|
255
|
-
destroy: function
|
|
238
|
+
destroy: function () {
|
|
256
239
|
this.applyPlugin('dispose');
|
|
257
|
-
|
|
258
240
|
if (this.$element) {
|
|
259
241
|
this.$element.off('.' + NS);
|
|
260
242
|
this.tooltip.dispose();
|
|
261
243
|
}
|
|
262
|
-
|
|
263
244
|
this.$element = null;
|
|
264
245
|
return this;
|
|
265
246
|
},
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
*
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
parseOptions: function parseOptions(options) {
|
|
247
|
+
/**
|
|
248
|
+
* Parses the provided options and filters them.
|
|
249
|
+
* Separates the component options from those which go the plugin instance.
|
|
250
|
+
* Immediately applies the component options, returns the plugin options.
|
|
251
|
+
* @param {Object} options A list of options to filter.
|
|
252
|
+
* The complete list of plugin options can be found at: https://github.com/devbridge/jQuery-Autocomplete
|
|
253
|
+
* @returns {Object} Returns the list of plugin options and their values.
|
|
254
|
+
*/
|
|
255
|
+
parseOptions: function (options) {
|
|
276
256
|
var self = this;
|
|
277
|
-
var pluginOptions = {};
|
|
257
|
+
var pluginOptions = {};
|
|
278
258
|
|
|
259
|
+
// filter the options
|
|
279
260
|
_.forOwn(options, function (value, name) {
|
|
280
261
|
var setterName = 'set' + capitalize(name);
|
|
281
|
-
|
|
282
262
|
if (self[setterName]) {
|
|
283
263
|
// a setter exists for this option
|
|
284
264
|
self[setterName](value);
|
|
@@ -289,9 +269,9 @@ define(['jquery', 'lodash', 'i18n', 'util/capitalize', 'ui/tooltip', 'jquery.aut
|
|
|
289
269
|
// not a component option, forward it to the plugin instance
|
|
290
270
|
pluginOptions[name] = value;
|
|
291
271
|
}
|
|
292
|
-
});
|
|
293
|
-
|
|
272
|
+
});
|
|
294
273
|
|
|
274
|
+
// adjust options to be forwarded to the plugin instance
|
|
295
275
|
_.assign(pluginOptions, {
|
|
296
276
|
onSelect: this._onSelect.bind(this),
|
|
297
277
|
onSearchStart: this._onSearchStart.bind(this),
|
|
@@ -313,634 +293,556 @@ define(['jquery', 'lodash', 'i18n', 'util/capitalize', 'ui/tooltip', 'jquery.aut
|
|
|
313
293
|
dataType: 'json'
|
|
314
294
|
}
|
|
315
295
|
});
|
|
316
|
-
|
|
317
296
|
return pluginOptions;
|
|
318
297
|
},
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
* @returns {autocompleter} this
|
|
298
|
+
/**
|
|
299
|
+
* Applies options onto the component and the wrapped plugin instance.
|
|
300
|
+
* @param {Object} options A list of named options to set.
|
|
301
|
+
* The complete list of plugin options can be found at: https://github.com/devbridge/jQuery-Autocomplete
|
|
302
|
+
* @returns {autocompleter} this
|
|
325
303
|
*/
|
|
326
|
-
setOptions: function
|
|
304
|
+
setOptions: function (options) {
|
|
327
305
|
this.applyPlugin('setOptions', [this.parseOptions(options)]);
|
|
328
306
|
return this;
|
|
329
307
|
},
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
*
|
|
333
|
-
* @param {
|
|
334
|
-
* @
|
|
335
|
-
* @returns {*} Returns the callee result
|
|
308
|
+
/**
|
|
309
|
+
* Calls a method on the inner element with the provided list of params.
|
|
310
|
+
* @param {String} action The name of the method to call
|
|
311
|
+
* @param {Array} [params] A list of optional params to pass to the called method
|
|
312
|
+
* @returns {*} Returns the callee result
|
|
336
313
|
*/
|
|
337
|
-
applyElement: function
|
|
314
|
+
applyElement: function (action, params) {
|
|
338
315
|
var $element = this.$element;
|
|
339
|
-
|
|
340
316
|
if ($element) {
|
|
341
317
|
return $element[action].apply($element, params);
|
|
342
318
|
}
|
|
343
319
|
},
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
*
|
|
347
|
-
* @param {
|
|
348
|
-
* @
|
|
349
|
-
* @returns {*} Returns the callee result
|
|
320
|
+
/**
|
|
321
|
+
* Calls a method on the wrapped plugin with the provided list of params.
|
|
322
|
+
* @param {String} action The name of the method to call
|
|
323
|
+
* @param {Array} [params] A list of optional params to pass to the called method
|
|
324
|
+
* @returns {*} Returns the callee result
|
|
350
325
|
*/
|
|
351
|
-
applyPlugin: function
|
|
326
|
+
applyPlugin: function (action, params) {
|
|
352
327
|
var $element = this.$element;
|
|
353
328
|
var $plugin = $element && $element[this.pluginName]();
|
|
354
|
-
|
|
355
329
|
if ($plugin) {
|
|
356
330
|
return $plugin[action].apply($plugin, params);
|
|
357
331
|
}
|
|
358
332
|
},
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
* Shows the tooltip displayed when the server returns less records than available
|
|
333
|
+
/**
|
|
334
|
+
* Shows the tooltip displayed when the server returns less records than available
|
|
362
335
|
*/
|
|
363
|
-
showTooltipTooMany: function
|
|
336
|
+
showTooltipTooMany: function () {
|
|
364
337
|
if (this.$element) {
|
|
365
338
|
this.tooltip.show();
|
|
366
339
|
}
|
|
367
340
|
},
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
* Hides the tooltip displayed when the server returns less records than available
|
|
341
|
+
/**
|
|
342
|
+
* Hides the tooltip displayed when the server returns less records than available
|
|
371
343
|
*/
|
|
372
|
-
hideTooltipTooMany: function
|
|
344
|
+
hideTooltipTooMany: function () {
|
|
373
345
|
if (this.$element) {
|
|
374
346
|
this.tooltip.hide();
|
|
375
347
|
}
|
|
376
348
|
},
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
*
|
|
380
|
-
* @param {
|
|
381
|
-
* @
|
|
382
|
-
* @returns {*} Returns the call result
|
|
349
|
+
/**
|
|
350
|
+
* Fires an event handler.
|
|
351
|
+
* @param {String} eventName The name of the event to trigger
|
|
352
|
+
* @param {Array} [params] A list of optional parameters
|
|
353
|
+
* @returns {*} Returns the call result
|
|
383
354
|
*/
|
|
384
|
-
trigger: function
|
|
355
|
+
trigger: function (eventName, params) {
|
|
385
356
|
return this.applyElement('triggerHandler', [adjustEventName(eventName), params]);
|
|
386
357
|
},
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
*
|
|
390
|
-
* @param {
|
|
391
|
-
* @
|
|
392
|
-
* @returns {autocompleter} this
|
|
358
|
+
/**
|
|
359
|
+
* Installs an event handler.
|
|
360
|
+
* @param {String} eventName The name of the event to listen
|
|
361
|
+
* @param {Function } callback The function called back when the event occurs
|
|
362
|
+
* @returns {autocompleter} this
|
|
393
363
|
*/
|
|
394
|
-
on: function
|
|
364
|
+
on: function (eventName, callback) {
|
|
395
365
|
this.applyElement('on', [adjustEventName(eventName), callback]);
|
|
396
366
|
return this;
|
|
397
367
|
},
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
*
|
|
401
|
-
* @param {
|
|
402
|
-
* @
|
|
403
|
-
* @returns {autocompleter} this
|
|
368
|
+
/**
|
|
369
|
+
* Uninstalls an event handler.
|
|
370
|
+
* @param {String} eventName The name of the event to release
|
|
371
|
+
* @param {Function } [callback] The callback provided at install
|
|
372
|
+
* @returns {autocompleter} this
|
|
404
373
|
*/
|
|
405
|
-
off: function
|
|
374
|
+
off: function (eventName, callback) {
|
|
406
375
|
this.applyElement('off', [adjustEventName(eventName), callback]);
|
|
407
376
|
return this;
|
|
408
377
|
},
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
*
|
|
412
|
-
* @returns {*|jQuery|HTMLElement}
|
|
378
|
+
/**
|
|
379
|
+
* Gets the nested element on which the component is installed.
|
|
380
|
+
* @returns {*|jQuery|HTMLElement}
|
|
413
381
|
*/
|
|
414
|
-
getElement: function
|
|
382
|
+
getElement: function () {
|
|
415
383
|
return this.$element;
|
|
416
384
|
},
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
*
|
|
420
|
-
* @returns {Boolean}
|
|
385
|
+
/**
|
|
386
|
+
* Checks if the server can provide more suggestions than displayed for the current query
|
|
387
|
+
* @returns {Boolean}
|
|
421
388
|
*/
|
|
422
|
-
hasTooManySuggestions: function
|
|
389
|
+
hasTooManySuggestions: function () {
|
|
423
390
|
return !!this.tooManySuggestions;
|
|
424
391
|
},
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
*
|
|
428
|
-
* @returns {String}
|
|
392
|
+
/**
|
|
393
|
+
* Gets the field value.
|
|
394
|
+
* @returns {String}
|
|
429
395
|
*/
|
|
430
|
-
getValue: function
|
|
396
|
+
getValue: function () {
|
|
431
397
|
return this.value;
|
|
432
398
|
},
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
*
|
|
436
|
-
* @param {String}
|
|
437
|
-
* @
|
|
438
|
-
* @returns {autocompleter} this
|
|
399
|
+
/**
|
|
400
|
+
* Sets the field value.
|
|
401
|
+
* @param {String} value The value to set inside the field
|
|
402
|
+
* @param {String} label The label to display inside the field
|
|
403
|
+
* @returns {autocompleter} this
|
|
439
404
|
*/
|
|
440
|
-
setValue: function
|
|
405
|
+
setValue: function (value, label) {
|
|
441
406
|
this.value = value;
|
|
442
|
-
|
|
443
407
|
if (!_.isUndefined(label)) {
|
|
444
408
|
this.setLabel(label);
|
|
445
409
|
}
|
|
446
|
-
|
|
447
410
|
return this;
|
|
448
411
|
},
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
*
|
|
452
|
-
* @returns {String}
|
|
412
|
+
/**
|
|
413
|
+
* Gets the displayed label.
|
|
414
|
+
* @returns {String}
|
|
453
415
|
*/
|
|
454
|
-
getLabel: function
|
|
416
|
+
getLabel: function () {
|
|
455
417
|
return this.label;
|
|
456
418
|
},
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
*
|
|
460
|
-
* @
|
|
461
|
-
* @returns {autocompleter} this
|
|
419
|
+
/**
|
|
420
|
+
* Sets the displayed label.
|
|
421
|
+
* @param {String} label The label to display inside the field
|
|
422
|
+
* @returns {autocompleter} this
|
|
462
423
|
*/
|
|
463
|
-
setLabel: function
|
|
424
|
+
setLabel: function (label) {
|
|
464
425
|
this.label = label;
|
|
465
|
-
|
|
466
426
|
if (this.$element) {
|
|
467
427
|
this.$element.val(label);
|
|
468
428
|
}
|
|
469
|
-
|
|
470
429
|
return this;
|
|
471
430
|
},
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
*
|
|
475
|
-
* @returns {String}
|
|
431
|
+
/**
|
|
432
|
+
* Gets the URI of the target ontology.
|
|
433
|
+
* @returns {String}
|
|
476
434
|
*/
|
|
477
|
-
getOntology: function
|
|
435
|
+
getOntology: function () {
|
|
478
436
|
return this.ontology;
|
|
479
437
|
},
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
*
|
|
483
|
-
* @
|
|
484
|
-
* @returns {autocompleter} this
|
|
438
|
+
/**
|
|
439
|
+
* Sets the URI of the target ontology.
|
|
440
|
+
* @param {String} ontology
|
|
441
|
+
* @returns {autocompleter} this
|
|
485
442
|
*/
|
|
486
|
-
setOntology: function
|
|
443
|
+
setOntology: function (ontology) {
|
|
487
444
|
this.ontology = ontology;
|
|
488
445
|
return this;
|
|
489
446
|
},
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
*
|
|
493
|
-
* @returns {String}
|
|
447
|
+
/**
|
|
448
|
+
* Gets the name of the field containing the value within the received data.
|
|
449
|
+
* @returns {String}
|
|
494
450
|
*/
|
|
495
|
-
getValueField: function
|
|
451
|
+
getValueField: function () {
|
|
496
452
|
return this.valueField;
|
|
497
453
|
},
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
*
|
|
501
|
-
* @
|
|
502
|
-
* @returns {autocompleter} this
|
|
454
|
+
/**
|
|
455
|
+
* Sets the name of the field containing the value within the received data.
|
|
456
|
+
* @param {String} valueField
|
|
457
|
+
* @returns {autocompleter} this
|
|
503
458
|
*/
|
|
504
|
-
setValueField: function
|
|
459
|
+
setValueField: function (valueField) {
|
|
505
460
|
this.valueField = valueField;
|
|
506
461
|
return this;
|
|
507
462
|
},
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
*
|
|
511
|
-
* @returns {String}
|
|
463
|
+
/**
|
|
464
|
+
* Gets the name of the field containing the label within the received data.
|
|
465
|
+
* @returns {String}
|
|
512
466
|
*/
|
|
513
|
-
getLabelField: function
|
|
467
|
+
getLabelField: function () {
|
|
514
468
|
return this.labelField;
|
|
515
469
|
},
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
*
|
|
519
|
-
* @
|
|
520
|
-
* @returns {autocompleter} this
|
|
470
|
+
/**
|
|
471
|
+
* Sets the name of the field containing the label within the received data.
|
|
472
|
+
* @param {String} labelField
|
|
473
|
+
* @returns {autocompleter} this
|
|
521
474
|
*/
|
|
522
|
-
setLabelField: function
|
|
475
|
+
setLabelField: function (labelField) {
|
|
523
476
|
this.labelField = labelField;
|
|
524
477
|
return this;
|
|
525
478
|
},
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
*
|
|
529
|
-
*
|
|
530
|
-
*
|
|
531
|
-
*
|
|
532
|
-
*
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
getIsProvider: function getIsProvider() {
|
|
479
|
+
/**
|
|
480
|
+
* Gets the value of the isProvider option.
|
|
481
|
+
* When set to true the component acts as a data provider.
|
|
482
|
+
* In this mode, each time an item is selected from a list,
|
|
483
|
+
* it will be directly removed from the input, so the listener
|
|
484
|
+
* has to take care of the selected value and to add it in its own list.
|
|
485
|
+
* @returns {Boolean}
|
|
486
|
+
*/
|
|
487
|
+
getIsProvider: function () {
|
|
536
488
|
return this.isProvider;
|
|
537
489
|
},
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
*
|
|
541
|
-
*
|
|
542
|
-
*
|
|
543
|
-
*
|
|
544
|
-
*
|
|
545
|
-
* @
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
setIsProvider: function setIsProvider(isProvider) {
|
|
490
|
+
/**
|
|
491
|
+
* Sets the value of the isProvider option.
|
|
492
|
+
* When set to true the component acts as a data provider.
|
|
493
|
+
* In this mode, each time an item is selected from a list,
|
|
494
|
+
* it will be directly removed from the input, so the listener
|
|
495
|
+
* has to take care of the selected value and to add it in its own list.
|
|
496
|
+
* @param {Boolean} isProvider
|
|
497
|
+
* @returns {autocompleter} this
|
|
498
|
+
*/
|
|
499
|
+
setIsProvider: function (isProvider) {
|
|
549
500
|
this.isProvider = toBoolean(isProvider);
|
|
550
501
|
return this;
|
|
551
502
|
},
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
*
|
|
555
|
-
*
|
|
556
|
-
* @returns {Boolean}
|
|
503
|
+
/**
|
|
504
|
+
* Gets the value of the preventSubmit option.
|
|
505
|
+
* When set to true the component prevents auto submit when the user hit enter on the text box.
|
|
506
|
+
* @returns {Boolean}
|
|
557
507
|
*/
|
|
558
|
-
getPreventSubmit: function
|
|
508
|
+
getPreventSubmit: function () {
|
|
559
509
|
return this.preventSubmit;
|
|
560
510
|
},
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
*
|
|
564
|
-
*
|
|
565
|
-
* @
|
|
566
|
-
* @returns {autocompleter} this
|
|
511
|
+
/**
|
|
512
|
+
* Sets the value of the preventSubmit option.
|
|
513
|
+
* When set to true the component prevents auto submit when the user hit enter on the text box.
|
|
514
|
+
* @param {Boolean} preventSubmit
|
|
515
|
+
* @returns {autocompleter} this
|
|
567
516
|
*/
|
|
568
|
-
setPreventSubmit: function
|
|
517
|
+
setPreventSubmit: function (preventSubmit) {
|
|
569
518
|
this.preventSubmit = toBoolean(preventSubmit);
|
|
570
519
|
return this;
|
|
571
520
|
},
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
*
|
|
575
|
-
*
|
|
576
|
-
* @returns {String}
|
|
521
|
+
/**
|
|
522
|
+
* Gets the root for seach params.
|
|
523
|
+
* When provided, all the search params are wrapped under the same root.
|
|
524
|
+
* @returns {String}
|
|
577
525
|
*/
|
|
578
|
-
getParamsRoot: function
|
|
526
|
+
getParamsRoot: function () {
|
|
579
527
|
return this.paramsRoot;
|
|
580
528
|
},
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
*
|
|
584
|
-
*
|
|
585
|
-
* @
|
|
586
|
-
* @returns {autocompleter} this
|
|
529
|
+
/**
|
|
530
|
+
* Set the root for seach params.
|
|
531
|
+
* When provided, all the search params are wrapped under the same root.
|
|
532
|
+
* @param {String} paramsRoot
|
|
533
|
+
* @returns {autocompleter} this
|
|
587
534
|
*/
|
|
588
|
-
setParamsRoot: function
|
|
535
|
+
setParamsRoot: function (paramsRoot) {
|
|
589
536
|
this.paramsRoot = paramsRoot;
|
|
590
537
|
return this;
|
|
591
538
|
},
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
*
|
|
595
|
-
* @returns {Object}
|
|
539
|
+
/**
|
|
540
|
+
* Gets the list of extra params to be sent with the query.
|
|
541
|
+
* @returns {Object}
|
|
596
542
|
*/
|
|
597
|
-
getParams: function
|
|
598
|
-
var _this = this;
|
|
599
|
-
|
|
543
|
+
getParams: function () {
|
|
600
544
|
var params = _.merge({}, this.params || {});
|
|
601
|
-
|
|
602
545
|
var searchParams = params;
|
|
603
|
-
|
|
604
546
|
if (this.paramsRoot) {
|
|
605
547
|
searchParams = params[this.paramsRoot] || {};
|
|
606
548
|
params[this.paramsRoot] = searchParams;
|
|
607
549
|
}
|
|
608
|
-
|
|
609
550
|
if (this.ontology) {
|
|
610
551
|
if (!Array.isArray(this.ontologyParam)) {
|
|
611
552
|
searchParams[this.ontologyParam] = this.ontology;
|
|
612
553
|
} else {
|
|
613
|
-
this.ontologyParam.forEach(
|
|
614
|
-
searchParams[p] =
|
|
554
|
+
this.ontologyParam.forEach(p => {
|
|
555
|
+
searchParams[p] = this.ontology;
|
|
615
556
|
});
|
|
616
557
|
}
|
|
617
558
|
}
|
|
618
|
-
|
|
619
559
|
return params;
|
|
620
560
|
},
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
*
|
|
624
|
-
* @
|
|
625
|
-
* @returns {autocompleter} this
|
|
561
|
+
/**
|
|
562
|
+
* Sets a list of extra params to be sent with the query.
|
|
563
|
+
* @param {Object} params
|
|
564
|
+
* @returns {autocompleter} this
|
|
626
565
|
*/
|
|
627
|
-
setParams: function
|
|
566
|
+
setParams: function (params) {
|
|
628
567
|
this.params = params;
|
|
629
568
|
return this;
|
|
630
569
|
},
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
*
|
|
634
|
-
*
|
|
635
|
-
* @returns {String}
|
|
570
|
+
/**
|
|
571
|
+
* Gets the name of the param providing the searched pattern.
|
|
572
|
+
* If paramsRoot has been defined, the param name will be wrapped.
|
|
573
|
+
* @returns {String}
|
|
636
574
|
*/
|
|
637
|
-
getQueryParam: function
|
|
575
|
+
getQueryParam: function () {
|
|
638
576
|
return this.adjustParam(this.queryParam);
|
|
639
577
|
},
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
*
|
|
643
|
-
* @
|
|
644
|
-
* @returns {autocompleter} this
|
|
578
|
+
/**
|
|
579
|
+
* Sets the name of the param providing the searched pattern.
|
|
580
|
+
* @param {String} queryParam
|
|
581
|
+
* @returns {autocompleter} this
|
|
645
582
|
*/
|
|
646
|
-
setQueryParam: function
|
|
583
|
+
setQueryParam: function (queryParam) {
|
|
647
584
|
this.queryParam = queryParam;
|
|
648
585
|
return this;
|
|
649
586
|
},
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
*
|
|
653
|
-
*
|
|
654
|
-
* @returns {String}
|
|
587
|
+
/**
|
|
588
|
+
* Gets the name of the param providing the ontology URI.
|
|
589
|
+
* If paramsRoot has been defined, the param name will be wrapped.
|
|
590
|
+
* @returns {String}
|
|
655
591
|
*/
|
|
656
|
-
getOntologyParam: function
|
|
657
|
-
|
|
592
|
+
getOntologyParam: function () {
|
|
593
|
+
const p = Array.isArray(this.ontologyParam) ? this.ontologyParam[0] : this.ontologyParam;
|
|
658
594
|
return this.adjustParam(p);
|
|
659
595
|
},
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
*
|
|
663
|
-
* @
|
|
664
|
-
* @returns {autocompleter} this
|
|
596
|
+
/**
|
|
597
|
+
* Sets the name of the param providing the ontology URI.
|
|
598
|
+
* @param {String} ontologyParam
|
|
599
|
+
* @returns {autocompleter} this
|
|
665
600
|
*/
|
|
666
|
-
setOntologyParam: function
|
|
601
|
+
setOntologyParam: function (ontologyParam) {
|
|
667
602
|
this.ontologyParam = ontologyParam;
|
|
668
603
|
return this;
|
|
669
604
|
},
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
*
|
|
673
|
-
* @returns {String}
|
|
605
|
+
/**
|
|
606
|
+
* Gets the URL to data source
|
|
607
|
+
* @returns {String}
|
|
674
608
|
*/
|
|
675
|
-
getUrl: function
|
|
609
|
+
getUrl: function () {
|
|
676
610
|
return this.url;
|
|
677
611
|
},
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
*
|
|
681
|
-
* @
|
|
682
|
-
* @returns {autocompleter} this
|
|
612
|
+
/**
|
|
613
|
+
* Sets the URL to data source
|
|
614
|
+
* @param {String} url
|
|
615
|
+
* @returns {autocompleter} this
|
|
683
616
|
*/
|
|
684
|
-
setUrl: function
|
|
617
|
+
setUrl: function (url) {
|
|
685
618
|
this.url = url;
|
|
686
619
|
return this;
|
|
687
620
|
},
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
*
|
|
691
|
-
* @returns {String}
|
|
621
|
+
/**
|
|
622
|
+
* Gets the request method. Can be either GET or POST, default to GET.
|
|
623
|
+
* @returns {String}
|
|
692
624
|
*/
|
|
693
|
-
getType: function
|
|
625
|
+
getType: function () {
|
|
694
626
|
return this.type || 'GET';
|
|
695
627
|
},
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
*
|
|
699
|
-
* @
|
|
700
|
-
* @returns {autocompleter} this
|
|
628
|
+
/**
|
|
629
|
+
* Sets the request method. Can be either GET or POST, default to GET.
|
|
630
|
+
* @param {String} type
|
|
631
|
+
* @returns {autocompleter} this
|
|
701
632
|
*/
|
|
702
|
-
setType: function
|
|
633
|
+
setType: function (type) {
|
|
703
634
|
this.type = type;
|
|
704
635
|
return this;
|
|
705
636
|
},
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
*
|
|
709
|
-
* @returns {number}
|
|
637
|
+
/**
|
|
638
|
+
* Gets the number of miliseconds to defer ajax request.
|
|
639
|
+
* @returns {number}
|
|
710
640
|
*/
|
|
711
|
-
getDelay: function
|
|
641
|
+
getDelay: function () {
|
|
712
642
|
return this.delay;
|
|
713
643
|
},
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
*
|
|
717
|
-
* @
|
|
718
|
-
* @returns {autocompleter}
|
|
644
|
+
/**
|
|
645
|
+
* Sets the number of miliseconds to defer ajax request.
|
|
646
|
+
* @param {Number} delay
|
|
647
|
+
* @returns {autocompleter}
|
|
719
648
|
*/
|
|
720
|
-
setDelay: function
|
|
649
|
+
setDelay: function (delay) {
|
|
721
650
|
this.delay = Math.max(0, Number(delay));
|
|
722
651
|
return this;
|
|
723
652
|
},
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
*
|
|
727
|
-
* @returns {number}
|
|
653
|
+
/**
|
|
654
|
+
* Gets the minimum number of characters required to trigger the ajax request.
|
|
655
|
+
* @returns {number}
|
|
728
656
|
*/
|
|
729
|
-
getMinChars: function
|
|
657
|
+
getMinChars: function () {
|
|
730
658
|
return this.minChars;
|
|
731
659
|
},
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
*
|
|
735
|
-
* @
|
|
736
|
-
* @returns {autocompleter} this
|
|
660
|
+
/**
|
|
661
|
+
* Sets the minimum number of characters required to trigger the ajax request.
|
|
662
|
+
* @param {Number} minChars
|
|
663
|
+
* @returns {autocompleter} this
|
|
737
664
|
*/
|
|
738
|
-
setMinChars: function
|
|
665
|
+
setMinChars: function (minChars) {
|
|
739
666
|
this.minChars = Math.max(1, Number(minChars));
|
|
740
667
|
return this;
|
|
741
668
|
},
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
*
|
|
745
|
-
* @returns {autocompleter} this
|
|
669
|
+
/**
|
|
670
|
+
* Activates the component if it was deactivated before.
|
|
671
|
+
* @returns {autocompleter} this
|
|
746
672
|
*/
|
|
747
|
-
enable: function
|
|
673
|
+
enable: function () {
|
|
748
674
|
this.applyPlugin('enable');
|
|
749
675
|
return this;
|
|
750
676
|
},
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
*
|
|
754
|
-
* @returns {autocompleter} this
|
|
677
|
+
/**
|
|
678
|
+
* Deactivates the component.
|
|
679
|
+
* @returns {autocompleter} this
|
|
755
680
|
*/
|
|
756
|
-
disable: function
|
|
681
|
+
disable: function () {
|
|
757
682
|
this.applyPlugin('disable');
|
|
758
683
|
return this;
|
|
759
684
|
},
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
*
|
|
763
|
-
* @returns {autocompleter} this
|
|
685
|
+
/**
|
|
686
|
+
* Hides suggestions.
|
|
687
|
+
* @returns {autocompleter} this
|
|
764
688
|
*/
|
|
765
|
-
hide: function
|
|
689
|
+
hide: function () {
|
|
766
690
|
this.applyPlugin('hide');
|
|
767
691
|
return this;
|
|
768
692
|
},
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
*
|
|
772
|
-
* @returns {autocompleter} this
|
|
693
|
+
/**
|
|
694
|
+
* Clears suggestion cache and current suggestions.
|
|
695
|
+
* @returns {autocompleter} this
|
|
773
696
|
*/
|
|
774
|
-
clear: function
|
|
697
|
+
clear: function () {
|
|
775
698
|
this.tooManySuggestions = false;
|
|
776
699
|
this.applyPlugin('clear');
|
|
777
700
|
return this;
|
|
778
701
|
},
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
*
|
|
782
|
-
* @returns {autocompleter} this
|
|
702
|
+
/**
|
|
703
|
+
* Clears suggestion cache.
|
|
704
|
+
* @returns {autocompleter} this
|
|
783
705
|
*/
|
|
784
|
-
clearCache: function
|
|
706
|
+
clearCache: function () {
|
|
785
707
|
this.applyPlugin('clearCache');
|
|
786
708
|
return this;
|
|
787
709
|
},
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
*
|
|
791
|
-
* - clears
|
|
792
|
-
* -
|
|
793
|
-
*
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
reset: function reset() {
|
|
710
|
+
/**
|
|
711
|
+
* Resets the component:
|
|
712
|
+
* - clears the current selection,
|
|
713
|
+
* - clears suggestion cache and current suggestions,
|
|
714
|
+
* - hides suggestions.
|
|
715
|
+
* @returns {autocompleter} this
|
|
716
|
+
*/
|
|
717
|
+
reset: function () {
|
|
797
718
|
this.setValue(null, '');
|
|
798
719
|
this.clear();
|
|
799
720
|
this.applyPlugin('hide');
|
|
800
721
|
return this;
|
|
801
722
|
},
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
*
|
|
805
|
-
* @
|
|
806
|
-
* @private
|
|
723
|
+
/**
|
|
724
|
+
* Fired on each keyboard actions
|
|
725
|
+
* @param {Event} event
|
|
726
|
+
* @private
|
|
807
727
|
*/
|
|
808
|
-
_onKeyEvent: function
|
|
728
|
+
_onKeyEvent: function (event) {
|
|
809
729
|
// prevent auto submit when the option preventSubmit is enabled
|
|
810
730
|
if (this.preventSubmit && 13 === event.which) {
|
|
811
731
|
event.preventDefault();
|
|
812
732
|
}
|
|
813
733
|
},
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
*
|
|
817
|
-
* @
|
|
818
|
-
* @private
|
|
734
|
+
/**
|
|
735
|
+
* Fired when the user select a suggestion in the list.
|
|
736
|
+
* @param {Object} suggestion
|
|
737
|
+
* @private
|
|
819
738
|
*/
|
|
820
|
-
_onSelect: function
|
|
739
|
+
_onSelect: function (suggestion) {
|
|
821
740
|
var value = suggestion && suggestion.data;
|
|
822
741
|
var label = suggestion && suggestion.value;
|
|
823
|
-
|
|
824
742
|
if (false !== this.trigger('beforeSelectItem', [value, label, this])) {
|
|
825
743
|
this.value = value;
|
|
826
744
|
this.label = label;
|
|
827
|
-
|
|
828
745
|
if (this.isProvider) {
|
|
829
746
|
this.$element.val('');
|
|
830
747
|
this.clear();
|
|
831
748
|
}
|
|
832
|
-
|
|
833
749
|
this.trigger('selectItem', [value, label, this]);
|
|
834
750
|
} else {
|
|
835
751
|
return false;
|
|
836
752
|
}
|
|
837
753
|
},
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
*
|
|
841
|
-
* @
|
|
842
|
-
* @private
|
|
754
|
+
/**
|
|
755
|
+
* Fired when the user input text and a query is about to be requested.
|
|
756
|
+
* @param {Object} params The list of params which will be bound the query
|
|
757
|
+
* @private
|
|
843
758
|
*/
|
|
844
|
-
_onSearchStart: function
|
|
759
|
+
_onSearchStart: function (params) {
|
|
845
760
|
var queryParam = this.getQueryParam();
|
|
846
761
|
var query;
|
|
847
|
-
|
|
848
762
|
if (false !== this.trigger('searchStart', [params, this])) {
|
|
849
763
|
if (this.addWilcard && params && params[queryParam]) {
|
|
850
764
|
query = params[queryParam] || '';
|
|
851
|
-
|
|
852
765
|
if (query.substr(-1) !== '*') {
|
|
853
766
|
query += '*';
|
|
854
767
|
}
|
|
855
|
-
|
|
856
768
|
params[queryParam] = query;
|
|
857
769
|
}
|
|
858
770
|
} else {
|
|
859
771
|
return false;
|
|
860
772
|
}
|
|
861
773
|
},
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
*
|
|
865
|
-
* @param {
|
|
866
|
-
* @
|
|
867
|
-
* @private
|
|
774
|
+
/**
|
|
775
|
+
* Fired after ajax response is processed.
|
|
776
|
+
* @param {String} query The requested fragment
|
|
777
|
+
* @param {Object} suggestions An array containing the results.
|
|
778
|
+
* @private
|
|
868
779
|
*/
|
|
869
|
-
_onSearchComplete: function
|
|
780
|
+
_onSearchComplete: function (query, suggestions) {
|
|
870
781
|
// clear cache when the query returns no records :
|
|
871
782
|
// this avoids to have to reload the page when the server has a temporary failure
|
|
872
783
|
if (!suggestions || !suggestions.length) {
|
|
873
784
|
this.clear();
|
|
874
785
|
}
|
|
875
|
-
|
|
876
786
|
return this.trigger('searchComplete', [query, suggestions, this]);
|
|
877
787
|
},
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
*
|
|
881
|
-
* @param {
|
|
882
|
-
* @param {
|
|
883
|
-
* @param {
|
|
884
|
-
* @
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
_onSearchError: function _onSearchError(query, jqXHR, textStatus, errorThrown) {
|
|
788
|
+
/**
|
|
789
|
+
* Fired if ajax request fails.
|
|
790
|
+
* @param {String} query
|
|
791
|
+
* @param {jqXHR} jqXHR
|
|
792
|
+
* @param {String} textStatus
|
|
793
|
+
* @param {Exception} errorThrown
|
|
794
|
+
* @private
|
|
795
|
+
*/
|
|
796
|
+
_onSearchError: function (query, jqXHR, textStatus, errorThrown) {
|
|
888
797
|
return this.trigger('searchError', [query, jqXHR, textStatus, errorThrown, this]);
|
|
889
798
|
},
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
*
|
|
893
|
-
* @private
|
|
799
|
+
/**
|
|
800
|
+
* Fired when input is altered after selection has been made.
|
|
801
|
+
* @private
|
|
894
802
|
*/
|
|
895
|
-
_onInvalidateSelection: function
|
|
803
|
+
_onInvalidateSelection: function () {
|
|
896
804
|
return this.trigger('invalidateSelection', [this]);
|
|
897
805
|
},
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
*
|
|
901
|
-
*
|
|
902
|
-
* @
|
|
903
|
-
* @private
|
|
806
|
+
/**
|
|
807
|
+
* Fired before displaying the suggestions.
|
|
808
|
+
* You may manipulate suggestions DOM before it is displayed.
|
|
809
|
+
* @param {jQuery} $container
|
|
810
|
+
* @private
|
|
904
811
|
*/
|
|
905
|
-
_onBeforeRender: function
|
|
812
|
+
_onBeforeRender: function ($container) {
|
|
906
813
|
this.trigger('beforeRender', [$container, this]);
|
|
907
814
|
},
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
*
|
|
911
|
-
* @
|
|
912
|
-
* @private
|
|
815
|
+
/**
|
|
816
|
+
* Fired when the input element has the focus
|
|
817
|
+
* @param {Event} event
|
|
818
|
+
* @private
|
|
913
819
|
*/
|
|
914
|
-
_onFocus: function
|
|
820
|
+
_onFocus: function (event) {
|
|
915
821
|
if (this.hasTooManySuggestions()) {
|
|
916
822
|
this.showTooltipTooMany();
|
|
917
823
|
}
|
|
918
824
|
},
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
*
|
|
922
|
-
* @
|
|
923
|
-
* @private
|
|
825
|
+
/**
|
|
826
|
+
* Fired when the input element lose the focus
|
|
827
|
+
* @param {Event} event
|
|
828
|
+
* @private
|
|
924
829
|
*/
|
|
925
|
-
_onBlur: function
|
|
830
|
+
_onBlur: function (event) {
|
|
926
831
|
this.hideTooltipTooMany();
|
|
927
832
|
},
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
*
|
|
931
|
-
* @
|
|
932
|
-
* @returns {{suggestions: Array}}
|
|
833
|
+
/**
|
|
834
|
+
* Adjusts the received data to comply to plugin needs
|
|
835
|
+
* @param response
|
|
836
|
+
* @returns {{suggestions: Array}}
|
|
933
837
|
*/
|
|
934
|
-
_transformResult: function
|
|
838
|
+
_transformResult: function (response) {
|
|
935
839
|
var self = this;
|
|
936
840
|
var results = {
|
|
937
841
|
suggestions: []
|
|
938
842
|
};
|
|
939
|
-
|
|
940
843
|
if (_.isString(response)) {
|
|
941
844
|
response = JSON.parse(response);
|
|
942
845
|
}
|
|
943
|
-
|
|
944
846
|
if (response.records) {
|
|
945
847
|
results.suggestions = _.map(response.data, function (dataItem) {
|
|
946
848
|
return {
|
|
@@ -948,81 +850,69 @@ define(['jquery', 'lodash', 'i18n', 'util/capitalize', 'ui/tooltip', 'jquery.aut
|
|
|
948
850
|
data: dataItem[self.valueField]
|
|
949
851
|
};
|
|
950
852
|
});
|
|
951
|
-
}
|
|
952
|
-
|
|
853
|
+
}
|
|
953
854
|
|
|
855
|
+
// detect when the server has limited the amount of suggestions
|
|
954
856
|
this.tooManySuggestions = response.total && response.total > 1;
|
|
955
|
-
|
|
956
857
|
if (this.hasTooManySuggestions()) {
|
|
957
858
|
this.showTooltipTooMany();
|
|
958
859
|
} else {
|
|
959
860
|
this.hideTooltipTooMany();
|
|
960
861
|
}
|
|
961
|
-
|
|
962
862
|
return results;
|
|
963
863
|
},
|
|
964
|
-
|
|
965
|
-
|
|
966
|
-
*
|
|
967
|
-
* @
|
|
968
|
-
* @returns {String}
|
|
864
|
+
/**
|
|
865
|
+
* Adjusts a param name: if paramsRoot has been defined, the param name will be wrapped.
|
|
866
|
+
* @param {String} param
|
|
867
|
+
* @returns {String}
|
|
969
868
|
*/
|
|
970
|
-
adjustParam: function
|
|
869
|
+
adjustParam: function (param) {
|
|
971
870
|
if (this.paramsRoot) {
|
|
972
871
|
param = this.paramsRoot + '[' + param + ']';
|
|
973
872
|
}
|
|
974
|
-
|
|
975
873
|
return param;
|
|
976
874
|
}
|
|
977
875
|
};
|
|
978
|
-
/**
|
|
979
|
-
* Adjusts an event name
|
|
980
|
-
* @param {string} eventName
|
|
981
|
-
* @returns {string}
|
|
982
|
-
*/
|
|
983
876
|
|
|
984
|
-
|
|
877
|
+
/**
|
|
878
|
+
* Adjusts an event name
|
|
879
|
+
* @param {string} eventName
|
|
880
|
+
* @returns {string}
|
|
881
|
+
*/
|
|
882
|
+
var adjustEventName = function (eventName) {
|
|
985
883
|
var names = _(eventName.split(' ')).map(function (name) {
|
|
986
884
|
name = name.toLowerCase();
|
|
987
|
-
|
|
988
885
|
if (-1 === name.indexOf('.')) {
|
|
989
886
|
name += '.' + NS;
|
|
990
887
|
}
|
|
991
|
-
|
|
992
888
|
return name;
|
|
993
889
|
});
|
|
994
|
-
|
|
995
890
|
return names.join(' ');
|
|
996
891
|
};
|
|
997
|
-
/**
|
|
998
|
-
* Converts a value to boolean
|
|
999
|
-
* @param value
|
|
1000
|
-
* @returns {Boolean}
|
|
1001
|
-
*/
|
|
1002
|
-
|
|
1003
892
|
|
|
1004
|
-
|
|
893
|
+
/**
|
|
894
|
+
* Converts a value to boolean
|
|
895
|
+
* @param value
|
|
896
|
+
* @returns {Boolean}
|
|
897
|
+
*/
|
|
898
|
+
var toBoolean = function (value) {
|
|
1005
899
|
if (_.isString(value)) {
|
|
1006
900
|
if ('false' === value.toLowerCase() || '0' === value) {
|
|
1007
901
|
value = false;
|
|
1008
902
|
}
|
|
1009
903
|
}
|
|
1010
|
-
|
|
1011
904
|
return !!value;
|
|
1012
905
|
};
|
|
1013
|
-
/**
|
|
1014
|
-
* Installs the autocompleter onto an element.
|
|
1015
|
-
* @param {jQuery|Element|String} element The element on which install the autocompleter
|
|
1016
|
-
* @param {Object} options A list of options to set
|
|
1017
|
-
* @returns {autocompleter} Returns the instance of the autocompleter component
|
|
1018
|
-
*/
|
|
1019
906
|
|
|
1020
|
-
|
|
1021
|
-
|
|
907
|
+
/**
|
|
908
|
+
* Installs the autocompleter onto an element.
|
|
909
|
+
* @param {jQuery|Element|String} element The element on which install the autocompleter
|
|
910
|
+
* @param {Object} options A list of options to set
|
|
911
|
+
* @returns {autocompleter} Returns the instance of the autocompleter component
|
|
912
|
+
*/
|
|
913
|
+
var autocompleteFactory = function (element, options) {
|
|
1022
914
|
var autocomplete = _.clone(autocompleter, true);
|
|
1023
|
-
|
|
1024
915
|
_.defaults(autocomplete, defaults);
|
|
1025
|
-
|
|
1026
916
|
return autocomplete.init(element, options);
|
|
1027
917
|
};
|
|
1028
918
|
|