@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/dialog.js
CHANGED
|
@@ -1,754 +1,710 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'i18n', 'handlebars', 'lib/dompurify/purify', 'ui/keyNavigation/navigator', 'ui/keyNavigation/navigableDomElement', 'util/shortcut/registry', 'ui/modal'], function ($$1, _, __, Handlebars, DOMPurify, keyNavigator, navigableDomElement, shortcutRegistry, modal) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* https://github.com/cure53/DOMPurify
|
|
31
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
32
|
-
* to make output safe for template systems
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
6
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
7
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
8
|
+
keyNavigator = keyNavigator && Object.prototype.hasOwnProperty.call(keyNavigator, 'default') ? keyNavigator['default'] : keyNavigator;
|
|
9
|
+
navigableDomElement = navigableDomElement && Object.prototype.hasOwnProperty.call(navigableDomElement, 'default') ? navigableDomElement['default'] : navigableDomElement;
|
|
10
|
+
shortcutRegistry = shortcutRegistry && Object.prototype.hasOwnProperty.call(shortcutRegistry, 'default') ? shortcutRegistry['default'] : shortcutRegistry;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This program is free software; you can redistribute it and/or
|
|
14
|
+
* modify it under the terms of the GNU General Public License
|
|
15
|
+
* as published by the Free Software Foundation; under version 2
|
|
16
|
+
* of the License (non-upgradable).
|
|
17
|
+
*
|
|
18
|
+
* This program is distributed in the hope that it will be useful,
|
|
19
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
21
|
+
* GNU General Public License for more details.
|
|
22
|
+
*
|
|
23
|
+
* You should have received a copy of the GNU General Public License
|
|
24
|
+
* along with this program; if not, write to the Free Software
|
|
25
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
26
|
+
*
|
|
27
|
+
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
28
|
+
*
|
|
29
|
+
*
|
|
33
30
|
*/
|
|
31
|
+
function Helpers0 (hb) {
|
|
32
|
+
//register a i18n helper
|
|
33
|
+
hb.registerHelper('__', function (key) {
|
|
34
|
+
return __(key);
|
|
35
|
+
});
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
48
|
-
var fragments = [];
|
|
49
|
-
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
50
|
-
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
51
|
-
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
52
|
-
|
|
53
|
-
_.forIn(arr, function (value, key) {
|
|
54
|
-
var fragment = '';
|
|
37
|
+
/**
|
|
38
|
+
* Register dompurify helper
|
|
39
|
+
*
|
|
40
|
+
* https://github.com/cure53/DOMPurify
|
|
41
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
42
|
+
* to make output safe for template systems
|
|
43
|
+
*/
|
|
44
|
+
hb.registerHelper('dompurify', function (context) {
|
|
45
|
+
return DOMPurify.sanitize(context);
|
|
46
|
+
});
|
|
55
47
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Register join helper
|
|
50
|
+
*
|
|
51
|
+
* Example :
|
|
52
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
53
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
54
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
55
|
+
*/
|
|
56
|
+
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
57
|
+
var fragments = [];
|
|
58
|
+
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
59
|
+
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
60
|
+
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
61
|
+
_.forIn(arr, function (value, key) {
|
|
62
|
+
var fragment = '';
|
|
63
|
+
if (value !== null || value !== undefined) {
|
|
64
|
+
if (typeof value === 'boolean') {
|
|
65
|
+
value = value ? 'true' : 'false';
|
|
66
|
+
} else if (typeof value === 'object') {
|
|
67
|
+
value = _.values(value).join(' ');
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
value = '';
|
|
61
71
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
72
|
+
if (keyValueGlue !== undefined) {
|
|
73
|
+
fragment += key + keyValueGlue;
|
|
74
|
+
}
|
|
75
|
+
fragment += wrapper + value + wrapper;
|
|
76
|
+
fragments.push(fragment);
|
|
77
|
+
});
|
|
78
|
+
return fragments.join(fragmentGlue);
|
|
79
|
+
});
|
|
65
80
|
|
|
66
|
-
|
|
67
|
-
|
|
81
|
+
//register a classic "for loop" helper
|
|
82
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
83
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
84
|
+
var ret = '';
|
|
85
|
+
startIndex = parseInt(startIndex);
|
|
86
|
+
stopIndex = parseInt(stopIndex);
|
|
87
|
+
increment = parseInt(increment);
|
|
88
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
89
|
+
ret += options.fn(_.extend({}, this, {
|
|
90
|
+
i: i
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
return ret;
|
|
94
|
+
});
|
|
95
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
96
|
+
if (var1 == var2) {
|
|
97
|
+
return options.fn(this);
|
|
98
|
+
} else {
|
|
99
|
+
return options.inverse(this);
|
|
68
100
|
}
|
|
69
|
-
|
|
70
|
-
fragment += wrapper + value + wrapper;
|
|
71
|
-
fragments.push(fragment);
|
|
72
101
|
});
|
|
73
102
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
103
|
+
// register a "get property" helper
|
|
104
|
+
// it gets the named property from the provided context
|
|
105
|
+
hb.registerHelper('property', function (name, context) {
|
|
106
|
+
return context[name] || '';
|
|
107
|
+
});
|
|
77
108
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
109
|
+
// register an 'includes' helper
|
|
110
|
+
// it checks if value is in array
|
|
111
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
112
|
+
if (_.contains(haystack, needle)) {
|
|
113
|
+
return options.fn(this);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
83
117
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
118
|
+
if (!Helpers0.__initialized) {
|
|
119
|
+
Helpers0(Handlebars);
|
|
120
|
+
Helpers0.__initialized = true;
|
|
121
|
+
}
|
|
122
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
123
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
124
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
125
|
+
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
126
|
+
|
|
127
|
+
function program1(depth0,data) {
|
|
128
|
+
|
|
129
|
+
var buffer = "", stack1, helper;
|
|
130
|
+
buffer += "\n aria-labelledby=\"core/ui-dialog-heading-";
|
|
131
|
+
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
132
|
+
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
133
|
+
buffer += escapeExpression(stack1)
|
|
134
|
+
+ "\"\n ";
|
|
135
|
+
return buffer;
|
|
88
136
|
}
|
|
89
137
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
}
|
|
96
|
-
|
|
138
|
+
function program3(depth0,data) {
|
|
139
|
+
|
|
140
|
+
var buffer = "", stack1, helper;
|
|
141
|
+
buffer += "\n <h4 id=\"core/ui-dialog-heading-";
|
|
142
|
+
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
143
|
+
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
144
|
+
buffer += escapeExpression(stack1)
|
|
145
|
+
+ "\" class=\"strong\">";
|
|
146
|
+
if (helper = helpers.heading) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
147
|
+
else { helper = (depth0 && depth0.heading); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
148
|
+
buffer += escapeExpression(stack1)
|
|
149
|
+
+ "</h4>\n ";
|
|
150
|
+
return buffer;
|
|
97
151
|
}
|
|
98
|
-
}); // register a "get property" helper
|
|
99
|
-
// it gets the named property from the provided context
|
|
100
|
-
|
|
101
|
-
hb.registerHelper('property', function (name, context) {
|
|
102
|
-
return context[name] || '';
|
|
103
|
-
}); // register an 'includes' helper
|
|
104
|
-
// it checks if value is in array
|
|
105
152
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
153
|
+
function program5(depth0,data) {
|
|
154
|
+
|
|
155
|
+
var buffer = "", stack1, helper;
|
|
156
|
+
buffer += "\n <div class=\"content\">";
|
|
157
|
+
if (helper = helpers.content) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
158
|
+
else { helper = (depth0 && depth0.content); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
159
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
160
|
+
buffer += "</div>\n ";
|
|
161
|
+
return buffer;
|
|
109
162
|
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
if (!Helpers0.__initialized) {
|
|
114
|
-
Helpers0(Handlebars);
|
|
115
|
-
Helpers0.__initialized = true;
|
|
116
|
-
}
|
|
117
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
118
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
119
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
120
|
-
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
121
|
-
|
|
122
|
-
function program1(depth0,data) {
|
|
123
|
-
|
|
124
|
-
var buffer = "", stack1, helper;
|
|
125
|
-
buffer += "\r\n aria-labelledby=\"core/ui-dialog-heading-";
|
|
126
|
-
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
127
|
-
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
128
|
-
buffer += escapeExpression(stack1)
|
|
129
|
-
+ "\"\r\n ";
|
|
130
|
-
return buffer;
|
|
131
|
-
}
|
|
132
163
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
164
|
+
buffer += "<div\n class=\"preview-modal-feedback modal ";
|
|
165
|
+
if (helper = helpers['class']) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
166
|
+
else { helper = (depth0 && depth0['class']); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
167
|
+
buffer += escapeExpression(stack1)
|
|
168
|
+
+ "\"\n role=\"dialog\"\n aria-modal=\"true\"\n data-control=\"navigable-modal-body\"\n ";
|
|
169
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.heading), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
170
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
171
|
+
buffer += "\n aria-describedby=\"core/ui-dialog-message-";
|
|
172
|
+
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
173
|
+
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
174
|
+
buffer += escapeExpression(stack1)
|
|
175
|
+
+ "\"\n>\n <div class=\"modal-body clearfix\">\n ";
|
|
176
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.heading), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
177
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
178
|
+
buffer += "\n\n <p id=\"core/ui-dialog-message-";
|
|
179
|
+
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
180
|
+
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
181
|
+
buffer += escapeExpression(stack1)
|
|
182
|
+
+ "\" class=\"message\">";
|
|
183
|
+
if (helper = helpers.message) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
184
|
+
else { helper = (depth0 && depth0.message); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
185
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
186
|
+
buffer += "</p>\n\n ";
|
|
187
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.content), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
188
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
189
|
+
buffer += "\n\n <div class=\"buttons rgt\"></div>\n </div>\n</div>\n";
|
|
190
|
+
return buffer;
|
|
191
|
+
});
|
|
192
|
+
function bodyTpl(data, options, asString) {
|
|
193
|
+
var html = Template(data, options);
|
|
194
|
+
return (asString || true) ? html : $(html);
|
|
146
195
|
}
|
|
147
196
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
buffer += "\r\n <div class=\"content\">";
|
|
152
|
-
if (helper = helpers.content) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
153
|
-
else { helper = (depth0 && depth0.content); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
154
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
155
|
-
buffer += "</div>\r\n ";
|
|
156
|
-
return buffer;
|
|
197
|
+
if (!Helpers0.__initialized) {
|
|
198
|
+
Helpers0(Handlebars);
|
|
199
|
+
Helpers0.__initialized = true;
|
|
157
200
|
}
|
|
201
|
+
var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
202
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
203
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
204
|
+
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
205
|
+
|
|
206
|
+
function program1(depth0,data) {
|
|
207
|
+
|
|
208
|
+
var buffer = "", stack1, helper;
|
|
209
|
+
buffer += "\n <button class=\"btn-";
|
|
210
|
+
if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
211
|
+
else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
212
|
+
buffer += escapeExpression(stack1)
|
|
213
|
+
+ " small ";
|
|
214
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
215
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
216
|
+
buffer += escapeExpression(stack1)
|
|
217
|
+
+ "\" data-control=\"";
|
|
218
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
219
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
220
|
+
buffer += escapeExpression(stack1)
|
|
221
|
+
+ "\" type=\"button\">\n ";
|
|
222
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
|
223
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
224
|
+
buffer += "\n <span class=\"label\">";
|
|
225
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
226
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
227
|
+
buffer += escapeExpression(stack1)
|
|
228
|
+
+ "</span>\n </button>\n";
|
|
229
|
+
return buffer;
|
|
230
|
+
}
|
|
231
|
+
function program2(depth0,data) {
|
|
232
|
+
|
|
233
|
+
var buffer = "", stack1, helper;
|
|
234
|
+
buffer += "<span class=\"icon-";
|
|
235
|
+
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
236
|
+
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
237
|
+
buffer += escapeExpression(stack1)
|
|
238
|
+
+ "\"></span> ";
|
|
239
|
+
return buffer;
|
|
240
|
+
}
|
|
158
241
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
168
|
-
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
169
|
-
buffer += escapeExpression(stack1)
|
|
170
|
-
+ "\"\r\n>\r\n <div class=\"modal-body clearfix\">\r\n ";
|
|
171
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.heading), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
172
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
173
|
-
buffer += "\r\n\r\n <p id=\"core/ui-dialog-message-";
|
|
174
|
-
if (helper = helpers.dialogId) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
175
|
-
else { helper = (depth0 && depth0.dialogId); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
176
|
-
buffer += escapeExpression(stack1)
|
|
177
|
-
+ "\" class=\"message\">";
|
|
178
|
-
if (helper = helpers.message) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
179
|
-
else { helper = (depth0 && depth0.message); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
180
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
181
|
-
buffer += "</p>\r\n\r\n ";
|
|
182
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.content), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
183
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
184
|
-
buffer += "\r\n\r\n <div class=\"buttons rgt\"></div>\r\n </div>\r\n</div>\r\n";
|
|
185
|
-
return buffer;
|
|
186
|
-
});
|
|
187
|
-
function bodyTpl(data, options, asString) {
|
|
188
|
-
var html = Template(data, options);
|
|
189
|
-
return (asString || true) ? html : $(html);
|
|
190
|
-
}
|
|
191
|
-
|
|
192
|
-
if (!Helpers0.__initialized) {
|
|
193
|
-
Helpers0(Handlebars);
|
|
194
|
-
Helpers0.__initialized = true;
|
|
195
|
-
}
|
|
196
|
-
var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
197
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
198
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
199
|
-
var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
200
|
-
|
|
201
|
-
function program1(depth0,data) {
|
|
202
|
-
|
|
203
|
-
var buffer = "", stack1, helper;
|
|
204
|
-
buffer += "\r\n <button class=\"btn-";
|
|
205
|
-
if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
206
|
-
else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
207
|
-
buffer += escapeExpression(stack1)
|
|
208
|
-
+ " small ";
|
|
209
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
210
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
211
|
-
buffer += escapeExpression(stack1)
|
|
212
|
-
+ "\" data-control=\"";
|
|
213
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
214
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
215
|
-
buffer += escapeExpression(stack1)
|
|
216
|
-
+ "\" type=\"button\">\r\n ";
|
|
217
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
|
218
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
219
|
-
buffer += "\r\n <span class=\"label\">";
|
|
220
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
221
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
222
|
-
buffer += escapeExpression(stack1)
|
|
223
|
-
+ "</span>\r\n </button>\r\n";
|
|
224
|
-
return buffer;
|
|
225
|
-
}
|
|
226
|
-
function program2(depth0,data) {
|
|
227
|
-
|
|
228
|
-
var buffer = "", stack1, helper;
|
|
229
|
-
buffer += "<span class=\"icon-";
|
|
230
|
-
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
231
|
-
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
232
|
-
buffer += escapeExpression(stack1)
|
|
233
|
-
+ "\"></span> ";
|
|
234
|
-
return buffer;
|
|
242
|
+
stack1 = helpers.each.call(depth0, (depth0 && depth0.buttons), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
243
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
244
|
+
buffer += "\n";
|
|
245
|
+
return buffer;
|
|
246
|
+
});
|
|
247
|
+
function buttonsTpl(data, options, asString) {
|
|
248
|
+
var html = Template$1(data, options);
|
|
249
|
+
return (asString || true) ? html : $(html);
|
|
235
250
|
}
|
|
236
251
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
* This program is distributed in the hope that it will be useful,
|
|
254
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
255
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
256
|
-
* GNU General Public License for more details.
|
|
257
|
-
*
|
|
258
|
-
* You should have received a copy of the GNU General Public License
|
|
259
|
-
* along with this program; if not, write to the Free Software
|
|
260
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
261
|
-
*
|
|
262
|
-
* Copyright (c) 2015-2019 (original work) Open Assessment Technologies SA ;
|
|
263
|
-
*/
|
|
264
|
-
/**
|
|
265
|
-
* The scope of events names
|
|
266
|
-
* @type {string}
|
|
267
|
-
*/
|
|
268
|
-
|
|
269
|
-
var _scope = '.modal';
|
|
270
|
-
/**
|
|
271
|
-
* A list of predefined buttons
|
|
272
|
-
* @type {Object}
|
|
273
|
-
*/
|
|
274
|
-
|
|
275
|
-
var _definedButtons = {
|
|
276
|
-
ok: {
|
|
277
|
-
id: 'ok',
|
|
278
|
-
type: 'info',
|
|
279
|
-
label: __('Ok'),
|
|
280
|
-
close: true
|
|
281
|
-
},
|
|
282
|
-
cancel: {
|
|
283
|
-
id: 'cancel',
|
|
284
|
-
type: 'regular',
|
|
285
|
-
label: __('Cancel'),
|
|
286
|
-
close: true
|
|
287
|
-
},
|
|
288
|
-
yes: {
|
|
289
|
-
id: 'yes',
|
|
290
|
-
type: 'info',
|
|
291
|
-
label: __('Yes'),
|
|
292
|
-
close: true
|
|
293
|
-
},
|
|
294
|
-
no: {
|
|
295
|
-
id: 'no',
|
|
296
|
-
type: 'regular',
|
|
297
|
-
label: __('No'),
|
|
298
|
-
close: true
|
|
299
|
-
}
|
|
300
|
-
};
|
|
301
|
-
/**
|
|
302
|
-
* The defaults fields values
|
|
303
|
-
* @type {Object}
|
|
304
|
-
*/
|
|
305
|
-
|
|
306
|
-
var _defaults = {
|
|
307
|
-
message: '',
|
|
308
|
-
content: '',
|
|
309
|
-
width: 500,
|
|
310
|
-
animate: false,
|
|
311
|
-
autoRender: false,
|
|
312
|
-
autoDestroy: false,
|
|
313
|
-
renderTo: 'body',
|
|
314
|
-
buttons: 'cancel,ok'
|
|
315
|
-
};
|
|
316
|
-
/**
|
|
317
|
-
* Define a dialog box
|
|
318
|
-
* @type {Object}
|
|
319
|
-
*/
|
|
320
|
-
|
|
321
|
-
var dialog = {
|
|
322
|
-
/**
|
|
323
|
-
* Initialise the dialog box.
|
|
324
|
-
* @param {Object} options - A list of options.
|
|
325
|
-
* @param {String} options.heading - An optional heading to display.
|
|
326
|
-
* @param {String} options.message - The message to display.
|
|
327
|
-
* @param {String} options.content - An optional content to display under the displayed message.
|
|
328
|
-
* @param {String} options.class - Space-separated string of classes to add to the root HTML element
|
|
329
|
-
* @param {Array|Object|String} options.buttons - A list of buttons to display (default: 'cancel,ok'). Can be:
|
|
330
|
-
* - a string: the button names separated by commas
|
|
331
|
-
* - an array: an array of button names or an array of button definitions
|
|
332
|
-
* - an object: a unique button definition, containing:
|
|
333
|
-
* - id: The button's id
|
|
334
|
-
* - type: A display type (regular, info, warning, error)
|
|
335
|
-
* - label: The button's caption
|
|
336
|
-
* - icon: An optional icon
|
|
337
|
-
* - close: A boolean value telling if the dialog must be closed after the button has been activated
|
|
338
|
-
* @param {String|jQuery|HTMLElement} options.renderTo - A container in which renders the dialog (default: 'body').
|
|
339
|
-
* @param {Boolean} options.autoRender - Allow the dialog to be immediately rendered after initialise.
|
|
340
|
-
* @param {Boolean} options.autoDestroy - Allow the dialog to be immediately destroyed when closing.
|
|
341
|
-
* @param {Boolean} [options.disableClosing = false] - to disable the default closers
|
|
342
|
-
* @param {Boolean} [options.disableEscape = false] - to disable the ability to escape close the dialog
|
|
343
|
-
* @param {Number} options.width - The dialog box width in pixels (default: 500).
|
|
344
|
-
* @param {Number|Boolean} options.animate - The dialog box animate duration (default: false).
|
|
345
|
-
* @param {Function} options.onXYZbtn - An event handler assigned to a particular button (XYZ).
|
|
346
|
-
* @returns {dialog}
|
|
252
|
+
/**
|
|
253
|
+
* This program is free software; you can redistribute it and/or
|
|
254
|
+
* modify it under the terms of the GNU General Public License
|
|
255
|
+
* as published by the Free Software Foundation; under version 2
|
|
256
|
+
* of the License (non-upgradable).
|
|
257
|
+
*
|
|
258
|
+
* This program is distributed in the hope that it will be useful,
|
|
259
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
260
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
261
|
+
* GNU General Public License for more details.
|
|
262
|
+
*
|
|
263
|
+
* You should have received a copy of the GNU General Public License
|
|
264
|
+
* along with this program; if not, write to the Free Software
|
|
265
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
266
|
+
*
|
|
267
|
+
* Copyright (c) 2015-2019 (original work) Open Assessment Technologies SA ;
|
|
347
268
|
*/
|
|
348
|
-
init: function init(options) {
|
|
349
|
-
var _this = this;
|
|
350
269
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
var initOptions = _.omit(options || {}, function (value, key) {
|
|
355
|
-
if (key.length > 2 && 'on' === key.substr(0, 2)) {
|
|
356
|
-
events[key.substr(2)] = value;
|
|
357
|
-
return true;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
return false;
|
|
361
|
-
}); // assign default values and options
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
_.defaults(this, initOptions, _defaults); // pre-render the dialog box
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
this.dialogId = _.uniqueId('dlg-');
|
|
368
|
-
this.$html = $$1(bodyTpl(this));
|
|
369
|
-
this.$buttons = this.$html.find('.buttons');
|
|
370
|
-
this.rendered = false;
|
|
371
|
-
this.destroyed = false; // install the buttons and bind the actions
|
|
372
|
-
|
|
373
|
-
this.$buttons.on('click' + _scope, 'button', this._onButtonClick.bind(this));
|
|
374
|
-
this.setButtons(this.buttons); // install the events extracted from the options
|
|
375
|
-
|
|
376
|
-
_.forEach(events, function (callback, eventName) {
|
|
377
|
-
if (eventName.indexOf('.') < 0) {
|
|
378
|
-
eventName += _scope;
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
_this.on(eventName.toLowerCase(), callback);
|
|
382
|
-
});
|
|
383
|
-
|
|
384
|
-
if (this.autoRender) {
|
|
385
|
-
this.render();
|
|
386
|
-
}
|
|
387
|
-
|
|
388
|
-
return this;
|
|
389
|
-
},
|
|
390
|
-
|
|
391
|
-
/**
|
|
392
|
-
* Destroys the dialog box
|
|
393
|
-
* @returns {dialog}
|
|
394
|
-
* @fires dialog#destroy.modal
|
|
270
|
+
/**
|
|
271
|
+
* The scope of events names
|
|
272
|
+
* @type {string}
|
|
395
273
|
*/
|
|
396
|
-
|
|
397
|
-
if (!this.destroyed) {
|
|
398
|
-
this._destroy(); // reset the context
|
|
399
|
-
|
|
274
|
+
const _scope = '.modal';
|
|
400
275
|
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
276
|
+
/**
|
|
277
|
+
* A list of predefined buttons
|
|
278
|
+
* @type {Object}
|
|
279
|
+
*/
|
|
280
|
+
const _definedButtons = {
|
|
281
|
+
ok: {
|
|
282
|
+
id: 'ok',
|
|
283
|
+
type: 'info',
|
|
284
|
+
label: __('Ok'),
|
|
285
|
+
close: true
|
|
286
|
+
},
|
|
287
|
+
cancel: {
|
|
288
|
+
id: 'cancel',
|
|
289
|
+
type: 'regular',
|
|
290
|
+
label: __('Cancel'),
|
|
291
|
+
close: true
|
|
292
|
+
},
|
|
293
|
+
yes: {
|
|
294
|
+
id: 'yes',
|
|
295
|
+
type: 'info',
|
|
296
|
+
label: __('Yes'),
|
|
297
|
+
close: true
|
|
298
|
+
},
|
|
299
|
+
no: {
|
|
300
|
+
id: 'no',
|
|
301
|
+
type: 'regular',
|
|
302
|
+
label: __('No'),
|
|
303
|
+
close: true
|
|
409
304
|
}
|
|
305
|
+
};
|
|
410
306
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
/**
|
|
415
|
-
* Set the action buttons
|
|
416
|
-
* @param {Object|Array|String} buttons
|
|
417
|
-
* @returns {dialog}
|
|
307
|
+
/**
|
|
308
|
+
* The defaults fields values
|
|
309
|
+
* @type {Object}
|
|
418
310
|
*/
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
311
|
+
const _defaults = {
|
|
312
|
+
message: '',
|
|
313
|
+
content: '',
|
|
314
|
+
width: 500,
|
|
315
|
+
animate: false,
|
|
316
|
+
autoRender: false,
|
|
317
|
+
autoDestroy: false,
|
|
318
|
+
renderTo: 'body',
|
|
319
|
+
buttons: 'cancel,ok'
|
|
320
|
+
};
|
|
321
|
+
|
|
322
|
+
/**
|
|
323
|
+
* Define a dialog box
|
|
324
|
+
* @type {Object}
|
|
325
|
+
*/
|
|
326
|
+
const dialog = {
|
|
327
|
+
/**
|
|
328
|
+
* Initialise the dialog box.
|
|
329
|
+
* @param {Object} options - A list of options.
|
|
330
|
+
* @param {String} options.heading - An optional heading to display.
|
|
331
|
+
* @param {String} options.message - The message to display.
|
|
332
|
+
* @param {String} options.content - An optional content to display under the displayed message.
|
|
333
|
+
* @param {String} options.class - Space-separated string of classes to add to the root HTML element
|
|
334
|
+
* @param {Array|Object|String} options.buttons - A list of buttons to display (default: 'cancel,ok'). Can be:
|
|
335
|
+
* - a string: the button names separated by commas
|
|
336
|
+
* - an array: an array of button names or an array of button definitions
|
|
337
|
+
* - an object: a unique button definition, containing:
|
|
338
|
+
* - id: The button's id
|
|
339
|
+
* - type: A display type (regular, info, warning, error)
|
|
340
|
+
* - label: The button's caption
|
|
341
|
+
* - icon: An optional icon
|
|
342
|
+
* - close: A boolean value telling if the dialog must be closed after the button has been activated
|
|
343
|
+
* @param {String|jQuery|HTMLElement} options.renderTo - A container in which renders the dialog (default: 'body').
|
|
344
|
+
* @param {Boolean} options.autoRender - Allow the dialog to be immediately rendered after initialise.
|
|
345
|
+
* @param {Boolean} options.autoDestroy - Allow the dialog to be immediately destroyed when closing.
|
|
346
|
+
* @param {Boolean} [options.disableClosing = false] - to disable the default closers
|
|
347
|
+
* @param {Boolean} [options.disableEscape = false] - to disable the ability to escape close the dialog
|
|
348
|
+
* @param {Number} options.width - The dialog box width in pixels (default: 500).
|
|
349
|
+
* @param {Number|Boolean} options.animate - The dialog box animate duration (default: false).
|
|
350
|
+
* @param {Function} options.onXYZbtn - An event handler assigned to a particular button (XYZ).
|
|
351
|
+
* @returns {dialog}
|
|
352
|
+
*/
|
|
353
|
+
init(options) {
|
|
354
|
+
// split options to events
|
|
355
|
+
const events = {};
|
|
356
|
+
const initOptions = _.omit(options || {}, (value, key) => {
|
|
357
|
+
if (key.length > 2 && 'on' === key.substr(0, 2)) {
|
|
358
|
+
events[key.substr(2)] = value;
|
|
359
|
+
return true;
|
|
431
360
|
}
|
|
432
|
-
|
|
361
|
+
return false;
|
|
362
|
+
});
|
|
433
363
|
|
|
364
|
+
// assign default values and options
|
|
365
|
+
_.defaults(this, initOptions, _defaults);
|
|
434
366
|
|
|
435
|
-
|
|
367
|
+
// pre-render the dialog box
|
|
368
|
+
this.dialogId = _.uniqueId('dlg-');
|
|
369
|
+
this.$html = $$1(bodyTpl(this));
|
|
370
|
+
this.$buttons = this.$html.find('.buttons');
|
|
371
|
+
this.rendered = false;
|
|
372
|
+
this.destroyed = false;
|
|
436
373
|
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
btn = _definedButtons[btn] || {
|
|
441
|
-
id: btn,
|
|
442
|
-
type: 'info',
|
|
443
|
-
label: btn
|
|
444
|
-
};
|
|
445
|
-
}
|
|
374
|
+
// install the buttons and bind the actions
|
|
375
|
+
this.$buttons.on('click' + _scope, 'button', this._onButtonClick.bind(this));
|
|
376
|
+
this.setButtons(this.buttons);
|
|
446
377
|
|
|
447
|
-
|
|
448
|
-
|
|
378
|
+
// install the events extracted from the options
|
|
379
|
+
_.forEach(events, (callback, eventName) => {
|
|
380
|
+
if (eventName.indexOf('.') < 0) {
|
|
381
|
+
eventName += _scope;
|
|
449
382
|
}
|
|
450
|
-
|
|
451
|
-
_this2.buttons[btn.id] = btn;
|
|
383
|
+
this.on(eventName.toLowerCase(), callback);
|
|
452
384
|
});
|
|
453
|
-
|
|
454
|
-
this.$buttons.html(buttonsTpl(this));
|
|
455
|
-
}
|
|
456
|
-
|
|
457
|
-
return this;
|
|
458
|
-
},
|
|
459
|
-
|
|
460
|
-
/**
|
|
461
|
-
* Renders and shows the dialog box
|
|
462
|
-
* @param {String|HTMLElement|jQuery} [to]
|
|
463
|
-
* @returns {dialog}
|
|
464
|
-
* @fires modal#create.modal
|
|
465
|
-
*/
|
|
466
|
-
render: function render(to) {
|
|
467
|
-
if (!this.destroyed) {
|
|
468
|
-
$$1(to || this.renderTo).append(this.$html);
|
|
469
|
-
|
|
470
|
-
this._install();
|
|
471
|
-
|
|
472
|
-
this.rendered = true;
|
|
473
|
-
}
|
|
474
|
-
|
|
475
|
-
return this;
|
|
476
|
-
},
|
|
477
|
-
|
|
478
|
-
/**
|
|
479
|
-
* Shows the dialog box. Also renders if needed.
|
|
480
|
-
* @returns {dialog}
|
|
481
|
-
* @fires modal#opened.modal
|
|
482
|
-
*/
|
|
483
|
-
show: function show() {
|
|
484
|
-
if (!this.destroyed) {
|
|
485
|
-
if (!this.rendered) {
|
|
385
|
+
if (this.autoRender) {
|
|
486
386
|
this.render();
|
|
487
|
-
} else {
|
|
488
|
-
this._open();
|
|
489
387
|
}
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
388
|
+
return this;
|
|
389
|
+
},
|
|
390
|
+
/**
|
|
391
|
+
* Destroys the dialog box
|
|
392
|
+
* @returns {dialog}
|
|
393
|
+
* @fires dialog#destroy.modal
|
|
394
|
+
*/
|
|
395
|
+
destroy() {
|
|
396
|
+
if (!this.destroyed) {
|
|
397
|
+
this._destroy();
|
|
398
|
+
|
|
399
|
+
// reset the context
|
|
400
|
+
this.rendered = false;
|
|
401
|
+
this.destroyed = true;
|
|
402
|
+
this.trigger('destroy' + _scope);
|
|
403
|
+
|
|
404
|
+
// disable events and remove DOM
|
|
405
|
+
this.$buttons.off(_scope);
|
|
406
|
+
this.$html.off(_scope).remove();
|
|
407
|
+
this.$html = null;
|
|
408
|
+
this.$buttons = null;
|
|
506
409
|
}
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
/**
|
|
526
|
-
* Uninstall an event handler from the underlying DOM element
|
|
527
|
-
* @param {String} eventName
|
|
528
|
-
* @returns {dialog}
|
|
529
|
-
*/
|
|
530
|
-
off: function off(eventName) {
|
|
531
|
-
if (this.$html) {
|
|
532
|
-
this.$html.off.apply(this.$html, arguments);
|
|
533
|
-
}
|
|
534
|
-
|
|
535
|
-
return this;
|
|
536
|
-
},
|
|
410
|
+
return this;
|
|
411
|
+
},
|
|
412
|
+
/**
|
|
413
|
+
* Set the action buttons
|
|
414
|
+
* @param {Object|Array|String} buttons
|
|
415
|
+
* @returns {dialog}
|
|
416
|
+
*/
|
|
417
|
+
setButtons(buttons) {
|
|
418
|
+
if (!this.destroyed) {
|
|
419
|
+
if (!buttons) {
|
|
420
|
+
buttons = _defaults.buttons;
|
|
421
|
+
}
|
|
422
|
+
if (!_.isArray(buttons)) {
|
|
423
|
+
// buttons can be set as a list of names
|
|
424
|
+
if (_.isString(buttons)) {
|
|
425
|
+
buttons = buttons.split(',');
|
|
426
|
+
}
|
|
427
|
+
}
|
|
537
428
|
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
429
|
+
// bind the buttons with
|
|
430
|
+
this.buttons = {};
|
|
431
|
+
_.forEach(buttons, btn => {
|
|
432
|
+
if (_.isString(btn)) {
|
|
433
|
+
btn = btn.trim();
|
|
434
|
+
btn = _definedButtons[btn] || {
|
|
435
|
+
id: btn,
|
|
436
|
+
type: 'info',
|
|
437
|
+
label: btn
|
|
438
|
+
};
|
|
439
|
+
}
|
|
440
|
+
if (!btn.type) {
|
|
441
|
+
btn.type = 'regular';
|
|
442
|
+
}
|
|
443
|
+
this.buttons[btn.id] = btn;
|
|
444
|
+
});
|
|
445
|
+
this.$buttons.html(buttonsTpl(this));
|
|
548
446
|
}
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
447
|
+
return this;
|
|
448
|
+
},
|
|
449
|
+
/**
|
|
450
|
+
* Renders and shows the dialog box
|
|
451
|
+
* @param {String|HTMLElement|jQuery} [to]
|
|
452
|
+
* @returns {dialog}
|
|
453
|
+
* @fires modal#create.modal
|
|
454
|
+
*/
|
|
455
|
+
render(to) {
|
|
456
|
+
if (!this.destroyed) {
|
|
457
|
+
$$1(to || this.renderTo).append(this.$html);
|
|
458
|
+
this._install();
|
|
459
|
+
this.rendered = true;
|
|
552
460
|
}
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
return this;
|
|
560
|
-
},
|
|
561
|
-
|
|
562
|
-
/**
|
|
563
|
-
* Gets the underlying DOM element
|
|
564
|
-
* @returns {jQuery}
|
|
565
|
-
*/
|
|
566
|
-
getDom: function getDom() {
|
|
567
|
-
return this.$html;
|
|
568
|
-
},
|
|
569
|
-
|
|
570
|
-
/**
|
|
571
|
-
* Called when button is clicked.
|
|
572
|
-
* Executes a button related action
|
|
573
|
-
* @param {Event} event
|
|
574
|
-
* @private
|
|
575
|
-
*/
|
|
576
|
-
_onButtonClick: function _onButtonClick(event) {
|
|
577
|
-
var $btn = $$1(event.target).closest('button');
|
|
578
|
-
var id = $btn.data('control');
|
|
579
|
-
var btn = this.buttons[id];
|
|
580
|
-
|
|
581
|
-
if (btn) {
|
|
582
|
-
this._execute(btn);
|
|
583
|
-
}
|
|
584
|
-
},
|
|
585
|
-
|
|
586
|
-
/**
|
|
587
|
-
* Execute a button related action
|
|
588
|
-
* @param {Object} btn
|
|
589
|
-
* @private
|
|
590
|
-
* @fires dialog#[button.id]btn.modal
|
|
591
|
-
*/
|
|
592
|
-
_execute: function _execute(btn) {
|
|
593
|
-
// call the optional callback
|
|
594
|
-
if (btn.action) {
|
|
595
|
-
btn.action.apply(this, [btn, this]);
|
|
596
|
-
}
|
|
597
|
-
/**
|
|
598
|
-
* Fires the event based on the button name
|
|
599
|
-
* @event dialog#[button.id]btn.modal
|
|
600
|
-
* @param {Object} btn - The related button
|
|
461
|
+
return this;
|
|
462
|
+
},
|
|
463
|
+
/**
|
|
464
|
+
* Shows the dialog box. Also renders if needed.
|
|
465
|
+
* @returns {dialog}
|
|
466
|
+
* @fires modal#opened.modal
|
|
601
467
|
*/
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
if (btn.close) {
|
|
607
|
-
this.hide();
|
|
608
|
-
}
|
|
609
|
-
},
|
|
610
|
-
|
|
611
|
-
/**
|
|
612
|
-
* Set focus on the dialog
|
|
613
|
-
* @param {String} [button] - The identifier of the button to focus. If none is provided, the focus will be put
|
|
614
|
-
* on the first navigable element.
|
|
615
|
-
*/
|
|
616
|
-
focus: function focus(button) {
|
|
617
|
-
var position = -1;
|
|
618
|
-
|
|
619
|
-
if (button) {
|
|
620
|
-
position = _.findIndex(this.navigator.getNavigableElements(), function (navigable) {
|
|
621
|
-
return navigable.getElement().is('[data-control="' + button + '"]');
|
|
622
|
-
});
|
|
623
|
-
}
|
|
624
|
-
|
|
625
|
-
if (position >= 0) {
|
|
626
|
-
this.navigator.setCursorAt(position);
|
|
627
|
-
} else {
|
|
628
|
-
this.navigator.focus();
|
|
629
|
-
}
|
|
630
|
-
},
|
|
631
|
-
|
|
632
|
-
/**
|
|
633
|
-
* Installs the dialog box
|
|
634
|
-
* @private
|
|
635
|
-
* #fires dialog#create.dialog
|
|
636
|
-
*/
|
|
637
|
-
_install: function _install() {
|
|
638
|
-
var _this3 = this;
|
|
639
|
-
|
|
640
|
-
if (!this.destroyed) {
|
|
641
|
-
this.$html.modal({
|
|
642
|
-
width: this.width,
|
|
643
|
-
animate: this.animate,
|
|
644
|
-
disableClosing: this.disableClosing,
|
|
645
|
-
disableEscape: this.disableEscape
|
|
646
|
-
}).on('closed' + _scope, function () {
|
|
647
|
-
if (_this3.autoDestroy) {
|
|
648
|
-
_this3.destroy();
|
|
649
|
-
}
|
|
650
|
-
});
|
|
651
|
-
var $items = this.getDom().add($$1(_scope).find('input')).add(this.$buttons.find('button'));
|
|
652
|
-
var closeButton = $$1(_scope).find('#modal-close-btn')[0];
|
|
653
|
-
|
|
654
|
-
if (closeButton) {
|
|
655
|
-
$items.push(closeButton);
|
|
656
|
-
} //creates the navigator to manage the key navigation
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
this.navigator = keyNavigator({
|
|
660
|
-
elements: navigableDomElement.createFromDoms($items),
|
|
661
|
-
propagateTab: false
|
|
662
|
-
}).on('right down', function () {
|
|
663
|
-
if (this.getCursor().position === $items.length - 1) {
|
|
664
|
-
this.setCursorAt(1); // Skip container.
|
|
468
|
+
show() {
|
|
469
|
+
if (!this.destroyed) {
|
|
470
|
+
if (!this.rendered) {
|
|
471
|
+
this.render();
|
|
665
472
|
} else {
|
|
666
|
-
this.
|
|
473
|
+
this._open();
|
|
667
474
|
}
|
|
668
|
-
}
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
475
|
+
}
|
|
476
|
+
return this;
|
|
477
|
+
},
|
|
478
|
+
/**
|
|
479
|
+
* Hides the dialog box. Does nothing if the dialog box has not been rendered.
|
|
480
|
+
* @returns {dialog}
|
|
481
|
+
* @fires modal#closed.modal
|
|
482
|
+
*/
|
|
483
|
+
hide() {
|
|
484
|
+
if (!this.destroyed && this.rendered) {
|
|
485
|
+
this._close();
|
|
486
|
+
if (this.autoDestroy) {
|
|
487
|
+
this.destroy();
|
|
674
488
|
}
|
|
675
|
-
}
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
489
|
+
}
|
|
490
|
+
return this;
|
|
491
|
+
},
|
|
492
|
+
/**
|
|
493
|
+
* Install an event handler on the underlying DOM element
|
|
494
|
+
* @param {String} eventName
|
|
495
|
+
* @returns {dialog}
|
|
496
|
+
*/
|
|
497
|
+
on(eventName) {
|
|
498
|
+
if (this.$html) {
|
|
499
|
+
this.$html.on.apply(this.$html, arguments);
|
|
500
|
+
}
|
|
501
|
+
return this;
|
|
502
|
+
},
|
|
503
|
+
/**
|
|
504
|
+
* Uninstall an event handler from the underlying DOM element
|
|
505
|
+
* @param {String} eventName
|
|
506
|
+
* @returns {dialog}
|
|
507
|
+
*/
|
|
508
|
+
off(eventName) {
|
|
509
|
+
if (this.$html) {
|
|
510
|
+
this.$html.off.apply(this.$html, arguments);
|
|
511
|
+
}
|
|
512
|
+
return this;
|
|
513
|
+
},
|
|
514
|
+
/**
|
|
515
|
+
* Triggers an event on the underlying DOM element
|
|
516
|
+
* @param {String} eventName
|
|
517
|
+
* @param {Array|Object} extraParameters
|
|
518
|
+
* @returns {dialog}
|
|
519
|
+
*/
|
|
520
|
+
trigger(eventName, extraParameters) {
|
|
521
|
+
if (this.$html) {
|
|
522
|
+
if (undefined === extraParameters) {
|
|
523
|
+
extraParameters = [];
|
|
680
524
|
}
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
// Skip container.
|
|
684
|
-
this.last();
|
|
685
|
-
} else {
|
|
686
|
-
this.previous();
|
|
525
|
+
if (!_.isArray(extraParameters)) {
|
|
526
|
+
extraParameters = [extraParameters];
|
|
687
527
|
}
|
|
688
|
-
|
|
689
|
-
|
|
528
|
+
extraParameters = Array.prototype.slice.call(extraParameters);
|
|
529
|
+
extraParameters.push(this);
|
|
530
|
+
this.$html.trigger(eventName, extraParameters);
|
|
531
|
+
}
|
|
532
|
+
return this;
|
|
533
|
+
},
|
|
534
|
+
/**
|
|
535
|
+
* Gets the underlying DOM element
|
|
536
|
+
* @returns {jQuery}
|
|
537
|
+
*/
|
|
538
|
+
getDom() {
|
|
539
|
+
return this.$html;
|
|
540
|
+
},
|
|
541
|
+
/**
|
|
542
|
+
* Called when button is clicked.
|
|
543
|
+
* Executes a button related action
|
|
544
|
+
* @param {Event} event
|
|
545
|
+
* @private
|
|
546
|
+
*/
|
|
547
|
+
_onButtonClick(event) {
|
|
548
|
+
const $btn = $$1(event.target).closest('button');
|
|
549
|
+
const id = $btn.data('control');
|
|
550
|
+
const btn = this.buttons[id];
|
|
551
|
+
if (btn) {
|
|
552
|
+
this._execute(btn);
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
/**
|
|
556
|
+
* Execute a button related action
|
|
557
|
+
* @param {Object} btn
|
|
558
|
+
* @private
|
|
559
|
+
* @fires dialog#[button.id]btn.modal
|
|
560
|
+
*/
|
|
561
|
+
_execute(btn) {
|
|
562
|
+
// call the optional callback
|
|
563
|
+
if (btn.action) {
|
|
564
|
+
btn.action.apply(this, [btn, this]);
|
|
565
|
+
}
|
|
690
566
|
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
this.navigator.first(); //added a global shortcut to enable setting focus on tab
|
|
567
|
+
/**
|
|
568
|
+
* Fires the event based on the button name
|
|
569
|
+
* @event dialog#[button.id]btn.modal
|
|
570
|
+
* @param {Object} btn - The related button
|
|
571
|
+
*/
|
|
572
|
+
this.trigger(btn.id + 'btn' + _scope, [btn]);
|
|
698
573
|
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
574
|
+
// auto close the dialog box if the button allows it
|
|
575
|
+
if (btn.close) {
|
|
576
|
+
this.hide();
|
|
577
|
+
}
|
|
578
|
+
},
|
|
579
|
+
/**
|
|
580
|
+
* Set focus on the dialog
|
|
581
|
+
* @param {String} [button] - The identifier of the button to focus. If none is provided, the focus will be put
|
|
582
|
+
* on the first navigable element.
|
|
583
|
+
*/
|
|
584
|
+
focus(button) {
|
|
585
|
+
let position = -1;
|
|
586
|
+
if (button) {
|
|
587
|
+
position = _.findIndex(this.navigator.getNavigableElements(), navigable => {
|
|
588
|
+
return navigable.getElement().is('[data-control="' + button + '"]');
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
if (position >= 0) {
|
|
592
|
+
this.navigator.setCursorAt(position);
|
|
593
|
+
} else {
|
|
594
|
+
this.navigator.focus();
|
|
595
|
+
}
|
|
596
|
+
},
|
|
597
|
+
/**
|
|
598
|
+
* Installs the dialog box
|
|
599
|
+
* @private
|
|
600
|
+
* #fires dialog#create.dialog
|
|
601
|
+
*/
|
|
602
|
+
_install() {
|
|
603
|
+
if (!this.destroyed) {
|
|
604
|
+
this.$html.modal({
|
|
605
|
+
width: this.width,
|
|
606
|
+
animate: this.animate,
|
|
607
|
+
disableClosing: this.disableClosing,
|
|
608
|
+
disableEscape: this.disableEscape
|
|
609
|
+
}).on('closed' + _scope, () => {
|
|
610
|
+
if (this.autoDestroy) {
|
|
611
|
+
this.destroy();
|
|
612
|
+
}
|
|
613
|
+
});
|
|
614
|
+
const $items = this.getDom().add($$1(_scope).find('input')).add(this.$buttons.find('button'));
|
|
615
|
+
const closeButton = $$1(_scope).find('#modal-close-btn')[0];
|
|
616
|
+
if (closeButton) {
|
|
617
|
+
$items.push(closeButton);
|
|
702
618
|
}
|
|
703
|
-
});
|
|
704
|
-
this.trigger('create.dialog');
|
|
705
|
-
}
|
|
706
|
-
},
|
|
707
|
-
|
|
708
|
-
/**
|
|
709
|
-
* Opens the dialog box
|
|
710
|
-
* @private
|
|
711
|
-
*/
|
|
712
|
-
_open: function _open() {
|
|
713
|
-
this.$html.modal('open');
|
|
714
|
-
},
|
|
715
|
-
|
|
716
|
-
/**
|
|
717
|
-
* Closes the dialog box
|
|
718
|
-
* @private
|
|
719
|
-
*/
|
|
720
|
-
_close: function _close() {
|
|
721
|
-
this.$html.modal('close');
|
|
722
|
-
},
|
|
723
|
-
|
|
724
|
-
/**
|
|
725
|
-
* Destroys the dialog box
|
|
726
|
-
* @private
|
|
727
|
-
*/
|
|
728
|
-
_destroy: function _destroy() {
|
|
729
|
-
this.$html.modal('destroy');
|
|
730
619
|
|
|
731
|
-
|
|
732
|
-
|
|
620
|
+
//creates the navigator to manage the key navigation
|
|
621
|
+
this.navigator = keyNavigator({
|
|
622
|
+
elements: navigableDomElement.createFromDoms($items),
|
|
623
|
+
propagateTab: false
|
|
624
|
+
}).on('right down', function () {
|
|
625
|
+
if (this.getCursor().position === $items.length - 1) {
|
|
626
|
+
this.setCursorAt(1); // Skip container.
|
|
627
|
+
} else {
|
|
628
|
+
this.next();
|
|
629
|
+
}
|
|
630
|
+
}).on('left up', function () {
|
|
631
|
+
if (this.getCursor().position === 1) {
|
|
632
|
+
// Skip container.
|
|
633
|
+
this.last();
|
|
634
|
+
} else {
|
|
635
|
+
this.previous();
|
|
636
|
+
}
|
|
637
|
+
}).on('tab', function () {
|
|
638
|
+
if (this.getCursor().position === $items.length - 1) {
|
|
639
|
+
this.setCursorAt(1); // Skip container.
|
|
640
|
+
} else {
|
|
641
|
+
this.next();
|
|
642
|
+
}
|
|
643
|
+
}).on('shift+tab', function () {
|
|
644
|
+
if (this.getCursor().position === 1) {
|
|
645
|
+
// Skip container.
|
|
646
|
+
this.last();
|
|
647
|
+
} else {
|
|
648
|
+
this.previous();
|
|
649
|
+
}
|
|
650
|
+
}).on('activate', _.debounce(function (cursor) {
|
|
651
|
+
const $elt = cursor.navigable.getElement();
|
|
652
|
+
if (!$elt.is(':radio,:checkbox')) {
|
|
653
|
+
$elt.click();
|
|
654
|
+
} else {
|
|
655
|
+
$elt.prop('checked', !$elt.prop('checked')).change();
|
|
656
|
+
}
|
|
657
|
+
}, 10));
|
|
658
|
+
this.navigator.first();
|
|
659
|
+
//added a global shortcut to enable setting focus on tab
|
|
660
|
+
this.globalShortcut = shortcutRegistry($$1('body')).add('tab shift+tab', () => {
|
|
661
|
+
if (!this.navigator.isFocused()) {
|
|
662
|
+
this.navigator.focus();
|
|
663
|
+
}
|
|
664
|
+
});
|
|
665
|
+
this.trigger('create.dialog');
|
|
666
|
+
}
|
|
667
|
+
},
|
|
668
|
+
/**
|
|
669
|
+
* Opens the dialog box
|
|
670
|
+
* @private
|
|
671
|
+
*/
|
|
672
|
+
_open() {
|
|
673
|
+
this.$html.modal('open');
|
|
674
|
+
},
|
|
675
|
+
/**
|
|
676
|
+
* Closes the dialog box
|
|
677
|
+
* @private
|
|
678
|
+
*/
|
|
679
|
+
_close() {
|
|
680
|
+
this.$html.modal('close');
|
|
681
|
+
},
|
|
682
|
+
/**
|
|
683
|
+
* Destroys the dialog box
|
|
684
|
+
* @private
|
|
685
|
+
*/
|
|
686
|
+
_destroy() {
|
|
687
|
+
this.$html.modal('destroy');
|
|
688
|
+
if (this.navigator) {
|
|
689
|
+
this.navigator.destroy();
|
|
690
|
+
}
|
|
691
|
+
if (this.globalShortcut) {
|
|
692
|
+
this.globalShortcut.clear();
|
|
693
|
+
}
|
|
733
694
|
}
|
|
695
|
+
};
|
|
734
696
|
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
697
|
+
/**
|
|
698
|
+
* Builds a dialog box instance
|
|
699
|
+
* @param {Object} options
|
|
700
|
+
* @returns {dialog}
|
|
701
|
+
*/
|
|
702
|
+
function dialogFactory(options) {
|
|
703
|
+
const instance = Object.assign({}, dialog);
|
|
704
|
+
instance.init(options);
|
|
705
|
+
return instance;
|
|
738
706
|
}
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
* Builds a dialog box instance
|
|
742
|
-
* @param {Object} options
|
|
743
|
-
* @returns {dialog}
|
|
744
|
-
*/
|
|
745
|
-
|
|
746
|
-
function dialogFactory(options) {
|
|
747
|
-
var instance = Object.assign({}, dialog);
|
|
748
|
-
instance.init(options);
|
|
749
|
-
return instance;
|
|
750
|
-
}
|
|
751
|
-
|
|
752
|
-
return dialogFactory;
|
|
707
|
+
|
|
708
|
+
return dialogFactory;
|
|
753
709
|
|
|
754
710
|
});
|