@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/login/login.js
CHANGED
|
@@ -1,528 +1,513 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'i18n', 'ui/component', 'ui/feedback', 'util/url', 'handlebars', 'lib/dompurify/purify'], function ($$1, _, __, component, feedback, urlUtil, Handlebars, DOMPurify) { '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
|
|
33
|
-
*/
|
|
34
|
-
|
|
35
|
-
hb.registerHelper('dompurify', function (context) {
|
|
36
|
-
return DOMPurify.sanitize(context);
|
|
37
|
-
});
|
|
38
|
-
/**
|
|
39
|
-
* Register join helper
|
|
40
|
-
*
|
|
41
|
-
* Example :
|
|
42
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
43
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
44
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
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
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
7
|
+
feedback = feedback && Object.prototype.hasOwnProperty.call(feedback, 'default') ? feedback['default'] : feedback;
|
|
8
|
+
urlUtil = urlUtil && Object.prototype.hasOwnProperty.call(urlUtil, 'default') ? urlUtil['default'] : urlUtil;
|
|
9
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
10
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
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
|
+
*
|
|
45
30
|
*/
|
|
31
|
+
function Helpers0 (hb) {
|
|
32
|
+
//register a i18n helper
|
|
33
|
+
hb.registerHelper('__', function (key) {
|
|
34
|
+
return __(key);
|
|
35
|
+
});
|
|
46
36
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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, options, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
|
|
126
|
+
|
|
127
|
+
function program1(depth0,data) {
|
|
128
|
+
|
|
129
|
+
var buffer = "", stack1;
|
|
130
|
+
buffer += "\n <div class=\"xhtml_form_error\">"
|
|
131
|
+
+ escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.message)),stack1 == null || stack1 === false ? stack1 : stack1.error)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
132
|
+
+ "</div>\n ";
|
|
133
|
+
return buffer;
|
|
88
134
|
}
|
|
89
135
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
return options.fn(this);
|
|
95
|
-
} else {
|
|
96
|
-
return options.inverse(this);
|
|
136
|
+
function program3(depth0,data) {
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
return "autofocus=\"autofocus\"";
|
|
97
140
|
}
|
|
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
141
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
142
|
+
function program5(depth0,data) {
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
return " autocomplete=\"off\"";
|
|
109
146
|
}
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
147
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
148
|
+
function program7(depth0,data) {
|
|
149
|
+
|
|
150
|
+
var buffer = "", stack1;
|
|
151
|
+
buffer += "\n <div class=\"form-error\">\n "
|
|
152
|
+
+ escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.fieldMessages)),stack1 == null || stack1 === false ? stack1 : stack1.login)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
153
|
+
+ "\n </div>\n ";
|
|
154
|
+
return buffer;
|
|
155
|
+
}
|
|
121
156
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
157
|
+
buffer += "<div class=\"xhtml_form login-component\">\n <form action=\"";
|
|
158
|
+
if (helper = helpers.url) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
159
|
+
else { helper = (depth0 && depth0.url); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
160
|
+
buffer += escapeExpression(stack1)
|
|
161
|
+
+ "\" method=\"post\" id=\"";
|
|
162
|
+
if (helper = helpers.name) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
163
|
+
else { helper = (depth0 && depth0.name); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
164
|
+
buffer += escapeExpression(stack1)
|
|
165
|
+
+ "\" name=\"";
|
|
166
|
+
if (helper = helpers.name) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
167
|
+
else { helper = (depth0 && depth0.name); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
168
|
+
buffer += escapeExpression(stack1)
|
|
169
|
+
+ "\">\n <input type=\"hidden\" class=\"global\" name=\"";
|
|
170
|
+
if (helper = helpers.name) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
171
|
+
else { helper = (depth0 && depth0.name); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
172
|
+
buffer += escapeExpression(stack1)
|
|
173
|
+
+ "_sent\" value=\"1\">\n ";
|
|
174
|
+
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.message)),stack1 == null || stack1 === false ? stack1 : stack1.error), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
175
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
176
|
+
buffer += "\n <div>\n <label class=\"form_desc\" for=\"login\">\n "
|
|
177
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Login", options) : helperMissing.call(depth0, "__", "Login", options)))
|
|
178
|
+
+ "\n </label><input type=\"text\" name=\"login\" id=\"login\" ";
|
|
179
|
+
stack1 = helpers.unless.call(depth0, (depth0 && depth0.disableAutofocus), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
180
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
181
|
+
buffer += " ";
|
|
182
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.disableAutocomplete), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
183
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
184
|
+
buffer += " aria-required=\"true\">\n ";
|
|
185
|
+
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.fieldMessages)),stack1 == null || stack1 === false ? stack1 : stack1.login), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
186
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
187
|
+
buffer += "\n </div>\n <div>\n <label class=\"form_desc\" for=\"password\">\n "
|
|
188
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Password", options) : helperMissing.call(depth0, "__", "Password", options)))
|
|
189
|
+
+ "\n </label><input type=\"password\" name=\"password\" id=\"password\"";
|
|
190
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.disableAutocomplete), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
191
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
192
|
+
buffer += " aria-required=\"true\">\n ";
|
|
193
|
+
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.fieldMessages)),stack1 == null || stack1 === false ? stack1 : stack1.password), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
194
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
195
|
+
buffer += "\n </div>\n <div class=\"form-toolbar\"><input type=\"submit\" id=\"connect\" name=\"connect\" disabled=\"disabled\" class=\"disabled\" value=\""
|
|
196
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Log in", options) : helperMissing.call(depth0, "__", "Log in", options)))
|
|
197
|
+
+ "\"></div>\n </form>\n</div>\n";
|
|
198
|
+
return buffer;
|
|
199
|
+
});
|
|
200
|
+
function loginTpl(data, options, asString) {
|
|
201
|
+
var html = Template(data, options);
|
|
202
|
+
return (asString || true) ? html : $(html);
|
|
129
203
|
}
|
|
130
204
|
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return "autofocus=\"autofocus\"";
|
|
205
|
+
if (!Helpers0.__initialized) {
|
|
206
|
+
Helpers0(Handlebars);
|
|
207
|
+
Helpers0.__initialized = true;
|
|
135
208
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
209
|
+
var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
210
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
211
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
212
|
+
var buffer = "", stack1, helper, functionType="function";
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
buffer += "<div class=\"form loginForm fakeForm\">";
|
|
216
|
+
if (helper = helpers.form) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
217
|
+
else { helper = (depth0 && depth0.form); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
218
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
219
|
+
buffer += "</div>";
|
|
220
|
+
return buffer;
|
|
221
|
+
});
|
|
222
|
+
function fakeFormTpl(data, options, asString) {
|
|
223
|
+
var html = Template$1(data, options);
|
|
224
|
+
return (asString || true) ? html : $(html);
|
|
141
225
|
}
|
|
142
226
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
227
|
+
if (!Helpers0.__initialized) {
|
|
228
|
+
Helpers0(Handlebars);
|
|
229
|
+
Helpers0.__initialized = true;
|
|
230
|
+
}
|
|
231
|
+
var Template$2 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
232
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
233
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
234
|
+
var buffer = "", stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
235
|
+
|
|
236
|
+
|
|
237
|
+
buffer += "<span class=\"viewable-hiddenbox\">\n ";
|
|
238
|
+
if (helper = helpers.elements) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
239
|
+
else { helper = (depth0 && depth0.elements); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
240
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
241
|
+
buffer += "\n <span class=\"viewable-hiddenbox-toggle\">\n <span aria-label=\""
|
|
242
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Show password", options) : helperMissing.call(depth0, "__", "Show password", options)))
|
|
243
|
+
+ "\" class=\"icon-preview\" role=\"button\" tabindex=\"0\"></span>\n <span aria-label=\""
|
|
244
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Hide password", options) : helperMissing.call(depth0, "__", "Hide password", options)))
|
|
245
|
+
+ "\" class=\"icon-eye-slash\" style=\"display: none;\" role=\"button\" tabindex=\"0\"></span>\n </span>\n</span>\n";
|
|
246
|
+
return buffer;
|
|
247
|
+
});
|
|
248
|
+
function pwdRevealTpl(data, options, asString) {
|
|
249
|
+
var html = Template$2(data, options);
|
|
250
|
+
return (asString || true) ? html : $(html);
|
|
150
251
|
}
|
|
151
252
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
+ "_sent\" value=\"1\">\r\n ";
|
|
169
|
-
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.message)),stack1 == null || stack1 === false ? stack1 : stack1.error), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
170
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
171
|
-
buffer += "\r\n <div>\r\n <label class=\"form_desc\" for=\"login\">\r\n "
|
|
172
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Login", options) : helperMissing.call(depth0, "__", "Login", options)))
|
|
173
|
-
+ "\r\n </label><input type=\"text\" name=\"login\" id=\"login\" ";
|
|
174
|
-
stack1 = helpers.unless.call(depth0, (depth0 && depth0.disableAutofocus), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
175
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
176
|
-
buffer += " ";
|
|
177
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.disableAutocomplete), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
178
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
179
|
-
buffer += " aria-required=\"true\">\r\n ";
|
|
180
|
-
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.fieldMessages)),stack1 == null || stack1 === false ? stack1 : stack1.login), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
181
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
182
|
-
buffer += "\r\n </div>\r\n <div>\r\n <label class=\"form_desc\" for=\"password\">\r\n "
|
|
183
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Password", options) : helperMissing.call(depth0, "__", "Password", options)))
|
|
184
|
-
+ "\r\n </label><input type=\"password\" name=\"password\" id=\"password\"";
|
|
185
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.disableAutocomplete), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
186
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
187
|
-
buffer += " aria-required=\"true\">\r\n ";
|
|
188
|
-
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.fieldMessages)),stack1 == null || stack1 === false ? stack1 : stack1.password), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
189
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
190
|
-
buffer += "\r\n </div>\r\n <div class=\"form-toolbar\"><input type=\"submit\" id=\"connect\" name=\"connect\" disabled=\"disabled\" class=\"disabled\" value=\""
|
|
191
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Log in", options) : helperMissing.call(depth0, "__", "Log in", options)))
|
|
192
|
-
+ "\"></div>\r\n </form>\r\n</div>\r\n";
|
|
193
|
-
return buffer;
|
|
194
|
-
});
|
|
195
|
-
function loginTpl(data, options, asString) {
|
|
196
|
-
var html = Template(data, options);
|
|
197
|
-
return (asString || true) ? html : $(html);
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
if (!Helpers0.__initialized) {
|
|
201
|
-
Helpers0(Handlebars);
|
|
202
|
-
Helpers0.__initialized = true;
|
|
203
|
-
}
|
|
204
|
-
var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
205
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
206
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
207
|
-
var buffer = "", stack1, helper, functionType="function";
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
buffer += "<div class=\"form loginForm fakeForm\">";
|
|
211
|
-
if (helper = helpers.form) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
212
|
-
else { helper = (depth0 && depth0.form); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
213
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
214
|
-
buffer += "</div>";
|
|
215
|
-
return buffer;
|
|
216
|
-
});
|
|
217
|
-
function fakeFormTpl(data, options, asString) {
|
|
218
|
-
var html = Template$1(data, options);
|
|
219
|
-
return (asString || true) ? html : $(html);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
if (!Helpers0.__initialized) {
|
|
223
|
-
Helpers0(Handlebars);
|
|
224
|
-
Helpers0.__initialized = true;
|
|
225
|
-
}
|
|
226
|
-
var Template$2 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
227
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
228
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
229
|
-
var buffer = "", stack1, helper, options, functionType="function", helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
buffer += "<span class=\"viewable-hiddenbox\">\r\n ";
|
|
233
|
-
if (helper = helpers.elements) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
234
|
-
else { helper = (depth0 && depth0.elements); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
235
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
236
|
-
buffer += "\r\n <span class=\"viewable-hiddenbox-toggle\">\r\n <span aria-label=\""
|
|
237
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Show password", options) : helperMissing.call(depth0, "__", "Show password", options)))
|
|
238
|
-
+ "\" class=\"icon-preview\" role=\"button\" tabindex=\"0\"></span>\r\n <span aria-label=\""
|
|
239
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Hide password", options) : helperMissing.call(depth0, "__", "Hide password", options)))
|
|
240
|
-
+ "\" class=\"icon-eye-slash\" style=\"display: none;\" role=\"button\" tabindex=\"0\"></span>\r\n </span>\r\n</span>\r\n";
|
|
241
|
-
return buffer;
|
|
242
|
-
});
|
|
243
|
-
function pwdRevealTpl(data, options, asString) {
|
|
244
|
-
var html = Template$2(data, options);
|
|
245
|
-
return (asString || true) ? html : $(html);
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
/*
|
|
249
|
-
* This program is free software; you can redistribute it and/or
|
|
250
|
-
* modify it under the terms of the GNU General Public License
|
|
251
|
-
* as published by the Free Software Foundation; under version 2
|
|
252
|
-
* of the License (non-upgradable).
|
|
253
|
-
*
|
|
254
|
-
* This program is distributed in the hope that it will be useful,
|
|
255
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
256
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
257
|
-
* GNU General Public License for more details.
|
|
258
|
-
*
|
|
259
|
-
* You should have received a copy of the GNU General Public License
|
|
260
|
-
* along with this program; if not, write to the Free Software
|
|
261
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
262
|
-
*
|
|
263
|
-
* Copyright (c) 2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
264
|
-
*/
|
|
265
|
-
var _defaultConfig = {
|
|
266
|
-
disableAutocomplete: false,
|
|
267
|
-
enablePasswordReveal: false,
|
|
268
|
-
disableAutofocus: false,
|
|
269
|
-
message: {
|
|
270
|
-
error: '',
|
|
271
|
-
info: null
|
|
272
|
-
},
|
|
273
|
-
fieldMessages: {},
|
|
274
|
-
name: 'loginForm',
|
|
275
|
-
url: urlUtil.route('login', 'Main', 'tao')
|
|
276
|
-
};
|
|
277
|
-
/**
|
|
278
|
-
* The factory that creates a login component
|
|
279
|
-
*
|
|
280
|
-
* @param {jQueryElement} $container - where to append the component
|
|
281
|
-
* @param {Object} config - the component config
|
|
282
|
-
* @param {Object} [config.disableAutocomplete] - depending on this setting autocomplete would be disabled or enabled (and fakeForm rendered)
|
|
283
|
-
* @param {Object} [config.enablePasswordReveal] - depending on this setting password reveal would be disabled or enabled for the password field
|
|
284
|
-
* @param {Object} [config.disableAutofocus] - depending on this setting autofocus attribute will be added to login filed
|
|
285
|
-
* @param {Object} [config.fieldMessages] - field validation messages
|
|
286
|
-
* @param {String} [config.name] - the component name (used by the element)
|
|
287
|
-
* @param {String} [config.url] - the url to send login form to.
|
|
288
|
-
* @param {String} [config.message] - the form wide error|info messages
|
|
289
|
-
* @returns {loginComponent} the component
|
|
290
|
-
*/
|
|
291
|
-
|
|
292
|
-
function loginFactory($container, config) {
|
|
293
|
-
/**
|
|
294
|
-
* The component API
|
|
253
|
+
/*
|
|
254
|
+
* This program is free software; you can redistribute it and/or
|
|
255
|
+
* modify it under the terms of the GNU General Public License
|
|
256
|
+
* as published by the Free Software Foundation; under version 2
|
|
257
|
+
* of the License (non-upgradable).
|
|
258
|
+
*
|
|
259
|
+
* This program is distributed in the hope that it will be useful,
|
|
260
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
261
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
262
|
+
* GNU General Public License for more details.
|
|
263
|
+
*
|
|
264
|
+
* You should have received a copy of the GNU General Public License
|
|
265
|
+
* along with this program; if not, write to the Free Software
|
|
266
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
267
|
+
*
|
|
268
|
+
* Copyright (c) 2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
295
269
|
*/
|
|
296
|
-
var
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
},
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Returns whether password reveal is enabled or not
|
|
307
|
-
* @returns {boolean}
|
|
308
|
-
*/
|
|
309
|
-
isPasswordRevealEnabled: function isPasswordRevealEnabled() {
|
|
310
|
-
return this.config.enablePasswordReveal;
|
|
311
|
-
},
|
|
312
|
-
|
|
313
|
-
/**
|
|
314
|
-
* Get messages from config
|
|
315
|
-
* @returns {Object} Object containing passed messages
|
|
316
|
-
*/
|
|
317
|
-
getMessages: function getMessages() {
|
|
318
|
-
return this.config.message;
|
|
319
|
-
},
|
|
320
|
-
|
|
321
|
-
/**
|
|
322
|
-
* Returns form fields validation messages, if any
|
|
323
|
-
* @returns {Object} fieldMessages
|
|
324
|
-
*/
|
|
325
|
-
getFieldMessages: function getFieldMessages() {
|
|
326
|
-
return this.config.fieldMessages;
|
|
327
|
-
},
|
|
328
|
-
|
|
329
|
-
/**
|
|
330
|
-
* Creates fakeForm from the real form
|
|
331
|
-
* @returns {jQuery} jQuery element
|
|
332
|
-
*/
|
|
333
|
-
createFakeForm: function createFakeForm() {
|
|
334
|
-
var $element = this.getElement();
|
|
335
|
-
var $fakeFormDom = $element.clone();
|
|
336
|
-
$element.find('label').remove();
|
|
337
|
-
return $fakeFormDom.html(fakeFormTpl({
|
|
338
|
-
form: $fakeFormDom.find('form').html()
|
|
339
|
-
}));
|
|
340
|
-
},
|
|
341
|
-
|
|
342
|
-
/**
|
|
343
|
-
* Gets real form jQuery element
|
|
344
|
-
* @returns {jQuery} jQuery element
|
|
345
|
-
*/
|
|
346
|
-
getRealForm: function getRealForm() {
|
|
347
|
-
return this.getElement().find('form');
|
|
348
|
-
},
|
|
349
|
-
|
|
350
|
-
/**
|
|
351
|
-
* Gets fake form jQuery element
|
|
352
|
-
* @returns {jQuery} jQuery element
|
|
353
|
-
*/
|
|
354
|
-
getFakeForm: function getFakeForm() {
|
|
355
|
-
return this.getContainer().find('div.fakeForm');
|
|
356
|
-
},
|
|
357
|
-
|
|
358
|
-
/**
|
|
359
|
-
* Gets real or fake form jQuery element, depending on the disableAutocomplete setting
|
|
360
|
-
* @returns {jQuery} jQuery element
|
|
361
|
-
*/
|
|
362
|
-
getForm: function getForm() {
|
|
363
|
-
return this.isAutocompleteDisabled() ? this.getFakeForm() : this.getRealForm();
|
|
364
|
-
},
|
|
365
|
-
|
|
366
|
-
/**
|
|
367
|
-
* Manipulates form dom (adds password reveal elements)
|
|
368
|
-
*/
|
|
369
|
-
manipulateFormDom: function manipulateFormDom() {
|
|
370
|
-
var $form, $pwdInput, $pwdLabel;
|
|
371
|
-
$form = this.getForm();
|
|
372
|
-
$pwdInput = $form.find('input[type=password]');
|
|
373
|
-
$pwdLabel = $form.find('label[for=' + $pwdInput.attr('name') + ']');
|
|
374
|
-
$pwdInput.replaceWith(pwdRevealTpl({
|
|
375
|
-
elements: $pwdLabel[0].outerHTML + $pwdInput[0].outerHTML
|
|
376
|
-
}));
|
|
377
|
-
$pwdLabel.remove();
|
|
270
|
+
var _defaultConfig = {
|
|
271
|
+
disableAutocomplete: false,
|
|
272
|
+
enablePasswordReveal: false,
|
|
273
|
+
disableAutofocus: false,
|
|
274
|
+
message: {
|
|
275
|
+
error: '',
|
|
276
|
+
info: null
|
|
378
277
|
},
|
|
278
|
+
fieldMessages: {},
|
|
279
|
+
name: 'loginForm',
|
|
280
|
+
url: urlUtil.route('login', 'Main', 'tao')
|
|
281
|
+
};
|
|
379
282
|
|
|
380
|
-
|
|
381
|
-
|
|
283
|
+
/**
|
|
284
|
+
* The factory that creates a login component
|
|
285
|
+
*
|
|
286
|
+
* @param {jQueryElement} $container - where to append the component
|
|
287
|
+
* @param {Object} config - the component config
|
|
288
|
+
* @param {Object} [config.disableAutocomplete] - depending on this setting autocomplete would be disabled or enabled (and fakeForm rendered)
|
|
289
|
+
* @param {Object} [config.enablePasswordReveal] - depending on this setting password reveal would be disabled or enabled for the password field
|
|
290
|
+
* @param {Object} [config.disableAutofocus] - depending on this setting autofocus attribute will be added to login filed
|
|
291
|
+
* @param {Object} [config.fieldMessages] - field validation messages
|
|
292
|
+
* @param {String} [config.name] - the component name (used by the element)
|
|
293
|
+
* @param {String} [config.url] - the url to send login form to.
|
|
294
|
+
* @param {String} [config.message] - the form wide error|info messages
|
|
295
|
+
* @returns {loginComponent} the component
|
|
296
|
+
*/
|
|
297
|
+
function loginFactory($container, config) {
|
|
298
|
+
/**
|
|
299
|
+
* The component API
|
|
382
300
|
*/
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
301
|
+
var api = {
|
|
302
|
+
/**
|
|
303
|
+
* Returns whether autocomplete is disabled or not
|
|
304
|
+
* @returns {boolean}
|
|
305
|
+
*/
|
|
306
|
+
isAutocompleteDisabled: function isAutocompleteDisabled() {
|
|
307
|
+
return this.config.disableAutocomplete;
|
|
308
|
+
},
|
|
309
|
+
/**
|
|
310
|
+
* Returns whether password reveal is enabled or not
|
|
311
|
+
* @returns {boolean}
|
|
312
|
+
*/
|
|
313
|
+
isPasswordRevealEnabled: function isPasswordRevealEnabled() {
|
|
314
|
+
return this.config.enablePasswordReveal;
|
|
315
|
+
},
|
|
316
|
+
/**
|
|
317
|
+
* Get messages from config
|
|
318
|
+
* @returns {Object} Object containing passed messages
|
|
319
|
+
*/
|
|
320
|
+
getMessages: function getMessages() {
|
|
321
|
+
return this.config.message;
|
|
322
|
+
},
|
|
323
|
+
/**
|
|
324
|
+
* Returns form fields validation messages, if any
|
|
325
|
+
* @returns {Object} fieldMessages
|
|
326
|
+
*/
|
|
327
|
+
getFieldMessages: function getFieldMessages() {
|
|
328
|
+
return this.config.fieldMessages;
|
|
329
|
+
},
|
|
330
|
+
/**
|
|
331
|
+
* Creates fakeForm from the real form
|
|
332
|
+
* @returns {jQuery} jQuery element
|
|
333
|
+
*/
|
|
334
|
+
createFakeForm: function createFakeForm() {
|
|
335
|
+
const $element = this.getElement();
|
|
336
|
+
const $fakeFormDom = $element.clone();
|
|
337
|
+
$element.find('label').remove();
|
|
338
|
+
return $fakeFormDom.html(fakeFormTpl({
|
|
339
|
+
form: $fakeFormDom.find('form').html()
|
|
340
|
+
}));
|
|
341
|
+
},
|
|
342
|
+
/**
|
|
343
|
+
* Gets real form jQuery element
|
|
344
|
+
* @returns {jQuery} jQuery element
|
|
345
|
+
*/
|
|
346
|
+
getRealForm: function getRealForm() {
|
|
347
|
+
return this.getElement().find('form');
|
|
348
|
+
},
|
|
349
|
+
/**
|
|
350
|
+
* Gets fake form jQuery element
|
|
351
|
+
* @returns {jQuery} jQuery element
|
|
352
|
+
*/
|
|
353
|
+
getFakeForm: function getFakeForm() {
|
|
354
|
+
return this.getContainer().find('div.fakeForm');
|
|
355
|
+
},
|
|
356
|
+
/**
|
|
357
|
+
* Gets real or fake form jQuery element, depending on the disableAutocomplete setting
|
|
358
|
+
* @returns {jQuery} jQuery element
|
|
359
|
+
*/
|
|
360
|
+
getForm: function getForm() {
|
|
361
|
+
return this.isAutocompleteDisabled() ? this.getFakeForm() : this.getRealForm();
|
|
362
|
+
},
|
|
363
|
+
/**
|
|
364
|
+
* Manipulates form dom (adds password reveal elements)
|
|
365
|
+
*/
|
|
366
|
+
manipulateFormDom: function manipulateFormDom() {
|
|
367
|
+
var $form, $pwdInput, $pwdLabel;
|
|
368
|
+
$form = this.getForm();
|
|
369
|
+
$pwdInput = $form.find('input[type=password]');
|
|
370
|
+
$pwdLabel = $form.find('label[for=' + $pwdInput.attr('name') + ']');
|
|
371
|
+
$pwdInput.replaceWith(pwdRevealTpl({
|
|
372
|
+
elements: $pwdLabel[0].outerHTML + $pwdInput[0].outerHTML
|
|
373
|
+
}));
|
|
374
|
+
$pwdLabel.remove();
|
|
375
|
+
},
|
|
376
|
+
/**
|
|
377
|
+
* Attaches events to password reveal options
|
|
378
|
+
*/
|
|
379
|
+
attachPasswordRevealEvents: function attachPasswordRevealEvents() {
|
|
380
|
+
var $form, $pwdInput, $inputToggle, $viewIcon, $hideIcon;
|
|
381
|
+
const self = this;
|
|
382
|
+
const autoHide = function autoHide(event) {
|
|
383
|
+
if (!event.target.isSameNode($pwdInput) && !event.target.isSameNode($hideIcon[0]) && !event.target.isSameNode($inputToggle[0])) {
|
|
384
|
+
hide();
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
const show = function show() {
|
|
388
|
+
$viewIcon.hide();
|
|
389
|
+
$hideIcon.show();
|
|
390
|
+
$pwdInput.type = 'text';
|
|
391
|
+
$pwdInput.autocomplete = 'off';
|
|
392
|
+
window.addEventListener('mousedown', autoHide);
|
|
410
393
|
$pwdInput.focus();
|
|
394
|
+
};
|
|
395
|
+
const hide = function hide(moveFocus) {
|
|
396
|
+
$hideIcon.hide();
|
|
397
|
+
$viewIcon.show();
|
|
398
|
+
$pwdInput.type = 'password';
|
|
399
|
+
$pwdInput.autocomplete = self.isAutocompleteDisabled() ? 'off' : 'on';
|
|
400
|
+
window.removeEventListener('mousedown', autoHide);
|
|
401
|
+
if (moveFocus) {
|
|
402
|
+
$pwdInput.focus();
|
|
403
|
+
}
|
|
404
|
+
};
|
|
405
|
+
const togglePassword = function togglePassword() {
|
|
406
|
+
if ($pwdInput.type === 'password') {
|
|
407
|
+
show();
|
|
408
|
+
} else {
|
|
409
|
+
hide(true);
|
|
410
|
+
}
|
|
411
|
+
};
|
|
412
|
+
$form = this.getForm();
|
|
413
|
+
$pwdInput = $form.find('input[type=password]')[0];
|
|
414
|
+
$inputToggle = $form.find('.viewable-hiddenbox-toggle');
|
|
415
|
+
$viewIcon = $form.find('span.icon-preview');
|
|
416
|
+
$hideIcon = $form.find('span.icon-eye-slash');
|
|
417
|
+
hide();
|
|
418
|
+
$inputToggle.on('keyup', function (e) {
|
|
419
|
+
if (e.key === ' ') {
|
|
420
|
+
togglePassword();
|
|
421
|
+
}
|
|
422
|
+
});
|
|
423
|
+
$inputToggle.on('keypress', function (e) {
|
|
424
|
+
if (e.key === 'Enter') {
|
|
425
|
+
togglePassword();
|
|
426
|
+
e.stopPropagation();
|
|
427
|
+
}
|
|
428
|
+
});
|
|
429
|
+
$inputToggle.on('click', togglePassword);
|
|
430
|
+
},
|
|
431
|
+
/**
|
|
432
|
+
* Displays the error/info messages
|
|
433
|
+
*/
|
|
434
|
+
displayMessages: function displayMessages(messages) {
|
|
435
|
+
var $fields = this.getForm().find(':input');
|
|
436
|
+
if (!messages.error && this.getForm().find('.form-error').length) {
|
|
437
|
+
messages.error = __('All fields are required');
|
|
411
438
|
}
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
}
|
|
418
|
-
hide(true);
|
|
419
|
-
}
|
|
420
|
-
};
|
|
421
|
-
|
|
422
|
-
$form = this.getForm();
|
|
423
|
-
$pwdInput = $form.find('input[type=password]')[0];
|
|
424
|
-
$inputToggle = $form.find('.viewable-hiddenbox-toggle');
|
|
425
|
-
$viewIcon = $form.find('span.icon-preview');
|
|
426
|
-
$hideIcon = $form.find('span.icon-eye-slash');
|
|
427
|
-
hide();
|
|
428
|
-
$inputToggle.on('keyup', function (e) {
|
|
429
|
-
if (e.key === ' ') {
|
|
430
|
-
togglePassword();
|
|
431
|
-
}
|
|
432
|
-
});
|
|
433
|
-
$inputToggle.on('keypress', function (e) {
|
|
434
|
-
if (e.key === 'Enter') {
|
|
435
|
-
togglePassword();
|
|
436
|
-
e.stopPropagation();
|
|
437
|
-
}
|
|
438
|
-
});
|
|
439
|
-
$inputToggle.on('click', togglePassword);
|
|
440
|
-
},
|
|
441
|
-
|
|
442
|
-
/**
|
|
443
|
-
* Displays the error/info messages
|
|
444
|
-
*/
|
|
445
|
-
displayMessages: function displayMessages(messages) {
|
|
446
|
-
var $fields = this.getForm().find(':input');
|
|
447
|
-
|
|
448
|
-
if (!messages.error && this.getForm().find('.form-error').length) {
|
|
449
|
-
messages.error = __('All fields are required');
|
|
439
|
+
_.forEach(messages, function (message, level) {
|
|
440
|
+
if (message) {
|
|
441
|
+
feedback().message(level, message).open();
|
|
442
|
+
$fields.addClass(level);
|
|
443
|
+
}
|
|
444
|
+
});
|
|
450
445
|
}
|
|
451
|
-
|
|
452
|
-
_.forEach(messages, function (message, level) {
|
|
453
|
-
if (message) {
|
|
454
|
-
feedback().message(level, message).open();
|
|
455
|
-
$fields.addClass(level);
|
|
456
|
-
}
|
|
457
|
-
});
|
|
458
|
-
}
|
|
459
|
-
};
|
|
460
|
-
var loginComponent = component(api, _defaultConfig).setTemplate(loginTpl).on('init', function () {
|
|
461
|
-
this.render($container);
|
|
462
|
-
}).on('render', function () {
|
|
463
|
-
var $fakeForm, $loginBtn;
|
|
464
|
-
var $loginForm = this.getRealForm();
|
|
465
|
-
var self = this;
|
|
466
|
-
/**
|
|
467
|
-
* Submits the form after a copy of all the inputs the user has made in the fake form
|
|
468
|
-
* @fires submit event when real form gots submitted
|
|
469
|
-
*/
|
|
470
|
-
|
|
471
|
-
var submitForm = function submitForm() {
|
|
472
|
-
// if the fake form exists, copy all fields values into the real form
|
|
473
|
-
$fakeForm.find(':input').each(function () {
|
|
474
|
-
var $field = $$1(this);
|
|
475
|
-
$loginForm.find('input[name="' + $field.attr('name') + '"]').val($field.val());
|
|
476
|
-
}); // just submit the real form as if the user did it
|
|
477
|
-
|
|
478
|
-
self.trigger('submit');
|
|
479
|
-
$loginForm.submit();
|
|
480
446
|
};
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
$fakeForm = this.createFakeForm();
|
|
488
|
-
this.hide();
|
|
489
|
-
this.getElement().find('form').attr('id', 'loginForm').attr('aria-hidden', 'true');
|
|
490
|
-
this.getContainer().prepend($fakeForm); // submit the form when the user hit the submit button inside the fake form
|
|
447
|
+
var loginComponent = component(api, _defaultConfig).setTemplate(loginTpl).on('init', function () {
|
|
448
|
+
this.render($container);
|
|
449
|
+
}).on('render', function () {
|
|
450
|
+
var $fakeForm, $loginBtn;
|
|
451
|
+
var $loginForm = this.getRealForm();
|
|
452
|
+
var self = this;
|
|
491
453
|
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
454
|
+
/**
|
|
455
|
+
* Submits the form after a copy of all the inputs the user has made in the fake form
|
|
456
|
+
* @fires submit event when real form gots submitted
|
|
457
|
+
*/
|
|
458
|
+
var submitForm = function submitForm() {
|
|
459
|
+
// if the fake form exists, copy all fields values into the real form
|
|
460
|
+
$fakeForm.find(':input').each(function () {
|
|
461
|
+
var $field = $$1(this);
|
|
462
|
+
$loginForm.find('input[name="' + $field.attr('name') + '"]').val($field.val());
|
|
463
|
+
});
|
|
464
|
+
|
|
465
|
+
// just submit the real form as if the user did it
|
|
466
|
+
self.trigger('submit');
|
|
467
|
+
$loginForm.submit();
|
|
468
|
+
};
|
|
496
469
|
|
|
497
|
-
|
|
498
|
-
|
|
470
|
+
/**
|
|
471
|
+
* Create fake form and attach event handlers if autocomplete is disabled
|
|
472
|
+
*/
|
|
473
|
+
if (this.isAutocompleteDisabled()) {
|
|
474
|
+
$fakeForm = this.createFakeForm();
|
|
475
|
+
this.hide();
|
|
476
|
+
this.getElement().find('form').attr('id', 'loginForm').attr('aria-hidden', 'true');
|
|
477
|
+
this.getContainer().prepend($fakeForm);
|
|
478
|
+
|
|
479
|
+
// submit the form when the user hit the submit button inside the fake form
|
|
480
|
+
$fakeForm.find('input[type="submit"], button[type="submit"]').off('click').on('click', function (e) {
|
|
499
481
|
e.preventDefault();
|
|
500
482
|
submitForm();
|
|
501
|
-
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
this.attachPasswordRevealEvents();
|
|
512
|
-
}
|
|
513
|
-
|
|
514
|
-
$loginBtn = this.getForm().find('[name=connect]');
|
|
515
|
-
$loginBtn.removeAttr('disabled').removeClass('disabled');
|
|
516
|
-
this.displayMessages(this.getMessages());
|
|
517
|
-
});
|
|
518
|
-
|
|
519
|
-
_.defer(function () {
|
|
520
|
-
loginComponent.init(config);
|
|
521
|
-
});
|
|
483
|
+
});
|
|
484
|
+
|
|
485
|
+
// submit the form when the user hit the ENTER key inside the fake form
|
|
486
|
+
$fakeForm.on('keypress', function (e) {
|
|
487
|
+
if (e.key === 'Enter') {
|
|
488
|
+
e.preventDefault();
|
|
489
|
+
submitForm();
|
|
490
|
+
}
|
|
491
|
+
});
|
|
492
|
+
}
|
|
522
493
|
|
|
523
|
-
|
|
524
|
-
|
|
494
|
+
/**
|
|
495
|
+
* Attach elements for password revealing and attach event handlers
|
|
496
|
+
*/
|
|
497
|
+
if (this.isPasswordRevealEnabled()) {
|
|
498
|
+
this.manipulateFormDom();
|
|
499
|
+
this.attachPasswordRevealEvents();
|
|
500
|
+
}
|
|
501
|
+
$loginBtn = this.getForm().find('[name=connect]');
|
|
502
|
+
$loginBtn.removeAttr('disabled').removeClass('disabled');
|
|
503
|
+
this.displayMessages(this.getMessages());
|
|
504
|
+
});
|
|
505
|
+
_.defer(function () {
|
|
506
|
+
loginComponent.init(config);
|
|
507
|
+
});
|
|
508
|
+
return loginComponent;
|
|
509
|
+
}
|
|
525
510
|
|
|
526
|
-
|
|
511
|
+
return loginFactory;
|
|
527
512
|
|
|
528
513
|
});
|