@oat-sa/tao-core-ui 1.64.1 → 1.64.2
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 +22 -22
- package/dist/actionbar.js +92 -92
- package/dist/adder.js +109 -109
- package/dist/animable/absorbable/absorbable.js +29 -29
- package/dist/animable/absorbable/css/absorb.css +7 -7
- 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 +23 -23
- package/dist/areaBroker.js +51 -51
- package/dist/autocomplete/css/autocomplete.css +7 -7
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +384 -384
- package/dist/autoscroll.js +22 -22
- package/dist/badge/badge.js +35 -35
- package/dist/badge/css/badge.css +7 -7
- 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 +57 -57
- package/dist/btngrouper.js +64 -64
- package/dist/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/dist/bulkActionPopup.js +91 -91
- package/dist/button.js +89 -89
- package/dist/calculator/css/calculator.css +10 -10
- package/dist/calculator/css/calculator.css.map +1 -1
- package/dist/calculator.js +51 -51
- package/dist/cascadingComboBox.js +34 -34
- package/dist/ckeditor/ckConfigurator.js +49 -49
- package/dist/ckeditor/dtdHandler.js +110 -110
- package/dist/class/css/selector.css +7 -7
- package/dist/class/css/selector.css.map +1 -1
- package/dist/class/selector.js +98 -98
- package/dist/component/alignable.js +81 -81
- package/dist/component/containable.js +37 -37
- 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 +25 -25
- package/dist/component/placeable.js +70 -70
- package/dist/component/resizable.js +61 -61
- package/dist/component/stackable.js +20 -20
- package/dist/component/windowed.js +46 -46
- package/dist/component.js +140 -140
- package/dist/container.js +76 -76
- package/dist/contextualPopup/css/contextualPopup.css +7 -7
- package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
- package/dist/contextualPopup.js +100 -100
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +62 -62
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +147 -147
- package/dist/datatable/css/datatable.css +7 -7
- package/dist/datatable/css/datatable.css.map +1 -1
- package/dist/datatable/filterStrategy/filterStrategy.js +27 -27
- package/dist/datatable/filterStrategy/multiple.js +25 -25
- package/dist/datatable/filterStrategy/single.js +25 -25
- package/dist/datatable.js +377 -377
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +97 -97
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +161 -161
- package/dist/deleter.js +79 -79
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +52 -52
- package/dist/dialog/alert.js +26 -26
- package/dist/dialog/confirm.js +27 -27
- package/dist/dialog/confirmDelete.js +31 -31
- package/dist/dialog.js +141 -141
- package/dist/disabler.js +90 -90
- 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 +30 -30
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +25 -25
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +120 -120
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +89 -89
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +52 -52
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +112 -112
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +67 -67
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +81 -81
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +111 -111
- package/dist/documentViewer/providers/pdfViewer.js +29 -29
- package/dist/documentViewer/viewerFactory.js +71 -71
- package/dist/documentViewer.js +86 -86
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +84 -84
- package/dist/durationer.js +58 -58
- package/dist/dynamicComponent/css/dynamicComponent.css +7 -7
- package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/dist/dynamicComponent.js +103 -103
- package/dist/feedback.js +84 -84
- package/dist/figure/FigureStateActive.js +111 -111
- package/dist/filesender.js +26 -26
- package/dist/filter.js +34 -34
- 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 +99 -99
- package/dist/form/form.js +248 -248
- package/dist/form/simpleForm.js +71 -71
- 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 +52 -52
- package/dist/form/validator/validator.js +103 -103
- 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 +24 -24
- package/dist/form/widget/loader.js +16 -16
- package/dist/form/widget/providers/checkBox.js +62 -62
- package/dist/form/widget/providers/comboBox.js +46 -46
- package/dist/form/widget/providers/default.js +35 -35
- package/dist/form/widget/providers/hidden.js +37 -37
- package/dist/form/widget/providers/hiddenBox.js +58 -58
- package/dist/form/widget/providers/radioBox.js +57 -57
- package/dist/form/widget/providers/textArea.js +35 -35
- package/dist/form/widget/providers/textBox.js +34 -34
- package/dist/form/widget/widget.js +141 -141
- package/dist/form.js +10 -10
- package/dist/formValidator/formValidator.js +61 -61
- package/dist/formValidator/highlighters/highlighter.js +41 -41
- package/dist/formValidator/highlighters/message.js +29 -29
- package/dist/formValidator/highlighters/tooltip.js +32 -32
- 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 +73 -73
- 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 +38 -38
- package/dist/generis/widget/checkBox/checkBox.js +39 -39
- package/dist/generis/widget/comboBox/comboBox.js +32 -32
- 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 +40 -40
- package/dist/generis/widget/loader.js +20 -20
- package/dist/generis/widget/textBox/textBox.js +27 -27
- package/dist/generis/widget/widget.js +47 -47
- package/dist/groupedComboBox.js +36 -36
- package/dist/groupvalidator.js +19 -19
- package/dist/hider.js +41 -41
- package/dist/highlighter.js +278 -278
- package/dist/image/ImgStateActive/extractLabel.js +20 -20
- package/dist/image/ImgStateActive/helper.js +16 -16
- package/dist/image/ImgStateActive/initHelper.js +85 -85
- package/dist/image/ImgStateActive/initMediaEditor.js +48 -48
- package/dist/image/ImgStateActive/mediaSizer.js +32 -32
- package/dist/image/ImgStateActive.js +104 -104
- package/dist/incrementer.js +58 -58
- package/dist/inplacer.js +87 -87
- package/dist/interactUtils.js +42 -42
- package/dist/itemButtonList/css/item-button-list.css +23 -23
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +102 -102
- package/dist/keyNavigation/navigableDomElement.js +76 -76
- package/dist/keyNavigation/navigator.js +158 -158
- package/dist/listbox/css/listbox.css +7 -7
- package/dist/listbox/css/listbox.css.map +1 -1
- package/dist/listbox.js +84 -84
- package/dist/liststyler.js +57 -57
- package/dist/loadingButton/css/button.css +7 -7
- package/dist/loadingButton/css/button.css.map +1 -1
- package/dist/loadingButton/loadingButton.js +35 -35
- package/dist/lock.js +112 -112
- package/dist/login/login.js +87 -87
- package/dist/maths/calculator/basicCalculator.js +50 -50
- package/dist/maths/calculator/calculatorComponent.js +29 -29
- package/dist/maths/calculator/core/areaBroker.js +25 -25
- package/dist/maths/calculator/core/board.js +300 -300
- package/dist/maths/calculator/core/expression.js +98 -98
- package/dist/maths/calculator/core/labels.js +16 -16
- package/dist/maths/calculator/core/plugin.js +19 -19
- package/dist/maths/calculator/core/terms.js +26 -26
- package/dist/maths/calculator/core/tokenizer.js +98 -98
- package/dist/maths/calculator/core/tokens.js +75 -75
- 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 +23 -23
- package/dist/maths/calculator/plugins/core/degrad.js +22 -22
- package/dist/maths/calculator/plugins/core/history.js +45 -45
- package/dist/maths/calculator/plugins/core/remind.js +22 -22
- package/dist/maths/calculator/plugins/core/stepNavigation.js +31 -31
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +48 -48
- package/dist/maths/calculator/plugins/modifiers/pow10.js +35 -35
- package/dist/maths/calculator/plugins/modifiers/sign.js +90 -90
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +47 -47
- package/dist/maths/calculator/pluginsLoader.js +21 -21
- package/dist/maths/calculator/scientificCalculator.js +78 -78
- package/dist/mediaEditor/mediaEditorComponent.js +51 -51
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +16 -16
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +47 -47
- package/dist/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/dist/mediaEditor/plugins/mediaDimension/helper.js +70 -70
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +140 -140
- 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 +52 -52
- package/dist/mediaplayer/players/youtube.js +39 -39
- package/dist/mediaplayer/players.js +18 -18
- package/dist/mediaplayer/support.js +55 -55
- package/dist/mediaplayer/utils/reminder.js +100 -100
- package/dist/mediaplayer/utils/timeObserver.js +92 -92
- package/dist/mediaplayer/youtubeManager.js +51 -51
- package/dist/mediaplayer.js +447 -447
- package/dist/mediasizer.js +122 -122
- package/dist/modal.js +87 -87
- package/dist/movableComponent.js +35 -35
- package/dist/pageSizeSelector.js +31 -31
- package/dist/pageStatus.js +33 -33
- package/dist/pagination/css/pagination.css +7 -7
- package/dist/pagination/css/pagination.css.map +1 -1
- package/dist/pagination/paginationStrategy.js +23 -23
- package/dist/pagination/providers/pages.js +24 -24
- package/dist/pagination/providers/simple.js +22 -22
- package/dist/pagination.js +45 -45
- package/dist/previewer.js +67 -67
- package/dist/progressbar.js +58 -58
- package/dist/propertySelector/css/propertySelector.css +7 -7
- package/dist/propertySelector/css/propertySelector.css.map +1 -1
- package/dist/propertySelector/propertySelector.js +86 -86
- package/dist/report.js +73 -73
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +60 -60
- package/dist/resource/list.js +53 -53
- package/dist/resource/selectable.js +92 -92
- package/dist/resource/selector.js +182 -182
- package/dist/resource/tree.js +91 -91
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +75 -75
- package/dist/resourcemgr/fileSelector.js +45 -45
- package/dist/resourcemgr/util/updatePermissions.js +4 -4
- package/dist/resourcemgr.js +49 -49
- package/dist/scroller.js +26 -26
- package/dist/searchModal/advancedSearch.js +155 -155
- package/dist/searchModal/css/advancedSearch.css +7 -7
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +7 -7
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +134 -134
- package/dist/selecter.js +6 -6
- package/dist/stacker.js +43 -43
- package/dist/switch/css/switch.css +7 -7
- package/dist/switch/css/switch.css.map +1 -1
- package/dist/switch/switch.js +62 -62
- package/dist/tableModel.js +33 -33
- package/dist/tabs/css/tabs.css +12 -12
- package/dist/tabs/css/tabs.css.map +1 -1
- package/dist/tabs.js +220 -220
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +59 -59
- package/dist/taskQueue/table.js +54 -54
- package/dist/taskQueue/taskQueue.js +18 -18
- package/dist/taskQueue/taskQueueModel.js +102 -102
- package/dist/taskQueue.js +47 -47
- 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 +39 -39
- package/dist/taskQueueButton/taskable.js +41 -41
- package/dist/taskQueueButton/treeButton.js +43 -43
- package/dist/themeLoader.js +75 -75
- package/dist/themes.js +84 -84
- package/dist/toggler.js +57 -57
- package/dist/tooltip.js +41 -41
- package/dist/tooltipster.js +17 -17
- package/dist/transformer.js +117 -117
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/dist/tristateCheckboxGroup.js +62 -62
- package/dist/uploader.js +145 -145
- package/dist/validator/validators.js +48 -48
- package/dist/validator.js +23 -23
- package/dist/waitForMedia.js +33 -33
- package/dist/waitingDialog/css/waitingDialog.css +7 -7
- package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
- package/dist/waitingDialog/waitingDialog.js +54 -54
- package/package.json +110 -110
- package/scss/basic.scss +16 -16
- package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +60 -60
- package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
- package/scss/font/tao/tao.svg +235 -235
- 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 -93
- package/scss/inc/_feedback.scss +154 -154
- 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 +227 -227
- package/scss/inc/fonts/_tao-icon-def.scss +12 -12
- package/scss/inc/fonts/_tao-icon-vars.scss +241 -241
- 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 -7
- 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 -7
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/autocomplete/scss/autocomplete.scss +37 -37
- package/src/autocomplete.js +1027 -1027
- package/src/autoscroll.js +57 -57
- package/src/badge/badge.js +119 -119
- package/src/badge/css/badge.css +7 -7
- 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 +742 -742
- 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 +294 -294
- package/src/css/basic.css +104 -104
- 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 +179 -179
- 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 +7 -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 -149
- 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 +220 -220
- 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 +553 -553
- package/src/feedback/feedback.tpl +7 -7
- package/src/feedback.js +295 -295
- package/src/figure/FigureStateActive.js +184 -184
- package/src/filesender.js +112 -112
- package/src/filter/template.tpl +5 -5
- package/src/filter.js +129 -129
- 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 +47 -47
- package/src/formValidator/formValidator.js +253 -253
- package/src/formValidator/highlighters/highlighter.js +103 -103
- package/src/formValidator/highlighters/message.js +68 -68
- 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 +66 -66
- 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 +131 -131
- 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 +64 -64
- 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 +1192 -1192
- 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 +309 -309
- package/src/inplacer.js +315 -315
- package/src/interactUtils.js +140 -140
- package/src/itemButtonList/css/item-button-list.css +23 -23
- 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 +285 -285
- package/src/keyNavigation/navigator.js +535 -535
- 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 +252 -252
- 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 +393 -393
- package/src/login/login.js +317 -317
- 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 +190 -190
- 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 +110 -110
- 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 +190 -190
- 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 +106 -106
- 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 +7 -7
- package/src/propertySelector/css/propertySelector.css.map +1 -1
- package/src/propertySelector/propertySelector.js +286 -286
- package/src/propertySelector/scss/propertySelector.scss +66 -66
- package/src/propertySelector/tpl/property-description.tpl +12 -12
- package/src/propertySelector/tpl/property-selector.tpl +6 -6
- 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 +398 -398
- 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 +322 -322
- 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 -638
- package/src/searchModal/css/advancedSearch.css +7 -7
- package/src/searchModal/css/advancedSearch.css.map +1 -1
- package/src/searchModal/css/searchModal.css +7 -7
- package/src/searchModal/css/searchModal.css.map +1 -1
- package/src/searchModal/scss/advancedSearch.scss +171 -171
- package/src/searchModal/scss/searchModal.scss +393 -393
- package/src/searchModal/tpl/advanced-search.tpl +9 -9
- 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 -27
- package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -17
- package/src/searchModal/tpl/list-select-criterion.tpl +12 -12
- package/src/searchModal/tpl/text-criterion.tpl +11 -11
- package/src/searchModal.js +760 -760
- 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 +216 -216
- 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 +108 -108
- 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 +217 -217
- package/src/validator.js +262 -262
- 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/src/component.js
CHANGED
|
@@ -1,401 +1,401 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This program is free software; you can redistribute it and/or
|
|
3
|
-
* modify it under the terms of the GNU General Public License
|
|
4
|
-
* as published by the Free Software Foundation; under version 2
|
|
5
|
-
* of the License (non-upgradable).
|
|
6
|
-
*
|
|
7
|
-
* This program is distributed in the hope that it will be useful,
|
|
8
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
-
* GNU General Public License for more details.
|
|
11
|
-
*
|
|
12
|
-
* You should have received a copy of the GNU General Public License
|
|
13
|
-
* along with this program; if not, write to the Free Software
|
|
14
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
-
*
|
|
16
|
-
* Copyright (c) 2015 (original work) Open Assessment Technologies SA ;
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>
|
|
20
|
-
*/
|
|
21
|
-
import $ from 'jquery';
|
|
22
|
-
import _ from 'lodash';
|
|
23
|
-
import eventifier from 'core/eventifier';
|
|
24
|
-
import defaultTpl from 'ui/component/tpl/component';
|
|
25
|
-
import 'ui/component/css/components.css';
|
|
26
|
-
|
|
27
|
-
var _slice = [].slice;
|
|
28
|
-
|
|
29
|
-
/**
|
|
30
|
-
* Handles the resize of the component regarding the config set
|
|
31
|
-
*/
|
|
32
|
-
function delegatedResize() {
|
|
33
|
-
let width = this.config.width;
|
|
34
|
-
let height = this.config.height;
|
|
35
|
-
const $container = this.getContainer();
|
|
36
|
-
const $element = this.getElement();
|
|
37
|
-
|
|
38
|
-
if ($container) {
|
|
39
|
-
if ('auto' === width) {
|
|
40
|
-
width = $container.width();
|
|
41
|
-
}
|
|
42
|
-
if ('auto' === height) {
|
|
43
|
-
height = $container.height();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
if ($element) {
|
|
48
|
-
if (_.isNumber(width)) {
|
|
49
|
-
$element.css({ width: `${width}px` });
|
|
50
|
-
}
|
|
51
|
-
if (_.isNumber(height)) {
|
|
52
|
-
$element.css({ height: `${height}px` });
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
this._width = width;
|
|
57
|
-
this._height = height;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Builds a component from a base skeleton
|
|
62
|
-
* @param {Object} [specs] - Some extra methods to assign to the component instance
|
|
63
|
-
* @param {Object} [defaults] - Some default config entries
|
|
64
|
-
* @returns {component}
|
|
65
|
-
*/
|
|
66
|
-
function component(specs, defaults) {
|
|
67
|
-
// the template is a private property
|
|
68
|
-
var componentTpl = defaultTpl;
|
|
69
|
-
|
|
70
|
-
//contains the states of the components
|
|
71
|
-
var componentState = {};
|
|
72
|
-
|
|
73
|
-
//where the component is added
|
|
74
|
-
var $container;
|
|
75
|
-
|
|
76
|
-
// base skeleton
|
|
77
|
-
/**
|
|
78
|
-
* @typedef {Object} Component
|
|
79
|
-
*/
|
|
80
|
-
var componentApi = {
|
|
81
|
-
/**
|
|
82
|
-
* Initializes the component
|
|
83
|
-
* @param {Object} config
|
|
84
|
-
* @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component
|
|
85
|
-
* @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before
|
|
86
|
-
* @param {Number|String} [config.width] - The width in pixels, or 'auto' to use the container's width
|
|
87
|
-
* @param {Number|String} [config.height] - The height in pixels, or 'auto' to use the container's height
|
|
88
|
-
* @returns {component}
|
|
89
|
-
* @fires component#init
|
|
90
|
-
*/
|
|
91
|
-
init: function init(config) {
|
|
92
|
-
this.config = _(config || {})
|
|
93
|
-
.omit(function(value) {
|
|
94
|
-
return value === null || typeof value === 'undefined';
|
|
95
|
-
})
|
|
96
|
-
.defaults(defaults || {})
|
|
97
|
-
.value();
|
|
98
|
-
|
|
99
|
-
componentState = {};
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Executes extra init tasks
|
|
103
|
-
* @event component#init
|
|
104
|
-
*/
|
|
105
|
-
this.trigger('init');
|
|
106
|
-
|
|
107
|
-
if (this.config.renderTo) {
|
|
108
|
-
$container = $(this.config.renderTo);
|
|
109
|
-
this.render();
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
return this;
|
|
113
|
-
},
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Uninstalls the component
|
|
117
|
-
* @returns {component}
|
|
118
|
-
* @fires component#destroy
|
|
119
|
-
*/
|
|
120
|
-
destroy: function destroy() {
|
|
121
|
-
/**
|
|
122
|
-
* Executes extra destroy tasks
|
|
123
|
-
* @event component#destroy
|
|
124
|
-
*/
|
|
125
|
-
this.trigger('destroy');
|
|
126
|
-
|
|
127
|
-
if (this.$component) {
|
|
128
|
-
this.$component.remove();
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
this.$component = null;
|
|
132
|
-
componentState = {};
|
|
133
|
-
|
|
134
|
-
return this;
|
|
135
|
-
},
|
|
136
|
-
|
|
137
|
-
/**
|
|
138
|
-
* Renders the component
|
|
139
|
-
* @param {jQuery|HTMLElement|String} [container] - where the component is rendered
|
|
140
|
-
* @returns {component}
|
|
141
|
-
* @fires component#render
|
|
142
|
-
*/
|
|
143
|
-
render: function render(container) {
|
|
144
|
-
if (container) {
|
|
145
|
-
$container = $(container);
|
|
146
|
-
}
|
|
147
|
-
this.$component = $(componentTpl(this.config));
|
|
148
|
-
|
|
149
|
-
if ($container) {
|
|
150
|
-
if (this.config.replace) {
|
|
151
|
-
$container.empty();
|
|
152
|
-
}
|
|
153
|
-
$container.append(this.$component);
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
this.setState('rendered', true);
|
|
157
|
-
|
|
158
|
-
delegatedResize.call(this);
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* Executes extra render tasks
|
|
162
|
-
* @event component#render
|
|
163
|
-
* @param {jQuery} $component
|
|
164
|
-
*/
|
|
165
|
-
this.trigger('render', this.$component);
|
|
166
|
-
|
|
167
|
-
return this;
|
|
168
|
-
},
|
|
169
|
-
|
|
170
|
-
/**
|
|
171
|
-
* Sets the component's size
|
|
172
|
-
* @param {Number|String} width - The width in pixels, or 'auto' to use the container's width
|
|
173
|
-
* @param {Number|String} height - The height in pixels, or 'auto' to use the container's height
|
|
174
|
-
* @returns {component}
|
|
175
|
-
* @fires component#setsize
|
|
176
|
-
*/
|
|
177
|
-
setSize: function setSize(width, height) {
|
|
178
|
-
this.config.width = width;
|
|
179
|
-
this.config.height = height;
|
|
180
|
-
|
|
181
|
-
if (this.is('rendered')) {
|
|
182
|
-
delegatedResize.call(this);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
/**
|
|
186
|
-
* Executes extra resize tasks
|
|
187
|
-
* @event component#setsize
|
|
188
|
-
* @param {Number|String} width
|
|
189
|
-
* @param {Number|String} height
|
|
190
|
-
*/
|
|
191
|
-
this.trigger('setsize', width, height);
|
|
192
|
-
|
|
193
|
-
return this;
|
|
194
|
-
},
|
|
195
|
-
|
|
196
|
-
/**
|
|
197
|
-
* Get the component's size
|
|
198
|
-
* @returns {Object}
|
|
199
|
-
* @fires component#setsize
|
|
200
|
-
*/
|
|
201
|
-
getSize: function getSize() {
|
|
202
|
-
if (this.is('rendered')) {
|
|
203
|
-
return {
|
|
204
|
-
width: this._width || 0,
|
|
205
|
-
height: this._height || 0
|
|
206
|
-
};
|
|
207
|
-
}
|
|
208
|
-
},
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Get the component rendered size
|
|
212
|
-
* @param {Boolean} includeMargin - include the margins in the returned size
|
|
213
|
-
* @returns {{width: number, height: number}}
|
|
214
|
-
*/
|
|
215
|
-
getOuterSize: function getOuterSize(includeMargin) {
|
|
216
|
-
var $component;
|
|
217
|
-
if (this.is('rendered')) {
|
|
218
|
-
$component = this.getElement();
|
|
219
|
-
includeMargin = includeMargin || false;
|
|
220
|
-
|
|
221
|
-
return {
|
|
222
|
-
width: Math.round($component.outerWidth(includeMargin)),
|
|
223
|
-
height: Math.round($component.outerHeight(includeMargin))
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
},
|
|
227
|
-
|
|
228
|
-
/**
|
|
229
|
-
* Shows the component
|
|
230
|
-
* @returns {component}
|
|
231
|
-
* @fires component#show
|
|
232
|
-
*/
|
|
233
|
-
show: function show() {
|
|
234
|
-
/**
|
|
235
|
-
* Executes extra tasks on show
|
|
236
|
-
* @event component#show
|
|
237
|
-
* @param {component} component
|
|
238
|
-
*/
|
|
239
|
-
this.trigger('show', this);
|
|
240
|
-
|
|
241
|
-
return this.setState('hidden', false);
|
|
242
|
-
},
|
|
243
|
-
|
|
244
|
-
/**
|
|
245
|
-
* Hides the component
|
|
246
|
-
* @returns {component}
|
|
247
|
-
* @fires component#hide
|
|
248
|
-
*/
|
|
249
|
-
hide: function hide() {
|
|
250
|
-
/**
|
|
251
|
-
* Executes extra tasks on hide
|
|
252
|
-
* @event component#hide
|
|
253
|
-
* @param {component} component
|
|
254
|
-
*/
|
|
255
|
-
this.trigger('hide', this);
|
|
256
|
-
|
|
257
|
-
return this.setState('hidden', true);
|
|
258
|
-
},
|
|
259
|
-
|
|
260
|
-
/**
|
|
261
|
-
* Enables the component
|
|
262
|
-
* @returns {component}
|
|
263
|
-
* @fires component#enable
|
|
264
|
-
*/
|
|
265
|
-
enable: function enable() {
|
|
266
|
-
/**
|
|
267
|
-
* Executes extra tasks on enable
|
|
268
|
-
* @event component#enable
|
|
269
|
-
* @param {component} component
|
|
270
|
-
*/
|
|
271
|
-
this.trigger('enable', this);
|
|
272
|
-
|
|
273
|
-
return this.setState('disabled', false);
|
|
274
|
-
},
|
|
275
|
-
|
|
276
|
-
/**
|
|
277
|
-
* Disables the component
|
|
278
|
-
* @returns {component}
|
|
279
|
-
* @fires component#disable
|
|
280
|
-
*/
|
|
281
|
-
disable: function disable() {
|
|
282
|
-
/**
|
|
283
|
-
* Executes extra tasks on disable
|
|
284
|
-
* @event component#disable
|
|
285
|
-
* @param {component} component
|
|
286
|
-
*/
|
|
287
|
-
this.trigger('disable', this);
|
|
288
|
-
|
|
289
|
-
return this.setState('disabled', true);
|
|
290
|
-
},
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Checks if the component has a particular state
|
|
294
|
-
* @param {String} state
|
|
295
|
-
* @returns {Boolean}
|
|
296
|
-
*/
|
|
297
|
-
is: function is(state) {
|
|
298
|
-
return !!componentState[state];
|
|
299
|
-
},
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
* Sets the component to a particular state
|
|
303
|
-
* @param {String} state
|
|
304
|
-
* @param {Boolean} flag
|
|
305
|
-
* @returns {component}
|
|
306
|
-
* @fires component#state
|
|
307
|
-
*/
|
|
308
|
-
setState: function setState(state, flag) {
|
|
309
|
-
flag = !!flag;
|
|
310
|
-
componentState[state] = flag;
|
|
311
|
-
|
|
312
|
-
if (this.$component) {
|
|
313
|
-
this.$component.toggleClass(state, flag);
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Executes extra tasks on state change
|
|
318
|
-
* @event component#state
|
|
319
|
-
* @param {String} state
|
|
320
|
-
* @param {Boolean} flag
|
|
321
|
-
* @param {component} component
|
|
322
|
-
*/
|
|
323
|
-
this.trigger('state', state, flag, this);
|
|
324
|
-
|
|
325
|
-
return this;
|
|
326
|
-
},
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Gets the underlying DOM element
|
|
330
|
-
* @returns {jQuery}
|
|
331
|
-
*/
|
|
332
|
-
getContainer: function getContainer() {
|
|
333
|
-
return $container;
|
|
334
|
-
},
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Gets the underlying DOM element
|
|
338
|
-
* @returns {jQuery}
|
|
339
|
-
*/
|
|
340
|
-
getElement: function getElement() {
|
|
341
|
-
return this.$component;
|
|
342
|
-
},
|
|
343
|
-
|
|
344
|
-
/**
|
|
345
|
-
* Gets the template used to render this component
|
|
346
|
-
* @returns {Function}
|
|
347
|
-
*/
|
|
348
|
-
getTemplate: function getTemplate() {
|
|
349
|
-
return componentTpl;
|
|
350
|
-
},
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Sets the template used to render this component
|
|
354
|
-
* @param {Function} template
|
|
355
|
-
* @returns {componentApi}
|
|
356
|
-
* @fires component#template
|
|
357
|
-
*/
|
|
358
|
-
setTemplate: function setTemplate(template) {
|
|
359
|
-
var tpl = template || defaultTpl;
|
|
360
|
-
componentTpl = tpl;
|
|
361
|
-
|
|
362
|
-
// ensure the template is defined as a function
|
|
363
|
-
if (!_.isFunction(componentTpl)) {
|
|
364
|
-
componentTpl = function() {
|
|
365
|
-
return tpl;
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* Executes extra tasks on template change
|
|
371
|
-
* @event component#template
|
|
372
|
-
* @param {function} componentTpl
|
|
373
|
-
*/
|
|
374
|
-
this.trigger('template', componentTpl);
|
|
375
|
-
|
|
376
|
-
return this;
|
|
377
|
-
},
|
|
378
|
-
|
|
379
|
-
/**
|
|
380
|
-
* Get the component's configuration
|
|
381
|
-
*/
|
|
382
|
-
getConfig: function getConfig() {
|
|
383
|
-
return this.config || defaults || {};
|
|
384
|
-
}
|
|
385
|
-
};
|
|
386
|
-
|
|
387
|
-
// let's extend the instance with extra methods
|
|
388
|
-
if (specs) {
|
|
389
|
-
_(specs)
|
|
390
|
-
.functions()
|
|
391
|
-
.forEach(function(method) {
|
|
392
|
-
componentApi[method] = function delegate() {
|
|
393
|
-
return specs[method].apply(componentApi, _slice.call(arguments));
|
|
394
|
-
};
|
|
395
|
-
});
|
|
396
|
-
}
|
|
397
|
-
|
|
398
|
-
return eventifier(componentApi);
|
|
399
|
-
}
|
|
400
|
-
|
|
401
|
-
export default component;
|
|
1
|
+
/**
|
|
2
|
+
* This program is free software; you can redistribute it and/or
|
|
3
|
+
* modify it under the terms of the GNU General Public License
|
|
4
|
+
* as published by the Free Software Foundation; under version 2
|
|
5
|
+
* of the License (non-upgradable).
|
|
6
|
+
*
|
|
7
|
+
* This program is distributed in the hope that it will be useful,
|
|
8
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
9
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
10
|
+
* GNU General Public License for more details.
|
|
11
|
+
*
|
|
12
|
+
* You should have received a copy of the GNU General Public License
|
|
13
|
+
* along with this program; if not, write to the Free Software
|
|
14
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
15
|
+
*
|
|
16
|
+
* Copyright (c) 2015 (original work) Open Assessment Technologies SA ;
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* @author Jean-Sébastien Conan <jean-sebastien.conan@vesperiagroup.com>
|
|
20
|
+
*/
|
|
21
|
+
import $ from 'jquery';
|
|
22
|
+
import _ from 'lodash';
|
|
23
|
+
import eventifier from 'core/eventifier';
|
|
24
|
+
import defaultTpl from 'ui/component/tpl/component';
|
|
25
|
+
import 'ui/component/css/components.css';
|
|
26
|
+
|
|
27
|
+
var _slice = [].slice;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Handles the resize of the component regarding the config set
|
|
31
|
+
*/
|
|
32
|
+
function delegatedResize() {
|
|
33
|
+
let width = this.config.width;
|
|
34
|
+
let height = this.config.height;
|
|
35
|
+
const $container = this.getContainer();
|
|
36
|
+
const $element = this.getElement();
|
|
37
|
+
|
|
38
|
+
if ($container) {
|
|
39
|
+
if ('auto' === width) {
|
|
40
|
+
width = $container.width();
|
|
41
|
+
}
|
|
42
|
+
if ('auto' === height) {
|
|
43
|
+
height = $container.height();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
if ($element) {
|
|
48
|
+
if (_.isNumber(width)) {
|
|
49
|
+
$element.css({ width: `${width}px` });
|
|
50
|
+
}
|
|
51
|
+
if (_.isNumber(height)) {
|
|
52
|
+
$element.css({ height: `${height}px` });
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
this._width = width;
|
|
57
|
+
this._height = height;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Builds a component from a base skeleton
|
|
62
|
+
* @param {Object} [specs] - Some extra methods to assign to the component instance
|
|
63
|
+
* @param {Object} [defaults] - Some default config entries
|
|
64
|
+
* @returns {component}
|
|
65
|
+
*/
|
|
66
|
+
function component(specs, defaults) {
|
|
67
|
+
// the template is a private property
|
|
68
|
+
var componentTpl = defaultTpl;
|
|
69
|
+
|
|
70
|
+
//contains the states of the components
|
|
71
|
+
var componentState = {};
|
|
72
|
+
|
|
73
|
+
//where the component is added
|
|
74
|
+
var $container;
|
|
75
|
+
|
|
76
|
+
// base skeleton
|
|
77
|
+
/**
|
|
78
|
+
* @typedef {Object} Component
|
|
79
|
+
*/
|
|
80
|
+
var componentApi = {
|
|
81
|
+
/**
|
|
82
|
+
* Initializes the component
|
|
83
|
+
* @param {Object} config
|
|
84
|
+
* @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component
|
|
85
|
+
* @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before
|
|
86
|
+
* @param {Number|String} [config.width] - The width in pixels, or 'auto' to use the container's width
|
|
87
|
+
* @param {Number|String} [config.height] - The height in pixels, or 'auto' to use the container's height
|
|
88
|
+
* @returns {component}
|
|
89
|
+
* @fires component#init
|
|
90
|
+
*/
|
|
91
|
+
init: function init(config) {
|
|
92
|
+
this.config = _(config || {})
|
|
93
|
+
.omit(function(value) {
|
|
94
|
+
return value === null || typeof value === 'undefined';
|
|
95
|
+
})
|
|
96
|
+
.defaults(defaults || {})
|
|
97
|
+
.value();
|
|
98
|
+
|
|
99
|
+
componentState = {};
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Executes extra init tasks
|
|
103
|
+
* @event component#init
|
|
104
|
+
*/
|
|
105
|
+
this.trigger('init');
|
|
106
|
+
|
|
107
|
+
if (this.config.renderTo) {
|
|
108
|
+
$container = $(this.config.renderTo);
|
|
109
|
+
this.render();
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
return this;
|
|
113
|
+
},
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Uninstalls the component
|
|
117
|
+
* @returns {component}
|
|
118
|
+
* @fires component#destroy
|
|
119
|
+
*/
|
|
120
|
+
destroy: function destroy() {
|
|
121
|
+
/**
|
|
122
|
+
* Executes extra destroy tasks
|
|
123
|
+
* @event component#destroy
|
|
124
|
+
*/
|
|
125
|
+
this.trigger('destroy');
|
|
126
|
+
|
|
127
|
+
if (this.$component) {
|
|
128
|
+
this.$component.remove();
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
this.$component = null;
|
|
132
|
+
componentState = {};
|
|
133
|
+
|
|
134
|
+
return this;
|
|
135
|
+
},
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Renders the component
|
|
139
|
+
* @param {jQuery|HTMLElement|String} [container] - where the component is rendered
|
|
140
|
+
* @returns {component}
|
|
141
|
+
* @fires component#render
|
|
142
|
+
*/
|
|
143
|
+
render: function render(container) {
|
|
144
|
+
if (container) {
|
|
145
|
+
$container = $(container);
|
|
146
|
+
}
|
|
147
|
+
this.$component = $(componentTpl(this.config));
|
|
148
|
+
|
|
149
|
+
if ($container) {
|
|
150
|
+
if (this.config.replace) {
|
|
151
|
+
$container.empty();
|
|
152
|
+
}
|
|
153
|
+
$container.append(this.$component);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
this.setState('rendered', true);
|
|
157
|
+
|
|
158
|
+
delegatedResize.call(this);
|
|
159
|
+
|
|
160
|
+
/**
|
|
161
|
+
* Executes extra render tasks
|
|
162
|
+
* @event component#render
|
|
163
|
+
* @param {jQuery} $component
|
|
164
|
+
*/
|
|
165
|
+
this.trigger('render', this.$component);
|
|
166
|
+
|
|
167
|
+
return this;
|
|
168
|
+
},
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* Sets the component's size
|
|
172
|
+
* @param {Number|String} width - The width in pixels, or 'auto' to use the container's width
|
|
173
|
+
* @param {Number|String} height - The height in pixels, or 'auto' to use the container's height
|
|
174
|
+
* @returns {component}
|
|
175
|
+
* @fires component#setsize
|
|
176
|
+
*/
|
|
177
|
+
setSize: function setSize(width, height) {
|
|
178
|
+
this.config.width = width;
|
|
179
|
+
this.config.height = height;
|
|
180
|
+
|
|
181
|
+
if (this.is('rendered')) {
|
|
182
|
+
delegatedResize.call(this);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Executes extra resize tasks
|
|
187
|
+
* @event component#setsize
|
|
188
|
+
* @param {Number|String} width
|
|
189
|
+
* @param {Number|String} height
|
|
190
|
+
*/
|
|
191
|
+
this.trigger('setsize', width, height);
|
|
192
|
+
|
|
193
|
+
return this;
|
|
194
|
+
},
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* Get the component's size
|
|
198
|
+
* @returns {Object}
|
|
199
|
+
* @fires component#setsize
|
|
200
|
+
*/
|
|
201
|
+
getSize: function getSize() {
|
|
202
|
+
if (this.is('rendered')) {
|
|
203
|
+
return {
|
|
204
|
+
width: this._width || 0,
|
|
205
|
+
height: this._height || 0
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
|
|
210
|
+
/**
|
|
211
|
+
* Get the component rendered size
|
|
212
|
+
* @param {Boolean} includeMargin - include the margins in the returned size
|
|
213
|
+
* @returns {{width: number, height: number}}
|
|
214
|
+
*/
|
|
215
|
+
getOuterSize: function getOuterSize(includeMargin) {
|
|
216
|
+
var $component;
|
|
217
|
+
if (this.is('rendered')) {
|
|
218
|
+
$component = this.getElement();
|
|
219
|
+
includeMargin = includeMargin || false;
|
|
220
|
+
|
|
221
|
+
return {
|
|
222
|
+
width: Math.round($component.outerWidth(includeMargin)),
|
|
223
|
+
height: Math.round($component.outerHeight(includeMargin))
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
},
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Shows the component
|
|
230
|
+
* @returns {component}
|
|
231
|
+
* @fires component#show
|
|
232
|
+
*/
|
|
233
|
+
show: function show() {
|
|
234
|
+
/**
|
|
235
|
+
* Executes extra tasks on show
|
|
236
|
+
* @event component#show
|
|
237
|
+
* @param {component} component
|
|
238
|
+
*/
|
|
239
|
+
this.trigger('show', this);
|
|
240
|
+
|
|
241
|
+
return this.setState('hidden', false);
|
|
242
|
+
},
|
|
243
|
+
|
|
244
|
+
/**
|
|
245
|
+
* Hides the component
|
|
246
|
+
* @returns {component}
|
|
247
|
+
* @fires component#hide
|
|
248
|
+
*/
|
|
249
|
+
hide: function hide() {
|
|
250
|
+
/**
|
|
251
|
+
* Executes extra tasks on hide
|
|
252
|
+
* @event component#hide
|
|
253
|
+
* @param {component} component
|
|
254
|
+
*/
|
|
255
|
+
this.trigger('hide', this);
|
|
256
|
+
|
|
257
|
+
return this.setState('hidden', true);
|
|
258
|
+
},
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Enables the component
|
|
262
|
+
* @returns {component}
|
|
263
|
+
* @fires component#enable
|
|
264
|
+
*/
|
|
265
|
+
enable: function enable() {
|
|
266
|
+
/**
|
|
267
|
+
* Executes extra tasks on enable
|
|
268
|
+
* @event component#enable
|
|
269
|
+
* @param {component} component
|
|
270
|
+
*/
|
|
271
|
+
this.trigger('enable', this);
|
|
272
|
+
|
|
273
|
+
return this.setState('disabled', false);
|
|
274
|
+
},
|
|
275
|
+
|
|
276
|
+
/**
|
|
277
|
+
* Disables the component
|
|
278
|
+
* @returns {component}
|
|
279
|
+
* @fires component#disable
|
|
280
|
+
*/
|
|
281
|
+
disable: function disable() {
|
|
282
|
+
/**
|
|
283
|
+
* Executes extra tasks on disable
|
|
284
|
+
* @event component#disable
|
|
285
|
+
* @param {component} component
|
|
286
|
+
*/
|
|
287
|
+
this.trigger('disable', this);
|
|
288
|
+
|
|
289
|
+
return this.setState('disabled', true);
|
|
290
|
+
},
|
|
291
|
+
|
|
292
|
+
/**
|
|
293
|
+
* Checks if the component has a particular state
|
|
294
|
+
* @param {String} state
|
|
295
|
+
* @returns {Boolean}
|
|
296
|
+
*/
|
|
297
|
+
is: function is(state) {
|
|
298
|
+
return !!componentState[state];
|
|
299
|
+
},
|
|
300
|
+
|
|
301
|
+
/**
|
|
302
|
+
* Sets the component to a particular state
|
|
303
|
+
* @param {String} state
|
|
304
|
+
* @param {Boolean} flag
|
|
305
|
+
* @returns {component}
|
|
306
|
+
* @fires component#state
|
|
307
|
+
*/
|
|
308
|
+
setState: function setState(state, flag) {
|
|
309
|
+
flag = !!flag;
|
|
310
|
+
componentState[state] = flag;
|
|
311
|
+
|
|
312
|
+
if (this.$component) {
|
|
313
|
+
this.$component.toggleClass(state, flag);
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/**
|
|
317
|
+
* Executes extra tasks on state change
|
|
318
|
+
* @event component#state
|
|
319
|
+
* @param {String} state
|
|
320
|
+
* @param {Boolean} flag
|
|
321
|
+
* @param {component} component
|
|
322
|
+
*/
|
|
323
|
+
this.trigger('state', state, flag, this);
|
|
324
|
+
|
|
325
|
+
return this;
|
|
326
|
+
},
|
|
327
|
+
|
|
328
|
+
/**
|
|
329
|
+
* Gets the underlying DOM element
|
|
330
|
+
* @returns {jQuery}
|
|
331
|
+
*/
|
|
332
|
+
getContainer: function getContainer() {
|
|
333
|
+
return $container;
|
|
334
|
+
},
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Gets the underlying DOM element
|
|
338
|
+
* @returns {jQuery}
|
|
339
|
+
*/
|
|
340
|
+
getElement: function getElement() {
|
|
341
|
+
return this.$component;
|
|
342
|
+
},
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Gets the template used to render this component
|
|
346
|
+
* @returns {Function}
|
|
347
|
+
*/
|
|
348
|
+
getTemplate: function getTemplate() {
|
|
349
|
+
return componentTpl;
|
|
350
|
+
},
|
|
351
|
+
|
|
352
|
+
/**
|
|
353
|
+
* Sets the template used to render this component
|
|
354
|
+
* @param {Function} template
|
|
355
|
+
* @returns {componentApi}
|
|
356
|
+
* @fires component#template
|
|
357
|
+
*/
|
|
358
|
+
setTemplate: function setTemplate(template) {
|
|
359
|
+
var tpl = template || defaultTpl;
|
|
360
|
+
componentTpl = tpl;
|
|
361
|
+
|
|
362
|
+
// ensure the template is defined as a function
|
|
363
|
+
if (!_.isFunction(componentTpl)) {
|
|
364
|
+
componentTpl = function() {
|
|
365
|
+
return tpl;
|
|
366
|
+
};
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Executes extra tasks on template change
|
|
371
|
+
* @event component#template
|
|
372
|
+
* @param {function} componentTpl
|
|
373
|
+
*/
|
|
374
|
+
this.trigger('template', componentTpl);
|
|
375
|
+
|
|
376
|
+
return this;
|
|
377
|
+
},
|
|
378
|
+
|
|
379
|
+
/**
|
|
380
|
+
* Get the component's configuration
|
|
381
|
+
*/
|
|
382
|
+
getConfig: function getConfig() {
|
|
383
|
+
return this.config || defaults || {};
|
|
384
|
+
}
|
|
385
|
+
};
|
|
386
|
+
|
|
387
|
+
// let's extend the instance with extra methods
|
|
388
|
+
if (specs) {
|
|
389
|
+
_(specs)
|
|
390
|
+
.functions()
|
|
391
|
+
.forEach(function(method) {
|
|
392
|
+
componentApi[method] = function delegate() {
|
|
393
|
+
return specs[method].apply(componentApi, _slice.call(arguments));
|
|
394
|
+
};
|
|
395
|
+
});
|
|
396
|
+
}
|
|
397
|
+
|
|
398
|
+
return eventifier(componentApi);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
export default component;
|