@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
|
@@ -9,83 +9,75 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
9
9
|
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
10
10
|
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
11
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) 2022 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
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) 2022 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
28
28
|
*/
|
|
29
29
|
function getImage(widget) {
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
let $img = widget.$original;
|
|
31
|
+
let img = widget.element;
|
|
33
32
|
if (widget.element.is('figure')) {
|
|
34
33
|
$img = widget.$original.find('img');
|
|
35
|
-
img = _.find(widget.element.getBody().elements,
|
|
36
|
-
return elem.is('img');
|
|
37
|
-
});
|
|
34
|
+
img = _.find(widget.element.getBody().elements, elem => elem.is('img'));
|
|
38
35
|
}
|
|
39
|
-
|
|
40
36
|
return {
|
|
41
|
-
$img
|
|
42
|
-
img
|
|
37
|
+
$img,
|
|
38
|
+
img
|
|
43
39
|
};
|
|
44
40
|
}
|
|
45
41
|
|
|
46
|
-
/*
|
|
47
|
-
* This program is free software; you can redistribute it and/or
|
|
48
|
-
* modify it under the terms of the GNU General Public License
|
|
49
|
-
* as published by the Free Software Foundation; under version 2
|
|
50
|
-
* of the License (non-upgradable).
|
|
51
|
-
*
|
|
52
|
-
* This program is distributed in the hope that it will be useful,
|
|
53
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
54
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
55
|
-
* GNU General Public License for more details.
|
|
56
|
-
*
|
|
57
|
-
* You should have received a copy of the GNU General Public License
|
|
58
|
-
* along with this program; if not, write to the Free Software
|
|
59
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
60
|
-
*
|
|
61
|
-
* Copyright (c) 2021 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
42
|
+
/*
|
|
43
|
+
* This program is free software; you can redistribute it and/or
|
|
44
|
+
* modify it under the terms of the GNU General Public License
|
|
45
|
+
* as published by the Free Software Foundation; under version 2
|
|
46
|
+
* of the License (non-upgradable).
|
|
47
|
+
*
|
|
48
|
+
* This program is distributed in the hope that it will be useful,
|
|
49
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
50
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
51
|
+
* GNU General Public License for more details.
|
|
52
|
+
*
|
|
53
|
+
* You should have received a copy of the GNU General Public License
|
|
54
|
+
* along with this program; if not, write to the Free Software
|
|
55
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
56
|
+
*
|
|
57
|
+
* Copyright (c) 2021 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
62
58
|
*/
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
59
|
+
const mediaSizer = function mediaSizer(media, widget) {
|
|
60
|
+
const {
|
|
61
|
+
img,
|
|
62
|
+
$img
|
|
63
|
+
} = getImage(widget);
|
|
64
|
+
const $mediaSpan = widget.$container;
|
|
70
65
|
if (img.data('responsive') !== media.responsive) {
|
|
71
66
|
// switch between responsive and absolute values
|
|
72
|
-
img.data('responsive', media.responsive);
|
|
73
|
-
|
|
67
|
+
img.data('responsive', media.responsive);
|
|
68
|
+
// clean styles from prev mode
|
|
74
69
|
$img.removeAttr('width');
|
|
75
70
|
$img.removeAttr('height');
|
|
76
71
|
$mediaSpan[0].removeAttribute('style');
|
|
77
72
|
}
|
|
78
|
-
|
|
79
73
|
_(['width', 'height']).each(function (sizeAttr) {
|
|
80
|
-
|
|
81
|
-
|
|
74
|
+
let val;
|
|
82
75
|
if (media[sizeAttr] === '' || typeof media[sizeAttr] === 'undefined' || media[sizeAttr] === null) {
|
|
83
76
|
img.removeAttr(sizeAttr);
|
|
84
77
|
$img.removeAttr(sizeAttr);
|
|
85
78
|
$mediaSpan.css(sizeAttr, '');
|
|
86
79
|
} else {
|
|
87
80
|
val = Math.round(media[sizeAttr]);
|
|
88
|
-
|
|
89
81
|
if (media.responsive) {
|
|
90
82
|
val += '%';
|
|
91
83
|
img.attr(sizeAttr, val);
|
|
@@ -94,36 +86,33 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
94
86
|
img.attr(sizeAttr, val);
|
|
95
87
|
$img.attr(sizeAttr, val);
|
|
96
88
|
}
|
|
97
|
-
|
|
98
89
|
if (media.responsive || sizeAttr === 'width') {
|
|
99
90
|
$mediaSpan.css(sizeAttr, val);
|
|
100
91
|
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
|
|
92
|
+
}
|
|
93
|
+
//trigger choice container size adaptation
|
|
104
94
|
widget.$container.trigger('contentChange.qti-widget');
|
|
105
95
|
});
|
|
106
96
|
};
|
|
107
97
|
|
|
108
|
-
/*
|
|
109
|
-
* This program is free software; you can redistribute it and/or
|
|
110
|
-
* modify it under the terms of the GNU General Public License
|
|
111
|
-
* as published by the Free Software Foundation; under version 2
|
|
112
|
-
* of the License (non-upgradable).
|
|
113
|
-
*
|
|
114
|
-
* This program is distributed in the hope that it will be useful,
|
|
115
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
116
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
117
|
-
* GNU General Public License for more details.
|
|
118
|
-
*
|
|
119
|
-
* You should have received a copy of the GNU General Public License
|
|
120
|
-
* along with this program; if not, write to the Free Software
|
|
121
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
122
|
-
*
|
|
123
|
-
* Copyright (c) 2021 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
98
|
+
/*
|
|
99
|
+
* This program is free software; you can redistribute it and/or
|
|
100
|
+
* modify it under the terms of the GNU General Public License
|
|
101
|
+
* as published by the Free Software Foundation; under version 2
|
|
102
|
+
* of the License (non-upgradable).
|
|
103
|
+
*
|
|
104
|
+
* This program is distributed in the hope that it will be useful,
|
|
105
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
106
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
107
|
+
* GNU General Public License for more details.
|
|
108
|
+
*
|
|
109
|
+
* You should have received a copy of the GNU General Public License
|
|
110
|
+
* along with this program; if not, write to the Free Software
|
|
111
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
112
|
+
*
|
|
113
|
+
* Copyright (c) 2021 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
124
114
|
*/
|
|
125
|
-
|
|
126
|
-
var getMedia = function getMedia(imgQtiElement, $imgNode, cb) {
|
|
115
|
+
const getMedia = (imgQtiElement, $imgNode, cb) => {
|
|
127
116
|
//init data-responsive:
|
|
128
117
|
if (typeof imgQtiElement.data('responsive') === 'undefined') {
|
|
129
118
|
if (imgQtiElement.attr('width') && !/[0-9]+%/.test(imgQtiElement.attr('width'))) {
|
|
@@ -132,7 +121,6 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
132
121
|
imgQtiElement.data('responsive', true);
|
|
133
122
|
}
|
|
134
123
|
}
|
|
135
|
-
|
|
136
124
|
if (typeof imgQtiElement.attr('original-width') !== 'undefined' && typeof imgQtiElement.attr('original-height') !== 'undefined' && typeof imgQtiElement.attr('type') !== 'undefined' && typeof imgQtiElement.attr('src') !== 'undefined' && typeof imgQtiElement.attr('width') !== 'undefined' && typeof imgQtiElement.attr('height') !== 'undefined') {
|
|
137
125
|
cb({
|
|
138
126
|
$node: $imgNode,
|
|
@@ -156,17 +144,14 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
156
144
|
});
|
|
157
145
|
}
|
|
158
146
|
};
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
var $mediaResizer = widget.$form.find('.img-resizer');
|
|
147
|
+
const getMediaCb = (media, widget, mediaEditor, options) => {
|
|
148
|
+
const $mediaResizer = widget.$form.find('.img-resizer');
|
|
162
149
|
media.$container = widget.$container.parents('.widget-box');
|
|
163
|
-
|
|
164
150
|
if (media.$container.length) {
|
|
165
151
|
// eslint-disable-next-line no-unused-vars
|
|
166
152
|
mediaEditor = mediaEditorComponent($mediaResizer, media, options).on('change', function (nMedia) {
|
|
167
153
|
media = nMedia;
|
|
168
154
|
widget.$original.prop('style', null); // not allowed by qti
|
|
169
|
-
|
|
170
155
|
widget.$original.removeAttr('style');
|
|
171
156
|
alignmentHelper.positionFloat(widget, media.align);
|
|
172
157
|
mediaSizer(media, widget);
|
|
@@ -174,96 +159,86 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
174
159
|
});
|
|
175
160
|
}
|
|
176
161
|
};
|
|
177
|
-
|
|
178
162
|
function initMediaEditor(widget, mediaEditor, options) {
|
|
179
163
|
if (mediaEditor) {
|
|
180
164
|
mediaEditor.destroy();
|
|
181
165
|
}
|
|
182
|
-
|
|
183
166
|
if (!widget.$form.find('input[name=src]').val()) {
|
|
184
167
|
return;
|
|
185
168
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
getMedia(img, $img, function (m) {
|
|
192
|
-
return getMediaCb(m, widget, mediaEditor, options);
|
|
193
|
-
});
|
|
169
|
+
const {
|
|
170
|
+
img,
|
|
171
|
+
$img
|
|
172
|
+
} = getImage(widget);
|
|
173
|
+
getMedia(img, $img, m => getMediaCb(m, widget, mediaEditor, options));
|
|
194
174
|
}
|
|
195
175
|
|
|
196
|
-
/*
|
|
197
|
-
* This program is free software; you can redistribute it and/or
|
|
198
|
-
* modify it under the terms of the GNU General Public License
|
|
199
|
-
* as published by the Free Software Foundation; under version 2
|
|
200
|
-
* of the License (non-upgradable).
|
|
201
|
-
*
|
|
202
|
-
* This program is distributed in the hope that it will be useful,
|
|
203
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
204
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
205
|
-
* GNU General Public License for more details.
|
|
206
|
-
*
|
|
207
|
-
* You should have received a copy of the GNU General Public License
|
|
208
|
-
* along with this program; if not, write to the Free Software
|
|
209
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
210
|
-
*
|
|
211
|
-
* Copyright (c) 2021 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
176
|
+
/*
|
|
177
|
+
* This program is free software; you can redistribute it and/or
|
|
178
|
+
* modify it under the terms of the GNU General Public License
|
|
179
|
+
* as published by the Free Software Foundation; under version 2
|
|
180
|
+
* of the License (non-upgradable).
|
|
181
|
+
*
|
|
182
|
+
* This program is distributed in the hope that it will be useful,
|
|
183
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
184
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
185
|
+
* GNU General Public License for more details.
|
|
186
|
+
*
|
|
187
|
+
* You should have received a copy of the GNU General Public License
|
|
188
|
+
* along with this program; if not, write to the Free Software
|
|
189
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
190
|
+
*
|
|
191
|
+
* Copyright (c) 2021 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
212
192
|
*/
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
*
|
|
216
|
-
* @
|
|
217
|
-
* @returns {String} a label
|
|
193
|
+
/**
|
|
194
|
+
* Extract a default label from a file/path name
|
|
195
|
+
* @param {String} fileName - the file/path
|
|
196
|
+
* @returns {String} a label
|
|
218
197
|
*/
|
|
219
198
|
function extractLabel(fileName) {
|
|
220
199
|
return fileName.replace(/\.[^.]+$/, '').replace(/^(.*)\//, '').replace(/\W/, ' ').substr(0, 255);
|
|
221
200
|
}
|
|
222
201
|
|
|
223
|
-
/*
|
|
224
|
-
* This program is free software; you can redistribute it and/or
|
|
225
|
-
* modify it under the terms of the GNU General Public License
|
|
226
|
-
* as published by the Free Software Foundation; under version 2
|
|
227
|
-
* of the License (non-upgradable).
|
|
228
|
-
*
|
|
229
|
-
* This program is distributed in the hope that it will be useful,
|
|
230
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
231
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
232
|
-
* GNU General Public License for more details.
|
|
233
|
-
*
|
|
234
|
-
* You should have received a copy of the GNU General Public License
|
|
235
|
-
* along with this program; if not, write to the Free Software
|
|
236
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
237
|
-
*
|
|
238
|
-
* Copyright (c) 2021 (original work) Open Assessment Technologies SA ;
|
|
239
|
-
*
|
|
202
|
+
/*
|
|
203
|
+
* This program is free software; you can redistribute it and/or
|
|
204
|
+
* modify it under the terms of the GNU General Public License
|
|
205
|
+
* as published by the Free Software Foundation; under version 2
|
|
206
|
+
* of the License (non-upgradable).
|
|
207
|
+
*
|
|
208
|
+
* This program is distributed in the hope that it will be useful,
|
|
209
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
210
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
211
|
+
* GNU General Public License for more details.
|
|
212
|
+
*
|
|
213
|
+
* You should have received a copy of the GNU General Public License
|
|
214
|
+
* along with this program; if not, write to the Free Software
|
|
215
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
216
|
+
*
|
|
217
|
+
* Copyright (c) 2021 (original work) Open Assessment Technologies SA ;
|
|
218
|
+
*
|
|
240
219
|
*/
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
var src = img ? img.attr('src') : '';
|
|
248
|
-
|
|
220
|
+
const initAdvanced = function (widget) {
|
|
221
|
+
const $form = widget.$form;
|
|
222
|
+
const {
|
|
223
|
+
img
|
|
224
|
+
} = getImage(widget);
|
|
225
|
+
let src = img ? img.attr('src') : '';
|
|
249
226
|
if (src) {
|
|
250
227
|
$form.find('[data-role=advanced]').show();
|
|
251
228
|
} else {
|
|
252
229
|
$form.find('[data-role=advanced]').hide();
|
|
253
230
|
}
|
|
254
231
|
};
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
var _openResourceMgr = function _openResourceMgr() {
|
|
232
|
+
const initUpload = function (widget) {
|
|
233
|
+
const $form = widget.$form;
|
|
234
|
+
const options = widget.options;
|
|
235
|
+
const {
|
|
236
|
+
img
|
|
237
|
+
} = getImage(widget);
|
|
238
|
+
const $uploadTrigger = $form.find('[data-role="upload-trigger"]');
|
|
239
|
+
const $src = $form.find('input[name=src]');
|
|
240
|
+
const $alt = $form.find('input[name=alt]');
|
|
241
|
+
const _openResourceMgr = function () {
|
|
267
242
|
$uploadTrigger.resourcemgr({
|
|
268
243
|
title: __('Please select an image file from the resource manager. You can add files from your computer with the button "Add file(s)".'),
|
|
269
244
|
appendContainer: options.mediaManager.appendContainer,
|
|
@@ -292,27 +267,24 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
292
267
|
pathParam: 'path',
|
|
293
268
|
path: options.mediaManager.path,
|
|
294
269
|
root: options.mediaManager.root,
|
|
295
|
-
select: function
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
270
|
+
select: function (e, files) {
|
|
271
|
+
let file, alt;
|
|
272
|
+
let confirmBox, cancel, save;
|
|
299
273
|
if (files && files.length) {
|
|
300
274
|
file = files[0].file;
|
|
301
275
|
alt = files[0].alt;
|
|
302
276
|
$src.val(file);
|
|
303
|
-
|
|
304
277
|
if ($$1.trim($alt.val()) === '') {
|
|
305
278
|
if (alt === '') {
|
|
306
279
|
alt = extractLabel(file);
|
|
307
280
|
}
|
|
308
|
-
|
|
309
281
|
img.attr('alt', alt);
|
|
310
282
|
$alt.val(alt).trigger('change');
|
|
311
283
|
} else {
|
|
312
284
|
confirmBox = $$1('.change-alt-modal-feedback', $form);
|
|
313
285
|
cancel = confirmBox.find('.cancel');
|
|
314
286
|
save = confirmBox.find('.save');
|
|
315
|
-
$$1('.alt-text', confirmBox).html("
|
|
287
|
+
$$1('.alt-text', confirmBox).html(`"${$alt.val()}"<br>${__('with')}<br>"${alt}" ?`);
|
|
316
288
|
confirmBox.modal({
|
|
317
289
|
width: 500
|
|
318
290
|
});
|
|
@@ -325,28 +297,27 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
325
297
|
confirmBox.modal('close');
|
|
326
298
|
});
|
|
327
299
|
}
|
|
328
|
-
|
|
329
300
|
_.defer(function () {
|
|
330
301
|
img.attr('off-media-editor', 1);
|
|
331
302
|
$src.trigger('change');
|
|
332
303
|
});
|
|
333
304
|
}
|
|
334
305
|
},
|
|
335
|
-
open: function
|
|
306
|
+
open: function () {
|
|
336
307
|
// hide tooltip if displayed
|
|
337
308
|
if ($src.data('$tooltip')) {
|
|
338
309
|
$src.blur().data('$tooltip').hide();
|
|
339
310
|
}
|
|
340
311
|
},
|
|
341
|
-
close: function
|
|
312
|
+
close: function () {
|
|
342
313
|
// triggers validation:
|
|
343
314
|
$src.blur();
|
|
344
315
|
}
|
|
345
316
|
});
|
|
346
317
|
};
|
|
318
|
+
$uploadTrigger.on('click', _openResourceMgr);
|
|
347
319
|
|
|
348
|
-
|
|
349
|
-
|
|
320
|
+
//if empty, open file manager immediately
|
|
350
321
|
if (!$src.val()) {
|
|
351
322
|
_openResourceMgr();
|
|
352
323
|
}
|
|
@@ -357,84 +328,87 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
357
328
|
initUpload(widget);
|
|
358
329
|
}
|
|
359
330
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
331
|
+
/**
|
|
332
|
+
* This program is free software; you can redistribute it and/or
|
|
333
|
+
* modify it under the terms of the GNU General Public License
|
|
334
|
+
* as published by the Free Software Foundation; under version 2
|
|
335
|
+
* of the License (non-upgradable).
|
|
336
|
+
*
|
|
337
|
+
* This program is distributed in the hope that it will be useful,
|
|
338
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
339
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
340
|
+
* GNU General Public License for more details.
|
|
341
|
+
*
|
|
342
|
+
* You should have received a copy of the GNU General Public License
|
|
343
|
+
* along with this program; if not, write to the Free Software
|
|
344
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
345
|
+
*
|
|
346
|
+
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
347
|
+
*
|
|
348
|
+
*
|
|
349
|
+
*/
|
|
370
350
|
function Helpers0 (hb) {
|
|
371
351
|
//register a i18n helper
|
|
372
352
|
hb.registerHelper('__', function (key) {
|
|
373
353
|
return __(key);
|
|
374
354
|
});
|
|
375
|
-
/**
|
|
376
|
-
* Register dompurify helper
|
|
377
|
-
*
|
|
378
|
-
* https://github.com/cure53/DOMPurify
|
|
379
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
380
|
-
* to make output safe for template systems
|
|
381
|
-
*/
|
|
382
355
|
|
|
356
|
+
/**
|
|
357
|
+
* Register dompurify helper
|
|
358
|
+
*
|
|
359
|
+
* https://github.com/cure53/DOMPurify
|
|
360
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
361
|
+
* to make output safe for template systems
|
|
362
|
+
*/
|
|
383
363
|
hb.registerHelper('dompurify', function (context) {
|
|
384
364
|
return DOMPurify.sanitize(context);
|
|
385
365
|
});
|
|
386
|
-
/**
|
|
387
|
-
* Register join helper
|
|
388
|
-
*
|
|
389
|
-
* Example :
|
|
390
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
391
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
392
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
393
|
-
*/
|
|
394
366
|
|
|
367
|
+
/**
|
|
368
|
+
* Register join helper
|
|
369
|
+
*
|
|
370
|
+
* Example :
|
|
371
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
372
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
373
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
374
|
+
*/
|
|
395
375
|
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
396
376
|
var fragments = [];
|
|
397
377
|
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
398
378
|
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
399
379
|
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
400
|
-
|
|
401
380
|
_.forIn(arr, function (value, key) {
|
|
402
381
|
var fragment = '';
|
|
403
|
-
|
|
404
382
|
if (value !== null || value !== undefined) {
|
|
405
383
|
if (typeof value === 'boolean') {
|
|
406
384
|
value = value ? 'true' : 'false';
|
|
407
|
-
} else if (
|
|
385
|
+
} else if (typeof value === 'object') {
|
|
408
386
|
value = _.values(value).join(' ');
|
|
409
387
|
}
|
|
410
388
|
} else {
|
|
411
389
|
value = '';
|
|
412
390
|
}
|
|
413
|
-
|
|
414
391
|
if (keyValueGlue !== undefined) {
|
|
415
392
|
fragment += key + keyValueGlue;
|
|
416
393
|
}
|
|
417
|
-
|
|
418
394
|
fragment += wrapper + value + wrapper;
|
|
419
395
|
fragments.push(fragment);
|
|
420
396
|
});
|
|
421
|
-
|
|
422
397
|
return fragments.join(fragmentGlue);
|
|
423
|
-
});
|
|
424
|
-
//it also adds a local variable "i" as the index in each iteration loop
|
|
398
|
+
});
|
|
425
399
|
|
|
400
|
+
//register a classic "for loop" helper
|
|
401
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
426
402
|
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
427
403
|
var ret = '';
|
|
428
404
|
startIndex = parseInt(startIndex);
|
|
429
405
|
stopIndex = parseInt(stopIndex);
|
|
430
406
|
increment = parseInt(increment);
|
|
431
|
-
|
|
432
407
|
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
433
408
|
ret += options.fn(_.extend({}, this, {
|
|
434
409
|
i: i
|
|
435
410
|
}));
|
|
436
411
|
}
|
|
437
|
-
|
|
438
412
|
return ret;
|
|
439
413
|
});
|
|
440
414
|
hb.registerHelper('equal', function (var1, var2, options) {
|
|
@@ -443,14 +417,16 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
443
417
|
} else {
|
|
444
418
|
return options.inverse(this);
|
|
445
419
|
}
|
|
446
|
-
});
|
|
447
|
-
// it gets the named property from the provided context
|
|
420
|
+
});
|
|
448
421
|
|
|
422
|
+
// register a "get property" helper
|
|
423
|
+
// it gets the named property from the provided context
|
|
449
424
|
hb.registerHelper('property', function (name, context) {
|
|
450
425
|
return context[name] || '';
|
|
451
|
-
});
|
|
452
|
-
// it checks if value is in array
|
|
426
|
+
});
|
|
453
427
|
|
|
428
|
+
// register an 'includes' helper
|
|
429
|
+
// it checks if value is in array
|
|
454
430
|
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
455
431
|
if (_.contains(haystack, needle)) {
|
|
456
432
|
return options.fn(this);
|
|
@@ -477,24 +453,24 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
477
453
|
return (asString || true) ? html : $(html);
|
|
478
454
|
}
|
|
479
455
|
|
|
480
|
-
/*
|
|
481
|
-
* This program is free software; you can redistribute it and/or
|
|
482
|
-
* modify it under the terms of the GNU General Public License
|
|
483
|
-
* as published by the Free Software Foundation; under version 2
|
|
484
|
-
* of the License (non-upgradable).
|
|
485
|
-
*
|
|
486
|
-
* This program is distributed in the hope that it will be useful,
|
|
487
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
488
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
489
|
-
* GNU General Public License for more details.
|
|
490
|
-
*
|
|
491
|
-
* You should have received a copy of the GNU General Public License
|
|
492
|
-
* along with this program; if not, write to the Free Software
|
|
493
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
494
|
-
*
|
|
495
|
-
* Copyright (c) 2022 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
456
|
+
/*
|
|
457
|
+
* This program is free software; you can redistribute it and/or
|
|
458
|
+
* modify it under the terms of the GNU General Public License
|
|
459
|
+
* as published by the Free Software Foundation; under version 2
|
|
460
|
+
* of the License (non-upgradable).
|
|
461
|
+
*
|
|
462
|
+
* This program is distributed in the hope that it will be useful,
|
|
463
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
464
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
465
|
+
* GNU General Public License for more details.
|
|
466
|
+
*
|
|
467
|
+
* You should have received a copy of the GNU General Public License
|
|
468
|
+
* along with this program; if not, write to the Free Software
|
|
469
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
470
|
+
*
|
|
471
|
+
* Copyright (c) 2022 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
496
472
|
*/
|
|
497
|
-
|
|
473
|
+
const options = {
|
|
498
474
|
mediaDimension: {
|
|
499
475
|
active: true
|
|
500
476
|
},
|
|
@@ -502,36 +478,21 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
502
478
|
active: true
|
|
503
479
|
}
|
|
504
480
|
};
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
var getCaptionElement = function getCaptionElement(widget) {
|
|
521
|
-
return _.find(widget.element.getBody().elements, function (elem) {
|
|
522
|
-
return elem.is('figcaption');
|
|
523
|
-
});
|
|
524
|
-
};
|
|
525
|
-
|
|
526
|
-
var formCallbacks = function formCallbacks(_ref) {
|
|
527
|
-
var widget = _ref.widget,
|
|
528
|
-
formElement = _ref.formElement,
|
|
529
|
-
mediaEditor = _ref.mediaEditor,
|
|
530
|
-
togglePlaceholder = _ref.togglePlaceholder;
|
|
531
|
-
var $img = getImage$1(widget);
|
|
532
|
-
var $figcaption = getCaption(widget);
|
|
533
|
-
var imageElem = getImageElement(widget);
|
|
534
|
-
var figcaptionElem = getCaptionElement(widget);
|
|
481
|
+
const getImage$1 = widget => widget.$original.find('img');
|
|
482
|
+
const getCaption = widget => widget.$original.find('figcaption');
|
|
483
|
+
const getImageElement = widget => _.find(widget.element.getBody().elements, elem => elem.is('img'));
|
|
484
|
+
const getCaptionElement = widget => _.find(widget.element.getBody().elements, elem => elem.is('figcaption'));
|
|
485
|
+
const formCallbacks = _ref => {
|
|
486
|
+
let {
|
|
487
|
+
widget,
|
|
488
|
+
formElement,
|
|
489
|
+
mediaEditor,
|
|
490
|
+
togglePlaceholder
|
|
491
|
+
} = _ref;
|
|
492
|
+
const $img = getImage$1(widget);
|
|
493
|
+
let $figcaption = getCaption(widget);
|
|
494
|
+
const imageElem = getImageElement(widget);
|
|
495
|
+
let figcaptionElem = getCaptionElement(widget);
|
|
535
496
|
return {
|
|
536
497
|
src: _.throttle(function (elem, value) {
|
|
537
498
|
imageElem.attr('src', value);
|
|
@@ -539,13 +500,11 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
539
500
|
$img.trigger('contentChange.qti-widget').change();
|
|
540
501
|
togglePlaceholder(widget);
|
|
541
502
|
imageElem.removeAttr('off-media-editor');
|
|
542
|
-
|
|
543
503
|
if (widget.$form.find('[data-role=advanced]').is(':hidden')) {
|
|
544
|
-
|
|
504
|
+
const initPanel = () => {
|
|
545
505
|
initAdvanced(widget);
|
|
546
506
|
initMediaEditor(widget, mediaEditor, options);
|
|
547
507
|
};
|
|
548
|
-
|
|
549
508
|
if ($img[0].complete) {
|
|
550
509
|
initPanel();
|
|
551
510
|
} else {
|
|
@@ -556,15 +515,14 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
556
515
|
}
|
|
557
516
|
}
|
|
558
517
|
}, 1000),
|
|
559
|
-
alt: function
|
|
518
|
+
alt: function (elem, value) {
|
|
560
519
|
imageElem.attr('alt', value);
|
|
561
520
|
},
|
|
562
|
-
figcaption: function
|
|
521
|
+
figcaption: function (elem, value) {
|
|
563
522
|
// using dompurify to clean <script> tags
|
|
564
|
-
|
|
523
|
+
const text = tplCaptionText({
|
|
565
524
|
text: value
|
|
566
525
|
});
|
|
567
|
-
|
|
568
526
|
if (figcaptionElem && value) {
|
|
569
527
|
// update existing capture
|
|
570
528
|
$figcaption.html(text);
|
|
@@ -572,7 +530,7 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
572
530
|
} else if (!figcaptionElem && value) {
|
|
573
531
|
// add capture
|
|
574
532
|
figcaptionElem = widget.element.addCaption(text);
|
|
575
|
-
$figcaption = $$1(
|
|
533
|
+
$figcaption = $$1(`<figcaption>${text}</figcaption>`);
|
|
576
534
|
widget.$original.append($figcaption);
|
|
577
535
|
} else if (figcaptionElem && !value) {
|
|
578
536
|
widget.element.removeCaption();
|
|
@@ -584,84 +542,76 @@ define(['jquery', 'nouislider', 'ui/resourcemgr', 'ui/tooltip', 'lodash', 'i18n'
|
|
|
584
542
|
longdesc: formElement.getAttributeChangeCallback()
|
|
585
543
|
};
|
|
586
544
|
};
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
545
|
+
const initForm = _ref2 => {
|
|
546
|
+
let {
|
|
547
|
+
widget,
|
|
548
|
+
formElement,
|
|
549
|
+
formTpl,
|
|
550
|
+
mediaEditor,
|
|
551
|
+
togglePlaceholder
|
|
552
|
+
} = _ref2;
|
|
553
|
+
const imageElem = getImageElement(widget);
|
|
554
|
+
const figcaptionElem = getCaptionElement(widget);
|
|
596
555
|
widget.$form.html(formTpl({
|
|
597
556
|
baseUrl: widget.options.baseUrl || '',
|
|
598
557
|
src: imageElem.attr('src'),
|
|
599
558
|
alt: imageElem.attr('alt'),
|
|
600
559
|
figcaption: figcaptionElem ? figcaptionElem.body() : ''
|
|
601
560
|
}));
|
|
602
|
-
widget.$form.find('textarea#figcaption').on('focus.qti-widget',
|
|
603
|
-
return widget.$container.addClass('edit-figcaption');
|
|
604
|
-
}).on('blur.qti-widget', function () {
|
|
605
|
-
return widget.$container.removeClass('edit-figcaption');
|
|
606
|
-
}); // init upload, advanced and media editor
|
|
561
|
+
widget.$form.find('textarea#figcaption').on('focus.qti-widget', () => widget.$container.addClass('edit-figcaption')).on('blur.qti-widget', () => widget.$container.removeClass('edit-figcaption'));
|
|
607
562
|
|
|
608
|
-
|
|
563
|
+
// init upload, advanced and media editor
|
|
564
|
+
initAll(widget, mediaEditor, options);
|
|
609
565
|
|
|
610
|
-
|
|
566
|
+
// init standard ui widget
|
|
567
|
+
formElement.initWidget(widget.$form);
|
|
611
568
|
|
|
569
|
+
// init data change callbacks
|
|
612
570
|
formElement.setChangeCallbacks(widget.$form, widget.element, formCallbacks({
|
|
613
|
-
widget
|
|
614
|
-
formElement
|
|
615
|
-
mediaEditor
|
|
616
|
-
togglePlaceholder
|
|
571
|
+
widget,
|
|
572
|
+
formElement,
|
|
573
|
+
mediaEditor,
|
|
574
|
+
togglePlaceholder
|
|
617
575
|
}));
|
|
618
576
|
};
|
|
619
|
-
|
|
620
577
|
function FigureStateActive (stateFactory, ActiveState, formTpl, formElement, inlineHelper) {
|
|
621
|
-
/**
|
|
622
|
-
* media Editor instance if has been initialized
|
|
623
|
-
* @type {null}
|
|
578
|
+
/**
|
|
579
|
+
* media Editor instance if has been initialized
|
|
580
|
+
* @type {null}
|
|
624
581
|
*/
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
582
|
+
let mediaEditor = null;
|
|
583
|
+
let textareaObserver = null;
|
|
584
|
+
let texareaHTMLElem = null;
|
|
585
|
+
const ImgStateActive = stateFactory.extend(ActiveState, function () {
|
|
629
586
|
this.initForm();
|
|
630
587
|
}, function () {
|
|
631
588
|
this.widget.$form.find('textarea#figcaption').off('.qti-widget');
|
|
632
|
-
|
|
633
589
|
if (textareaObserver) {
|
|
634
590
|
textareaObserver.unobserve(texareaHTMLElem);
|
|
635
591
|
}
|
|
636
|
-
|
|
637
592
|
this.widget.$form.empty();
|
|
638
593
|
});
|
|
639
|
-
|
|
640
594
|
ImgStateActive.prototype.initForm = function () {
|
|
641
595
|
initForm({
|
|
642
596
|
widget: this.widget,
|
|
643
|
-
formElement
|
|
644
|
-
formTpl
|
|
645
|
-
mediaEditor
|
|
597
|
+
formElement,
|
|
598
|
+
formTpl,
|
|
599
|
+
mediaEditor,
|
|
646
600
|
togglePlaceholder: inlineHelper.togglePlaceholder
|
|
647
601
|
});
|
|
648
|
-
|
|
649
|
-
|
|
602
|
+
const figurelem = this.widget.element;
|
|
603
|
+
const $texarea = this.widget.$form.find('textarea#figcaption');
|
|
650
604
|
texareaHTMLElem = $texarea[0];
|
|
651
|
-
|
|
652
605
|
function outputsize() {
|
|
653
606
|
figurelem.data('heigthCaptionInput', $texarea.height());
|
|
654
607
|
}
|
|
655
|
-
|
|
656
608
|
if (typeof ResizeObserver !== 'undefined') {
|
|
657
609
|
textareaObserver = new ResizeObserver(outputsize).observe(texareaHTMLElem);
|
|
658
|
-
|
|
659
610
|
if (figurelem.data('heigthCaptionInput')) {
|
|
660
611
|
$texarea.height(figurelem.data('heigthCaptionInput'));
|
|
661
612
|
}
|
|
662
613
|
}
|
|
663
614
|
};
|
|
664
|
-
|
|
665
615
|
return ImgStateActive;
|
|
666
616
|
}
|
|
667
617
|
|