@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
|
@@ -1,220 +1,220 @@
|
|
|
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) 2019 Open Assessment Technologies SA ;
|
|
17
|
-
*/
|
|
18
|
-
/**
|
|
19
|
-
* Simple validator engine. Apply a collection of validation rules on a value.
|
|
20
|
-
* @author Jean-Sébastien Conan <jean-sebastien@taotesting.com>
|
|
21
|
-
*/
|
|
22
|
-
|
|
23
|
-
import _ from 'lodash';
|
|
24
|
-
import __ from 'i18n';
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* @typedef {Object} validationRule Defines a validation rule to apply on a value.
|
|
28
|
-
* @property {String} id - The validation identifier
|
|
29
|
-
* @property {RegExp|Function|String|String[]} predicate - The validation rule to apply on the value.
|
|
30
|
-
* It could be either a RegExp or a Function.
|
|
31
|
-
* The function must return a boolean value,
|
|
32
|
-
* it can wrap it in a Promise too.
|
|
33
|
-
* @property {String} [message] - The message returned in case of failed validation
|
|
34
|
-
* @property {Number} [precedence] - The precedence order for sorting
|
|
35
|
-
*/
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* @typedef {Object} validatorConfig Defines the config entries available to setup a form widget validator
|
|
39
|
-
* @property {validationRule[]} validations - The list of validations to apply
|
|
40
|
-
* @property {String} defaultMessage - The default message returned when a validation fails and no message is set
|
|
41
|
-
*/
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Defaults config for the validator
|
|
45
|
-
* @type {validatorConfig}
|
|
46
|
-
*/
|
|
47
|
-
const defaults = {
|
|
48
|
-
defaultMessage: __('Invalid input')
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
* Validates a value
|
|
53
|
-
* @param {String} value
|
|
54
|
-
* @param {validationRule} validation
|
|
55
|
-
* @returns {Boolean|Promise}
|
|
56
|
-
*/
|
|
57
|
-
function validateValue(value, validation) {
|
|
58
|
-
if (validation.predicate instanceof RegExp) {
|
|
59
|
-
return validation.predicate.test(value);
|
|
60
|
-
} else if (_.isFunction(validation.predicate)) {
|
|
61
|
-
return validation.predicate(value);
|
|
62
|
-
} else if (_.isArray(validation.predicate)) {
|
|
63
|
-
return _.indexOf(validation.predicate, value) > -1;
|
|
64
|
-
}
|
|
65
|
-
return validation.predicate === value;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Compares validation rules
|
|
70
|
-
* @param {validationRule} a
|
|
71
|
-
* @param {validationRule} b
|
|
72
|
-
* @returns {Number}
|
|
73
|
-
*/
|
|
74
|
-
function compareRule(a, b) {
|
|
75
|
-
return ((a && a.precedence) || 0) - ((b && b.precedence) || 0);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Creates a simple form widget's validator.
|
|
80
|
-
* It manages and applies a collection of validation rules on a value.
|
|
81
|
-
*
|
|
82
|
-
* @example
|
|
83
|
-
* const validator = validatorFactory({
|
|
84
|
-
* defaultMessage: 'An error occurred!',
|
|
85
|
-
* validations: [{
|
|
86
|
-
* id: 'numeric',
|
|
87
|
-
* message: 'This field must be numerical',
|
|
88
|
-
* predicate: /^\d+$/,
|
|
89
|
-
* precedence: 2
|
|
90
|
-
* }, {
|
|
91
|
-
* id: 'required',
|
|
92
|
-
* message: 'This field is required',
|
|
93
|
-
* predicate: value => value.length > 0,
|
|
94
|
-
* precedence: 1
|
|
95
|
-
* }, {
|
|
96
|
-
* id: 'domain',
|
|
97
|
-
* predicate: value => (parseInt(value, 10) || 0) <= 10,
|
|
98
|
-
* precedence: 3
|
|
99
|
-
* }]
|
|
100
|
-
* });
|
|
101
|
-
*
|
|
102
|
-
* validator.validate('100')
|
|
103
|
-
* .then(() => {
|
|
104
|
-
* // ...
|
|
105
|
-
* })
|
|
106
|
-
* .catch(messages => {
|
|
107
|
-
* // ...
|
|
108
|
-
* });
|
|
109
|
-
*
|
|
110
|
-
* @param {validatorConfig} config
|
|
111
|
-
* @param {validationRule[]} [config.validations] - The list of validation rules to apply
|
|
112
|
-
* @param {String} [config.defaultMessage] - The default message returned when a validation fails and no message is set
|
|
113
|
-
* @returns {validator}
|
|
114
|
-
*/
|
|
115
|
-
function validatorFactory(config) {
|
|
116
|
-
const validations = new Map();
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* @typedef {Object} validator
|
|
120
|
-
*/
|
|
121
|
-
const validator = {
|
|
122
|
-
/**
|
|
123
|
-
* Runs all validation rules on a value
|
|
124
|
-
* @param {String} value
|
|
125
|
-
* @returns {Promise} Will provide the list of error messages if the validation failed.
|
|
126
|
-
*/
|
|
127
|
-
validate(value) {
|
|
128
|
-
const rules = this.getValidations();
|
|
129
|
-
rules.sort(compareRule);
|
|
130
|
-
|
|
131
|
-
return Promise
|
|
132
|
-
.all(rules.map(validation => Promise.resolve(validateValue(value, validation))))
|
|
133
|
-
.then(results => {
|
|
134
|
-
const errors = _.reduce(results, (list, result, index) => {
|
|
135
|
-
if (!result) {
|
|
136
|
-
list.push(rules[index].message || config.defaultMessage);
|
|
137
|
-
}
|
|
138
|
-
return list;
|
|
139
|
-
}, []);
|
|
140
|
-
|
|
141
|
-
if (errors.length) {
|
|
142
|
-
return Promise.reject(errors);
|
|
143
|
-
}
|
|
144
|
-
});
|
|
145
|
-
},
|
|
146
|
-
|
|
147
|
-
/**
|
|
148
|
-
* Adds a validation rule
|
|
149
|
-
* @param {validationRule} validation
|
|
150
|
-
* @returns {validator}
|
|
151
|
-
* @throws {TypeError} if the validation object is not valid
|
|
152
|
-
*/
|
|
153
|
-
addValidation(validation) {
|
|
154
|
-
if (!_.isPlainObject(validation)) {
|
|
155
|
-
throw new TypeError('The validation must be an object');
|
|
156
|
-
}
|
|
157
|
-
if (!_.isString(validation.id) || !validation.id) {
|
|
158
|
-
throw new TypeError('The validation must contain an identifier');
|
|
159
|
-
}
|
|
160
|
-
if (!_.isFunction(validation.predicate) &&
|
|
161
|
-
!_.isRegExp(validation.predicate) &&
|
|
162
|
-
!_.isString(validation.predicate) &&
|
|
163
|
-
!_.isArray(validation.predicate)) {
|
|
164
|
-
throw new TypeError('The validation must provide a predicate');
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
validations.set(validation.id, validation);
|
|
168
|
-
|
|
169
|
-
return this;
|
|
170
|
-
},
|
|
171
|
-
|
|
172
|
-
/**
|
|
173
|
-
* Gets a validation rule by its identifier
|
|
174
|
-
* @param {String} id
|
|
175
|
-
* @returns {validationRule|null}
|
|
176
|
-
*/
|
|
177
|
-
getValidation(id) {
|
|
178
|
-
return validations.get(id) || null;
|
|
179
|
-
},
|
|
180
|
-
|
|
181
|
-
/**
|
|
182
|
-
* Gets the list of validation rules.
|
|
183
|
-
* @returns {validationRule[]}
|
|
184
|
-
*/
|
|
185
|
-
getValidations() {
|
|
186
|
-
const list = [];
|
|
187
|
-
for(let validation of validations.values()) {
|
|
188
|
-
list.push(validation);
|
|
189
|
-
}
|
|
190
|
-
return list;
|
|
191
|
-
},
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Removes a validation rule
|
|
195
|
-
* @param {String} id
|
|
196
|
-
* @returns {validator}
|
|
197
|
-
*/
|
|
198
|
-
removeValidation(id) {
|
|
199
|
-
validations.delete(id);
|
|
200
|
-
return this;
|
|
201
|
-
},
|
|
202
|
-
|
|
203
|
-
/**
|
|
204
|
-
* Removes all validation rules
|
|
205
|
-
* @returns {validator}
|
|
206
|
-
*/
|
|
207
|
-
removeValidations() {
|
|
208
|
-
validations.clear();
|
|
209
|
-
|
|
210
|
-
return this;
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
config = _.defaults(_.clone(config) || {}, defaults);
|
|
215
|
-
_.forEach(config.validations, validator.addValidation);
|
|
216
|
-
|
|
217
|
-
return validator;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
export default validatorFactory;
|
|
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) 2019 Open Assessment Technologies SA ;
|
|
17
|
+
*/
|
|
18
|
+
/**
|
|
19
|
+
* Simple validator engine. Apply a collection of validation rules on a value.
|
|
20
|
+
* @author Jean-Sébastien Conan <jean-sebastien@taotesting.com>
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
import _ from 'lodash';
|
|
24
|
+
import __ from 'i18n';
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @typedef {Object} validationRule Defines a validation rule to apply on a value.
|
|
28
|
+
* @property {String} id - The validation identifier
|
|
29
|
+
* @property {RegExp|Function|String|String[]} predicate - The validation rule to apply on the value.
|
|
30
|
+
* It could be either a RegExp or a Function.
|
|
31
|
+
* The function must return a boolean value,
|
|
32
|
+
* it can wrap it in a Promise too.
|
|
33
|
+
* @property {String} [message] - The message returned in case of failed validation
|
|
34
|
+
* @property {Number} [precedence] - The precedence order for sorting
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @typedef {Object} validatorConfig Defines the config entries available to setup a form widget validator
|
|
39
|
+
* @property {validationRule[]} validations - The list of validations to apply
|
|
40
|
+
* @property {String} defaultMessage - The default message returned when a validation fails and no message is set
|
|
41
|
+
*/
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Defaults config for the validator
|
|
45
|
+
* @type {validatorConfig}
|
|
46
|
+
*/
|
|
47
|
+
const defaults = {
|
|
48
|
+
defaultMessage: __('Invalid input')
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Validates a value
|
|
53
|
+
* @param {String} value
|
|
54
|
+
* @param {validationRule} validation
|
|
55
|
+
* @returns {Boolean|Promise}
|
|
56
|
+
*/
|
|
57
|
+
function validateValue(value, validation) {
|
|
58
|
+
if (validation.predicate instanceof RegExp) {
|
|
59
|
+
return validation.predicate.test(value);
|
|
60
|
+
} else if (_.isFunction(validation.predicate)) {
|
|
61
|
+
return validation.predicate(value);
|
|
62
|
+
} else if (_.isArray(validation.predicate)) {
|
|
63
|
+
return _.indexOf(validation.predicate, value) > -1;
|
|
64
|
+
}
|
|
65
|
+
return validation.predicate === value;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Compares validation rules
|
|
70
|
+
* @param {validationRule} a
|
|
71
|
+
* @param {validationRule} b
|
|
72
|
+
* @returns {Number}
|
|
73
|
+
*/
|
|
74
|
+
function compareRule(a, b) {
|
|
75
|
+
return ((a && a.precedence) || 0) - ((b && b.precedence) || 0);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Creates a simple form widget's validator.
|
|
80
|
+
* It manages and applies a collection of validation rules on a value.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* const validator = validatorFactory({
|
|
84
|
+
* defaultMessage: 'An error occurred!',
|
|
85
|
+
* validations: [{
|
|
86
|
+
* id: 'numeric',
|
|
87
|
+
* message: 'This field must be numerical',
|
|
88
|
+
* predicate: /^\d+$/,
|
|
89
|
+
* precedence: 2
|
|
90
|
+
* }, {
|
|
91
|
+
* id: 'required',
|
|
92
|
+
* message: 'This field is required',
|
|
93
|
+
* predicate: value => value.length > 0,
|
|
94
|
+
* precedence: 1
|
|
95
|
+
* }, {
|
|
96
|
+
* id: 'domain',
|
|
97
|
+
* predicate: value => (parseInt(value, 10) || 0) <= 10,
|
|
98
|
+
* precedence: 3
|
|
99
|
+
* }]
|
|
100
|
+
* });
|
|
101
|
+
*
|
|
102
|
+
* validator.validate('100')
|
|
103
|
+
* .then(() => {
|
|
104
|
+
* // ...
|
|
105
|
+
* })
|
|
106
|
+
* .catch(messages => {
|
|
107
|
+
* // ...
|
|
108
|
+
* });
|
|
109
|
+
*
|
|
110
|
+
* @param {validatorConfig} config
|
|
111
|
+
* @param {validationRule[]} [config.validations] - The list of validation rules to apply
|
|
112
|
+
* @param {String} [config.defaultMessage] - The default message returned when a validation fails and no message is set
|
|
113
|
+
* @returns {validator}
|
|
114
|
+
*/
|
|
115
|
+
function validatorFactory(config) {
|
|
116
|
+
const validations = new Map();
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* @typedef {Object} validator
|
|
120
|
+
*/
|
|
121
|
+
const validator = {
|
|
122
|
+
/**
|
|
123
|
+
* Runs all validation rules on a value
|
|
124
|
+
* @param {String} value
|
|
125
|
+
* @returns {Promise} Will provide the list of error messages if the validation failed.
|
|
126
|
+
*/
|
|
127
|
+
validate(value) {
|
|
128
|
+
const rules = this.getValidations();
|
|
129
|
+
rules.sort(compareRule);
|
|
130
|
+
|
|
131
|
+
return Promise
|
|
132
|
+
.all(rules.map(validation => Promise.resolve(validateValue(value, validation))))
|
|
133
|
+
.then(results => {
|
|
134
|
+
const errors = _.reduce(results, (list, result, index) => {
|
|
135
|
+
if (!result) {
|
|
136
|
+
list.push(rules[index].message || config.defaultMessage);
|
|
137
|
+
}
|
|
138
|
+
return list;
|
|
139
|
+
}, []);
|
|
140
|
+
|
|
141
|
+
if (errors.length) {
|
|
142
|
+
return Promise.reject(errors);
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
},
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Adds a validation rule
|
|
149
|
+
* @param {validationRule} validation
|
|
150
|
+
* @returns {validator}
|
|
151
|
+
* @throws {TypeError} if the validation object is not valid
|
|
152
|
+
*/
|
|
153
|
+
addValidation(validation) {
|
|
154
|
+
if (!_.isPlainObject(validation)) {
|
|
155
|
+
throw new TypeError('The validation must be an object');
|
|
156
|
+
}
|
|
157
|
+
if (!_.isString(validation.id) || !validation.id) {
|
|
158
|
+
throw new TypeError('The validation must contain an identifier');
|
|
159
|
+
}
|
|
160
|
+
if (!_.isFunction(validation.predicate) &&
|
|
161
|
+
!_.isRegExp(validation.predicate) &&
|
|
162
|
+
!_.isString(validation.predicate) &&
|
|
163
|
+
!_.isArray(validation.predicate)) {
|
|
164
|
+
throw new TypeError('The validation must provide a predicate');
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
validations.set(validation.id, validation);
|
|
168
|
+
|
|
169
|
+
return this;
|
|
170
|
+
},
|
|
171
|
+
|
|
172
|
+
/**
|
|
173
|
+
* Gets a validation rule by its identifier
|
|
174
|
+
* @param {String} id
|
|
175
|
+
* @returns {validationRule|null}
|
|
176
|
+
*/
|
|
177
|
+
getValidation(id) {
|
|
178
|
+
return validations.get(id) || null;
|
|
179
|
+
},
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* Gets the list of validation rules.
|
|
183
|
+
* @returns {validationRule[]}
|
|
184
|
+
*/
|
|
185
|
+
getValidations() {
|
|
186
|
+
const list = [];
|
|
187
|
+
for(let validation of validations.values()) {
|
|
188
|
+
list.push(validation);
|
|
189
|
+
}
|
|
190
|
+
return list;
|
|
191
|
+
},
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Removes a validation rule
|
|
195
|
+
* @param {String} id
|
|
196
|
+
* @returns {validator}
|
|
197
|
+
*/
|
|
198
|
+
removeValidation(id) {
|
|
199
|
+
validations.delete(id);
|
|
200
|
+
return this;
|
|
201
|
+
},
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Removes all validation rules
|
|
205
|
+
* @returns {validator}
|
|
206
|
+
*/
|
|
207
|
+
removeValidations() {
|
|
208
|
+
validations.clear();
|
|
209
|
+
|
|
210
|
+
return this;
|
|
211
|
+
}
|
|
212
|
+
};
|
|
213
|
+
|
|
214
|
+
config = _.defaults(_.clone(config) || {}, defaults);
|
|
215
|
+
_.forEach(config.validations, validator.addValidation);
|
|
216
|
+
|
|
217
|
+
return validator;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export default validatorFactory;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
/*
|
|
2
|
-
Usage:
|
|
3
|
-
- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,
|
|
4
|
-
if 3 colors used then the position of each will be 33,33%
|
|
5
|
-
- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,
|
|
6
|
-
first param - color, second - position. Also you can use px or other valid units for set position.
|
|
1
|
+
/*
|
|
2
|
+
Usage:
|
|
3
|
+
- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,
|
|
4
|
+
if 3 colors used then the position of each will be 33,33%
|
|
5
|
+
- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,
|
|
6
|
+
first param - color, second - position. Also you can use px or other valid units for set position.
|
|
7
7
|
*/
|
|
8
8
|
/* based on "visually-hidden" mixin in LDS for accessibility goals */
|
|
9
9
|
/* Do not edit */
|
|
@@ -60,5 +60,5 @@ Usage:
|
|
|
60
60
|
border-color: #ba122b;
|
|
61
61
|
color: #ba122b;
|
|
62
62
|
}
|
|
63
|
-
|
|
63
|
+
|
|
64
64
|
/*# sourceMappingURL=widget.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../scss/inc/_functions.scss","../scss/widget.scss","../../../../scss/inc/fonts/_tao-icon-vars.scss","../../../../scss/inc/_colors.scss","../../../../scss/inc/_variables.scss"],"names":[],"mappings":"AAaA;;;;;;CCPC;AD2QD,oEAAA;AEjRA,gBAAA;ADEA;IACI,cAAc;AAQlB;;AATA;IAIQ,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,mBAAmB;AAS3B;;AAhBA;IAWQ,qBAAqB;IACrB,gBAAgB;IAChB,UAAU;AASlB;;AAtBA;ID2GI,sBAD6B;IAE7B,kBAAkB;IAClB,0BAA0B;IC5FlB,uBAAuB;IACvB,WECI;IFAJ,0CGb+B;IHc/B,YAAY;IACZ,WAAW;AAYvB;;AAjCA;IAwBY,aAAa;IACb,YAAY;AAaxB;;AAtCA;IA6BY,WEVI;IFWJ,qBAAqB;IACrB,0CGzB+B;IH0B/B,YAAY;IACZ,WAAW;AAavB;;AA9CA;IAoCgB,gBAAgB;AAchC;;AAlDA;;;;;IA+CgB,qBE5CQ;IF6CR,cE7CQ;AFwDxB","file":"widget.css","sourcesContent":["@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix:'') {\n @each $icon in $iconList {\n #{$prefix}#{$icon} {\n background-position: $x * 1px $y * 1px;\n }\n @if $direction == 'x' {\n $x: $x - 16;\n } @else {\n $y: $y - 16;\n }\n }\n}\n\n/*\nUsage:\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\n if 3 colors used then the position of each will be 33,33%\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\n first param - color, second - position. Also you can use px or other valid units for set position.\n*/\n@mixin linear-gradient($colorList, $direction: 'to right') {\n $percentage: 0;\n $units: '%';\n $count: length($colorList);\n $increment: 100 / ($count - 1);\n $css: #{$direction + ', '};\n $sep: ', ';\n @each $colorItem in $colorList {\n $color: $colorItem;\n @if (length($colorItem) > 1) {\n $color: nth($colorItem, 1);\n $percentage: nth($colorItem, 2);\n $units: '';\n }\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\n $sep: '';\n }\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\n $percentage: $percentage + $increment;\n }\n background: linear-gradient( #{$css} );\n}\n\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\n $gridPx: 840;\n $rawSpanPx: (($gridPx - ($numCols * $gutter)) / $numCols);\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\n $spanPercent: widthPerc($spanPx, $gridPx);\n $marginPercent: widthPerc($gutter, $gridPx);\n margin-left: $marginPercent;\n width: $spanPercent;\n}\n\n\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\n @if $whatToPrefix == 'property' {\n @each $prefix in $prefixes {\n #{$prefix + $property}: #{$value};\n }\n }\n @else if $whatToPrefix == 'value' {\n @each $prefix in $prefixes {\n #{$property}: #{$prefix + $value};\n }\n }\n}\n@mixin flex-container($wrapBehavior: nowrap, $direction : row) {\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\n\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\n\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\n}\n\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\n\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\n flex-item-align: stretch;\n -ms-flex-item-align: stretch;\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\n\n // if both, min width and width are set, width will win this conflict\n @if ($width == auto) {\n @if ($minWidth != 1) {\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\n }\n @else {\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\n // for a discussion auto vs. main-size\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\n }\n }\n @else {\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\n }\n}\n\n\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, .2)) {\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\n}\n\n@mixin simple-border($color: #ddd) {\n border: 1px solid $color;\n border-radius: 2px;\n -webkit-border-radius: 2px;\n}\n\n@mixin border-radius($radius: 2) {\n -moz-border-radius: $radius * 1px;\n -webkit-border-radius: $radius * 1px;\n border-radius: $radius * 1px;\n}\n\n@mixin border-radius-top($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-left($radius: 2) {\n -webkit-border-top-left-radius: $radius * 1px;\n -moz-border-radius-topleft: $radius * 1px;\n border-top-left-radius: $radius * 1px;\n}\n\n@mixin border-radius-top-right($radius: 2) {\n -webkit-border-top-right-radius: $radius * 1px;\n -moz-border-radius-topright: $radius * 1px;\n border-top-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-right($radius: 2) {\n -webkit-border-bottom-right-radius: $radius * 1px;\n -moz-border-radius-bottomright: $radius * 1px;\n border-bottom-right-radius: $radius * 1px;\n}\n\n@mixin border-radius-bottom-left($radius: 2) {\n -webkit-border-bottom-left-radius: $radius * 1px;\n -moz-border-radius-bottomleft: $radius * 1px;\n border-bottom-left-radius: $radius * 1px;\n}\n\n@mixin border-box() {\n -moz-box-sizing: border-box;\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n}\n\n@function whiten($color, $white: 0.3) {\n @return mix(#fff, $color, ($white * 100) * 1%);\n}\n\n@function blacken($color, $black: 0.3) {\n @return mix(#000, $color, ($black * 100) * 1%);\n}\n\n@function widthPerc($colWidth, $context) {\n @return ($colWidth * 100 / $context) * 1%\n}\n\n@function remDist($fontSizePx) {\n @return ($fontSizePx / 10) * 1rem\n}\n\n@function black($alpha: 1) {\n @return (rgba(0, 0, 0, $alpha))\n}\n\n@function white($alpha: 1) {\n @return (rgba(255, 255, 255, $alpha))\n}\n\n@mixin font-size($remPx, $important: false) {\n @if $important == true {\n font-size: ($remPx) * 1px !important;\n font-size: ($remPx / 10) * 1rem !important;\n }\n @else {\n font-size: ($remPx) * 1px;\n font-size: ($remPx / 10) * 1rem;\n }\n}\n\n\n@mixin keyframes($name) {\n @-o-keyframes #{$name} { @content };\n @-moz-keyframes #{$name} { @content };\n @-webkit-keyframes #{$name} { @content };\n @keyframes #{$name} { @content };\n}\n\n\n@mixin animation($value, $type:'') {\n $animation: animation;\n @if $type != '' {\n $animation: $animation + '-' + $type;\n }\n @include vendor-prefix($animation, $value, property);\n}\n\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\n///\n/// @param {property} [$type = all] the CSS property to apply the transition to\n/// @param {time} [$duration = .5s] the transition property\n/// @param {timing-function} [$effect = ease-out] the transition property\n@mixin transition($type : all, $duration : 0.5s, $effect : ease-out, $delay : 0s){\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\n}\n\n@mixin fade($duration: 1s){\n\n @include keyframes(fade) {\n 0% {opacity:0;}\n 50% {opacity:1;}\n 100% {opacity:0;}\n }\n\n @include vendor-prefix(animation, fade 1s forwards, property);\n}\n\n@mixin repeat(){\n @include animation(infinite, iteration-count);\n}\n\n@mixin largeHeading() {\n @include font-size(20);\n font-family: $headingFont;\n font-style: normal;\n}\n\n@mixin disableSelect() {\n @include vendor-prefix(user-select, none, property);\n}\n\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\n@mixin visuallyHidden() {\n position: absolute;\n width: 1px;\n height: 1px;\n overflow: hidden;\n clip: rect(1px, 1px, 1px, 1px);\n margin: 0;\n padding: 0;\n}\n","@import 'inc/bootstrap';\n\n.form-widget {\n margin: 10px 0;\n\n .widget-label {\n display: inline-block;\n margin-top: 8px;\n width: 34%;\n vertical-align: top;\n }\n\n .widget-field {\n display: inline-block;\n min-width: 150px;\n width: 65%;\n\n .widget-input, .widget-input-inline {\n @include simple-border();\n background-color: white;\n color: $textColor;\n font-family: $regularFont;\n padding: 8px;\n width: 100%;\n }\n .widget-input-inline {\n font: inherit;\n height: 36px;\n }\n\n .check-box-input, .radio-box-input {\n color: $textColor;\n display: inline-block;\n font-family: $regularFont;\n padding: 4px;\n width: 100%;\n\n .option {\n padding-top: 4px;\n }\n }\n }\n\n &.error,\n &.invalid {\n .widget-field {\n .widget-input,\n .widget-input-inline,\n .check-box-input {\n border-color: $error;\n color: $error;\n }\n }\n }\n}\n\n/*# sourceMappingURL=widget.css.map */","/* Do not edit */@mixin tao-icon-setup {\n /* use !important to prevent issues with browser extensions that change fonts */\n font-family: 'tao' !important;\n speak: never;\n font-style: normal;\n font-weight: normal;\n font-variant: normal;\n text-transform: none;\n line-height: 1;\n\n /* Better Font Rendering =========== */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n@mixin icon-furigana { content: \"\\e919\"; }\n@mixin icon-add-subsection { content: \"\\e918\"; }\n@mixin icon-info-bare { content: \"\\e923\"; }\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\n@mixin icon-bookmark { content: \"\\e921\"; }\n@mixin icon-indicator { content: \"\\e920\"; }\n@mixin icon-wrap-inline { content: \"\\e915\"; }\n@mixin icon-wrap-left { content: \"\\e916\"; }\n@mixin icon-wrap-right { content: \"\\e917\"; }\n@mixin icon-offline { content: \"\\e913\"; }\n@mixin icon-online { content: \"\\e914\"; }\n@mixin icon-tab { content: \"\\e90d\"; }\n@mixin icon-untab { content: \"\\e90e\"; }\n@mixin icon-multi-select { content: \"\\e90b\"; }\n@mixin icon-clipboard { content: \"\\e90a\"; }\n@mixin icon-filebox { content: \"\\e909\"; }\n@mixin icon-click-to-speak { content: \"\\e907\"; }\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\n@mixin icon-microphone { content: \"\\f130\"; }\n@mixin icon-microphone-off { content: \"\\f131\"; }\n@mixin icon-disconnect { content: \"\\e905\"; }\n@mixin icon-connect { content: \"\\e906\"; }\n@mixin icon-eliminate { content: \"\\e904\"; }\n@mixin icon-wheelchair { content: \"\\e903\"; }\n@mixin icon-text-marker { content: \"\\e902\"; }\n@mixin icon-unshield { content: \"\\e32a\"; }\n@mixin icon-shield { content: \"\\e8e8\"; }\n@mixin icon-tree { content: \"\\e6b4\"; }\n@mixin icon-home { content: \"\\e6b3\"; }\n@mixin icon-shared-file { content: \"\\e6b2\"; }\n@mixin icon-end-attempt { content: \"\\e603\"; }\n@mixin icon-icon { content: \"\\f1c5\"; }\n@mixin icon-radio-bg { content: \"\\e600\"; }\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\n@mixin icon-tag { content: \"\\e602\"; }\n@mixin icon-style { content: \"\\e604\"; }\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\n@mixin icon-property-advanced { content: \"\\e606\"; }\n@mixin icon-property-add { content: \"\\e607\"; }\n@mixin icon-repository-add { content: \"\\e608\"; }\n@mixin icon-repository-remove { content: \"\\e609\"; }\n@mixin icon-repository { content: \"\\e60a\"; }\n@mixin icon-result-server { content: \"\\e60b\"; }\n@mixin icon-folder { content: \"\\e60c\"; }\n@mixin icon-folder-open { content: \"\\e60d\"; }\n@mixin icon-left { content: \"\\e60e\"; }\n@mixin icon-right { content: \"\\e60f\"; }\n@mixin icon-up { content: \"\\e610\"; }\n@mixin icon-down { content: \"\\e611\"; }\n@mixin icon-undo { content: \"\\e612\"; }\n@mixin icon-redo { content: \"\\e613\"; }\n@mixin icon-screen { content: \"\\e614\"; }\n@mixin icon-laptop { content: \"\\e615\"; }\n@mixin icon-tablet { content: \"\\e616\"; }\n@mixin icon-phone { content: \"\\e617\"; }\n@mixin icon-move { content: \"\\e618\"; }\n@mixin icon-bin { content: \"\\e619\"; }\n@mixin icon-shuffle { content: \"\\e61a\"; }\n@mixin icon-print { content: \"\\e61b\"; }\n@mixin icon-tools { content: \"\\e61c\"; }\n@mixin icon-settings { content: \"\\e61d\"; }\n@mixin icon-video { content: \"\\e61e\"; }\n@mixin icon-find { content: \"\\e61f\"; }\n@mixin icon-image { content: \"\\e620\"; }\n@mixin icon-edit { content: \"\\e621\"; }\n@mixin icon-document { content: \"\\e622\"; }\n@mixin icon-resize-grid { content: \"\\e623\"; }\n@mixin icon-resize { content: \"\\e624\"; }\n@mixin icon-help { content: \"\\e625\"; }\n@mixin icon-mobile-menu { content: \"\\e626\"; }\n@mixin icon-fix { content: \"\\e627\"; }\n@mixin icon-unlock { content: \"\\e628\"; }\n@mixin icon-lock { content: \"\\e629\"; }\n@mixin icon-ul { content: \"\\e62a\"; }\n@mixin icon-ol { content: \"\\e62b\"; }\n@mixin icon-email { content: \"\\e62c\"; }\n@mixin icon-download { content: \"\\e62d\"; }\n@mixin icon-logout { content: \"\\e62e\"; }\n@mixin icon-login { content: \"\\e62f\"; }\n@mixin icon-spinner { content: \"\\e630\"; }\n@mixin icon-preview { content: \"\\e631\"; }\n@mixin icon-external { content: \"\\e632\"; }\n@mixin icon-time { content: \"\\e633\"; }\n@mixin icon-save { content: \"\\e634\"; }\n@mixin icon-warning { content: \"\\e635\"; }\n@mixin icon-add { content: \"\\e636\"; }\n@mixin icon-error { content: \"\\e900\"; }\n@mixin icon-close { content: \"\\e637\"; }\n@mixin icon-success { content: \"\\e638\"; }\n@mixin icon-remove { content: \"\\e639\"; }\n@mixin icon-info { content: \"\\e63a\"; }\n@mixin icon-danger { content: \"\\e63b\"; }\n@mixin icon-users { content: \"\\e63c\"; }\n@mixin icon-user { content: \"\\e63d\"; }\n@mixin icon-test-taker { content: \"\\e63e\"; }\n@mixin icon-test-takers { content: \"\\e63f\"; }\n@mixin icon-item { content: \"\\e640\"; }\n@mixin icon-test { content: \"\\e641\"; }\n@mixin icon-delivery { content: \"\\e642\"; }\n@mixin icon-eye-slash { content: \"\\e643\"; }\n@mixin icon-result { content: \"\\e644\"; }\n@mixin icon-delivery-small { content: \"\\e645\"; }\n@mixin icon-upload { content: \"\\e646\"; }\n@mixin icon-result-small { content: \"\\e647\"; }\n@mixin icon-mobile-preview { content: \"\\e648\"; }\n@mixin icon-extension { content: \"\\e649\"; }\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\n@mixin icon-table { content: \"\\e64d\"; }\n@mixin icon-anchor { content: \"\\e64e\"; }\n@mixin icon-unlink { content: \"\\e64f\"; }\n@mixin icon-link { content: \"\\e650\"; }\n@mixin icon-right-left { content: \"\\e651\"; }\n@mixin icon-left-right { content: \"\\e652\"; }\n@mixin icon-special-character { content: \"\\e653\"; }\n@mixin icon-source { content: \"\\e654\"; }\n@mixin icon-new-page { content: \"\\e655\"; }\n@mixin icon-templates { content: \"\\e656\"; }\n@mixin icon-cut { content: \"\\e657\"; }\n@mixin icon-replace { content: \"\\e658\"; }\n@mixin icon-copy { content: \"\\e659\"; }\n@mixin icon-paste { content: \"\\e65a\"; }\n@mixin icon-select-all { content: \"\\e65b\"; }\n@mixin icon-paste-text { content: \"\\e65c\"; }\n@mixin icon-paste-word { content: \"\\e65d\"; }\n@mixin icon-bold { content: \"\\e65e\"; }\n@mixin icon-italic { content: \"\\e65f\"; }\n@mixin icon-underline { content: \"\\e660\"; }\n@mixin icon-subscript { content: \"\\e661\"; }\n@mixin icon-superscript { content: \"\\e662\"; }\n@mixin icon-strike-through { content: \"\\e663\"; }\n@mixin icon-decrease-indent { content: \"\\e664\"; }\n@mixin icon-increase-indent { content: \"\\e665\"; }\n@mixin icon-block-quote { content: \"\\e666\"; }\n@mixin icon-div-container { content: \"\\e667\"; }\n@mixin icon-align-left { content: \"\\e668\"; }\n@mixin icon-center { content: \"\\e669\"; }\n@mixin icon-align-right { content: \"\\e66a\"; }\n@mixin icon-justify { content: \"\\e66b\"; }\n@mixin icon-choice { content: \"\\e66c\"; }\n@mixin icon-inline-choice { content: \"\\e66d\"; }\n@mixin icon-match { content: \"\\e66e\"; }\n@mixin icon-associate { content: \"\\e66f\"; }\n@mixin icon-media { content: \"\\e670\"; }\n@mixin icon-graphic-order { content: \"\\e671\"; }\n@mixin icon-hotspot { content: \"\\e672\"; }\n@mixin icon-graphic-gap { content: \"\\e673\"; }\n@mixin icon-graphic-associate { content: \"\\e674\"; }\n@mixin icon-select-point { content: \"\\e675\"; }\n@mixin icon-pin { content: \"\\e676\"; }\n@mixin icon-import { content: \"\\e677\"; }\n@mixin icon-export { content: \"\\e678\"; }\n@mixin icon-move-item { content: \"\\e679\"; }\n@mixin icon-meta-data { content: \"\\e67a\"; }\n@mixin icon-slider { content: \"\\e67b\"; }\n@mixin icon-summary-report { content: \"\\e67c\"; }\n@mixin icon-text-entry { content: \"\\e67d\"; }\n@mixin icon-extended-text { content: \"\\e67e\"; }\n@mixin icon-eraser { content: \"\\e67f\"; }\n@mixin icon-row { content: \"\\e680\"; }\n@mixin icon-column { content: \"\\e681\"; }\n@mixin icon-text-color { content: \"\\e682\"; }\n@mixin icon-background-color { content: \"\\e683\"; }\n@mixin icon-spell-check { content: \"\\e684\"; }\n@mixin icon-polygon { content: \"\\e685\"; }\n@mixin icon-rectangle { content: \"\\e686\"; }\n@mixin icon-gap-match { content: \"\\e687\"; }\n@mixin icon-order { content: \"\\e688\"; }\n@mixin icon-hottext { content: \"\\e689\"; }\n@mixin icon-free-form { content: \"\\e68a\"; }\n@mixin icon-step-backward { content: \"\\e68b\"; }\n@mixin icon-fast-backward { content: \"\\e68c\"; }\n@mixin icon-backward { content: \"\\e68d\"; }\n@mixin icon-play { content: \"\\e68e\"; }\n@mixin icon-pause { content: \"\\e68f\"; }\n@mixin icon-stop { content: \"\\e690\"; }\n@mixin icon-forward { content: \"\\e691\"; }\n@mixin icon-fast-forward { content: \"\\e692\"; }\n@mixin icon-step-forward { content: \"\\e693\"; }\n@mixin icon-ellipsis { content: \"\\e694\"; }\n@mixin icon-circle { content: \"\\e695\"; }\n@mixin icon-target { content: \"\\e696\"; }\n@mixin icon-guide-arrow { content: \"\\e697\"; }\n@mixin icon-range-slider-right { content: \"\\e698\"; }\n@mixin icon-range-slider-left { content: \"\\e699\"; }\n@mixin icon-radio-checked { content: \"\\e69a\"; }\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\n@mixin icon-checkbox { content: \"\\e69b\"; }\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\n@mixin icon-result-nok { content: \"\\e69e\"; }\n@mixin icon-result-ok { content: \"\\e69f\"; }\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\n@mixin icon-filter { content: \"\\e6a1\"; }\n@mixin icon-translate { content: \"\\e6a2\"; }\n@mixin icon-eject { content: \"\\e6a3\"; }\n@mixin icon-continue { content: \"\\e6a4\"; }\n@mixin icon-radio { content: \"\\e6a5\"; }\n@mixin icon-sphere { content: \"\\e6a6\"; }\n@mixin icon-reset { content: \"\\e6a7\"; }\n@mixin icon-smaller { content: \"\\e6a8\"; }\n@mixin icon-larger { content: \"\\e6a9\"; }\n@mixin icon-clock { content: \"\\e6aa\"; }\n@mixin icon-font { content: \"\\e6ab\"; }\n@mixin icon-maths { content: \"\\e6ac\"; }\n@mixin icon-grip { content: \"\\e6ad\"; }\n@mixin icon-rubric { content: \"\\e6ae\"; }\n@mixin icon-audio { content: \"\\e6af\"; }\n@mixin icon-grip-h { content: \"\\e6b0\"; }\n@mixin icon-magicwand { content: \"\\e6b1\"; }\n@mixin icon-loop { content: \"\\ea2e\"; }\n@mixin icon-calendar { content: \"\\e953\"; }\n@mixin icon-reload { content: \"\\e984\"; }\n@mixin icon-speed { content: \"\\e9a6\"; }\n@mixin icon-volume { content: \"\\ea27\"; }\n@mixin icon-contrast { content: \"\\e9d5\"; }\n@mixin icon-headphones { content: \"\\e910\"; }\n@mixin icon-compress { content: \"\\f066\"; }\n@mixin icon-map-o { content: \"\\f278\"; }\n@mixin icon-variable { content: \"\\e908\"; }\n@mixin icon-tooltip { content: \"\\e90c\"; }\n@mixin icon-globe { content: \"\\e9c9\"; }\n@mixin icon-highlighter { content: \"\\e90f\"; }\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\n@mixin icon-play-from-here { content: \"\\e912\"; }\n","// buttons and alerts\n$success: rgb(14, 145, 75);\n$info: rgb(14, 93, 145);\n$warning: rgb(216, 174, 91);\n$danger: rgb(201, 96, 67);\n$error: rgb(186, 18, 43);\n$activeInteraction: rgb(195, 90, 19);\n\n// corporate identity\n$logoRed: rgb(186, 18, 43);\n$grey: rgb(173, 161, 148);\n$darkBlueGrey: rgb(164, 187, 197);\n$mediumBlueGrey: rgb(193, 212, 220);\n$lightBlueGrey: rgb(228, 236, 239);\n$brownRedGrey: rgb(154, 137, 123);\n$darkBrown: rgb(111, 99, 89);\n$websiteBorder: rgb(141, 148, 158);\n\n// ui elements, these should only variations of the above\n// naming convention: jQueryUi theme roller -> camelCase\n\n$textColor: #222;\n$textHighlight: white;\n$textSecondary: #737373;\n$shadowColor: rgba(0, 0, 0, 0.25);\n\n$modalBorderColor: #dddfe2;\n$searchInp: #dddfe2;\n\n$uiGeneralContentBg: white();\n$uiGeneralContentBorder: #ddd;\n\n$uiHeaderBg: #d4d5d7;\n\n$uiClickableDefaultBg: #f3f1ef;\n$uiClickableHoverBg: whiten($info, 0.2);\n//$uiClickableActiveBg: $uiHeaderBg;\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\n//$uiClickableActiveBg: #aaa;\n\n$uiSelectableSelectedBg: whiten($info, 0.2);\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\n$uiSelectableHoverBg: whiten($info, 0.9);\n\n$uiOverlay: $lightBlueGrey;\n\n// new layout. Implemented now only for review panel\n$uiReviewPanelBg: #f2f2f2;\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\n\n// sidebars etc.\n$canvas: mix(#fff, $grey, 85%);\n\n// colors taken from feedback.scss\n$successBgColor: whiten($success, 0.8);\n$successBorderColor: whiten($success, 0.1);\n\n$infoBgColor: whiten($info, 0.8);\n$infoBorderColor: whiten($info, 0.1);\n\n$warningBgColor: whiten($warning, 0.8);\n$warningBorderColor: whiten($warning, 0.1);\n\n$dangerBgColor: whiten($danger, 0.8);\n$dangerBorderColor: whiten($danger, 0.1);\n\n$errorBgColor: whiten($error, 0.8);\n$errorBorderColor: whiten($error, 0.1);\n\n$darkBar: rgb(51, 51, 51);\n$darkBarTxt: rgb(230, 230, 230);\n$darkBarIcon: rgb(220, 220, 220);\n\n$actionLinkColor: #276d9b;\n$actionLinkHoverColor: #4f83a7;\n\n$colorWheel-01: #c3ba13;\n$colorWheel-02: #84a610;\n$colorWheel-03: #2b8e0e;\n$colorWheel-04: #0f9787;\n$colorWheel-05: #0e5d91;\n$colorWheel-06: #0d2689;\n$colorWheel-07: #400d83;\n$colorWheel-08: #960e7d;\n$colorWheel-09: #ba122b;\n$colorWheel-10: #c34713;\n$colorWheel-11: #c36f13;\n$colorWheel-12: #c39413;\n","$sidebarWidth: 180;\n$sidebarGutter: 0;\n$toolbarHeight: 50;\n$treeSidebar: 280;\n\n// fonts\n$fontPath : 'font/' !default;\n$monospaceFont: Consolas, 'Andale Mono WT', 'Andale Mono', 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Liberation Mono', 'Nimbus Mono L', Monaco, 'Courier New', Courier, monospace;\n$regularFont: 'Source Sans Pro', sans-serif;\n$headingFont: 'Source Sans Pro', sans-serif;\n\n\n%clearfix {\n &:before, &:after {\n content: \" \";\n display: table;\n }\n &:after {\n clear: both;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../scss/inc/_functions.scss","../scss/widget.scss","../../../../scss/inc/fonts/_tao-icon-vars.scss","../../../../scss/inc/_colors.scss","../../../../scss/inc/_variables.scss"],"names":[],"mappings":"AAaA;;;;;;CCPC;AD2QD,oEAAA;AEjRA,gBAAA;ADEA;IACI,cAAc;AAQlB;;AATA;IAIQ,qBAAqB;IACrB,eAAe;IACf,UAAU;IACV,mBAAmB;AAS3B;;AAhBA;IAWQ,qBAAqB;IACrB,gBAAgB;IAChB,UAAU;AASlB;;AAtBA;ID2GI,sBAD6B;IAE7B,kBAAkB;IAClB,0BAA0B;IC5FlB,uBAAuB;IACvB,WECI;IFAJ,0CGb+B;IHc/B,YAAY;IACZ,WAAW;AAYvB;;AAjCA;IAwBY,aAAa;IACb,YAAY;AAaxB;;AAtCA;IA6BY,WEVI;IFWJ,qBAAqB;IACrB,0CGzB+B;IH0B/B,YAAY;IACZ,WAAW;AAavB;;AA9CA;IAoCgB,gBAAgB;AAchC;;AAlDA;;;;;IA+CgB,qBE5CQ;IF6CR,cE7CQ;AFwDxB","file":"widget.css","sourcesContent":["@mixin iterate-sprite($iconList, $x, $y, $direction, $prefix:'') {\r\n @each $icon in $iconList {\r\n #{$prefix}#{$icon} {\r\n background-position: $x * 1px $y * 1px;\r\n }\r\n @if $direction == 'x' {\r\n $x: $x - 16;\r\n } @else {\r\n $y: $y - 16;\r\n }\r\n }\r\n}\r\n\r\n/*\r\nUsage:\r\n- linear-gradient((color1, color2, color3)) - returns linear-gradient with evenly distributed colors,\r\n if 3 colors used then the position of each will be 33,33%\r\n- linear-gradient((color1 0%, color2 30%, color3 80%)) - returns linear-gradient with manually distributed colors,\r\n first param - color, second - position. Also you can use px or other valid units for set position.\r\n*/\r\n@mixin linear-gradient($colorList, $direction: 'to right') {\r\n $percentage: 0;\r\n $units: '%';\r\n $count: length($colorList);\r\n $increment: 100 / ($count - 1);\r\n $css: #{$direction + ', '};\r\n $sep: ', ';\r\n @each $colorItem in $colorList {\r\n $color: $colorItem;\r\n @if (length($colorItem) > 1) {\r\n $color: nth($colorItem, 1);\r\n $percentage: nth($colorItem, 2);\r\n $units: '';\r\n }\r\n @if ($percentage >= 100 or index($colorList, $colorItem) == $count) {\r\n $sep: '';\r\n }\r\n $css: #{$css + $color + ' ' + $percentage + $units + $sep};\r\n $percentage: $percentage + $increment;\r\n }\r\n background: linear-gradient( #{$css} );\r\n}\r\n\r\n@mixin grid-unit($span, $numCols: 12, $gutter: 0) {\r\n $gridPx: 840;\r\n $rawSpanPx: (($gridPx - ($numCols * $gutter)) / $numCols);\r\n $spanPx: $rawSpanPx * $span + (($span - 1) * $gutter);\r\n $spanPercent: widthPerc($spanPx, $gridPx);\r\n $marginPercent: widthPerc($gutter, $gridPx);\r\n margin-left: $marginPercent;\r\n width: $spanPercent;\r\n}\r\n\r\n\r\n@mixin vendor-prefix($property, $value, $whatToPrefix: property, $prefixes: (-webkit-, -moz-, -ms-, -o-, '')) {\r\n @if $whatToPrefix == 'property' {\r\n @each $prefix in $prefixes {\r\n #{$prefix + $property}: #{$value};\r\n }\r\n }\r\n @else if $whatToPrefix == 'value' {\r\n @each $prefix in $prefixes {\r\n #{$property}: #{$prefix + $value};\r\n }\r\n }\r\n}\r\n@mixin flex-container($wrapBehavior: nowrap, $direction : row) {\r\n @include vendor-prefix(display, flex, value, (-ms-, -webkit-, ''));\r\n\r\n @include vendor-prefix(flex-direction, $direction, property, (-ms-, -webkit-, ''));\r\n @include vendor-prefix(flex-wrap, $wrapBehavior, property, (-ms-, -webkit-, ''));\r\n\r\n @include vendor-prefix(justify-content, flex-start, property, (-webkit-, ''));\r\n\r\n @include vendor-prefix(align-content, flex-start, property, (-webkit-, ''));\r\n\r\n @include vendor-prefix(align-items, stretch, property, (-webkit-, ''));\r\n}\r\n\r\n@mixin simple-flex-box($width: auto, $minWidth: 1) {\r\n\r\n @include vendor-prefix(order, 0, property, (-ms-, -webkit-, ''));\r\n flex-item-align: stretch;\r\n -ms-flex-item-align: stretch;\r\n @include vendor-prefix(align-self, stretch, property, (-webkit-, ''));\r\n\r\n // if both, min width and width are set, width will win this conflict\r\n @if ($width == auto) {\r\n @if ($minWidth != 1) {\r\n @include vendor-prefix(flex, 1 1 $minWidth, property, (-ms-, -webkit-, ''));\r\n }\r\n @else {\r\n @include vendor-prefix(flex, 1 1 auto, property, (-ms-, -webkit-, ''));\r\n // @see https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis#Values\r\n // for a discussion auto vs. main-size\r\n @include vendor-prefix(flex, 1 1, property, (-ms-, -webkit-, ''));\r\n }\r\n }\r\n @else {\r\n @include vendor-prefix(flex, 0 0 $width, property, (-ms-, -webkit-, ''));\r\n }\r\n}\r\n\r\n\r\n@mixin box-shadow($horiz: 1px, $vert: 1px, $blur: 2px, $spread: 0, $color: rgba(0, 0, 0, .2)) {\r\n @include vendor-prefix(box-shadow, $horiz $vert $blur $spread $color, property);\r\n}\r\n\r\n@mixin simple-border($color: #ddd) {\r\n border: 1px solid $color;\r\n border-radius: 2px;\r\n -webkit-border-radius: 2px;\r\n}\r\n\r\n@mixin border-radius($radius: 2) {\r\n -moz-border-radius: $radius * 1px;\r\n -webkit-border-radius: $radius * 1px;\r\n border-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-top($radius: 2) {\r\n -webkit-border-top-left-radius: $radius * 1px;\r\n -webkit-border-top-right-radius: $radius * 1px;\r\n -moz-border-radius-topleft: $radius * 1px;\r\n -moz-border-radius-topright: $radius * 1px;\r\n border-top-left-radius: $radius * 1px;\r\n border-top-right-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-bottom($radius: 2) {\r\n -webkit-border-bottom-right-radius: $radius * 1px;\r\n -webkit-border-bottom-left-radius: $radius * 1px;\r\n -moz-border-radius-bottomright: $radius * 1px;\r\n -moz-border-radius-bottomleft: $radius * 1px;\r\n border-bottom-right-radius: $radius * 1px;\r\n border-bottom-left-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-left($radius: 2) {\r\n -webkit-border-top-left-radius: $radius * 1px;\r\n -webkit-border-bottom-left-radius: $radius * 1px;\r\n -moz-border-radius-topleft: $radius * 1px;\r\n -moz-border-radius-bottomleft: $radius * 1px;\r\n border-top-left-radius: $radius * 1px;\r\n border-bottom-left-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-right($radius: 2) {\r\n -webkit-border-top-right-radius: $radius * 1px;\r\n -webkit-border-bottom-right-radius: $radius * 1px;\r\n -moz-border-radius-topright: $radius * 1px;\r\n -moz-border-radius-bottomright: $radius * 1px;\r\n border-top-right-radius: $radius * 1px;\r\n border-bottom-right-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-top-left($radius: 2) {\r\n -webkit-border-top-left-radius: $radius * 1px;\r\n -moz-border-radius-topleft: $radius * 1px;\r\n border-top-left-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-top-right($radius: 2) {\r\n -webkit-border-top-right-radius: $radius * 1px;\r\n -moz-border-radius-topright: $radius * 1px;\r\n border-top-right-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-bottom-right($radius: 2) {\r\n -webkit-border-bottom-right-radius: $radius * 1px;\r\n -moz-border-radius-bottomright: $radius * 1px;\r\n border-bottom-right-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-radius-bottom-left($radius: 2) {\r\n -webkit-border-bottom-left-radius: $radius * 1px;\r\n -moz-border-radius-bottomleft: $radius * 1px;\r\n border-bottom-left-radius: $radius * 1px;\r\n}\r\n\r\n@mixin border-box() {\r\n -moz-box-sizing: border-box;\r\n -webkit-box-sizing: border-box;\r\n box-sizing: border-box;\r\n}\r\n\r\n@function whiten($color, $white: 0.3) {\r\n @return mix(#fff, $color, ($white * 100) * 1%);\r\n}\r\n\r\n@function blacken($color, $black: 0.3) {\r\n @return mix(#000, $color, ($black * 100) * 1%);\r\n}\r\n\r\n@function widthPerc($colWidth, $context) {\r\n @return ($colWidth * 100 / $context) * 1%\r\n}\r\n\r\n@function remDist($fontSizePx) {\r\n @return ($fontSizePx / 10) * 1rem\r\n}\r\n\r\n@function black($alpha: 1) {\r\n @return (rgba(0, 0, 0, $alpha))\r\n}\r\n\r\n@function white($alpha: 1) {\r\n @return (rgba(255, 255, 255, $alpha))\r\n}\r\n\r\n@mixin font-size($remPx, $important: false) {\r\n @if $important == true {\r\n font-size: ($remPx) * 1px !important;\r\n font-size: ($remPx / 10) * 1rem !important;\r\n }\r\n @else {\r\n font-size: ($remPx) * 1px;\r\n font-size: ($remPx / 10) * 1rem;\r\n }\r\n}\r\n\r\n\r\n@mixin keyframes($name) {\r\n @-o-keyframes #{$name} { @content };\r\n @-moz-keyframes #{$name} { @content };\r\n @-webkit-keyframes #{$name} { @content };\r\n @keyframes #{$name} { @content };\r\n}\r\n\r\n\r\n@mixin animation($value, $type:'') {\r\n $animation: animation;\r\n @if $type != '' {\r\n $animation: $animation + '-' + $type;\r\n }\r\n @include vendor-prefix($animation, $value, property);\r\n}\r\n\r\n/// CSS transition mixin to the current selection (apply also vendor prefixes).\r\n/// See <https://developer.mozilla.org/en-US/docs/Web/CSS/transition> for the values\r\n///\r\n/// @param {property} [$type = all] the CSS property to apply the transition to\r\n/// @param {time} [$duration = .5s] the transition property\r\n/// @param {timing-function} [$effect = ease-out] the transition property\r\n@mixin transition($type : all, $duration : 0.5s, $effect : ease-out, $delay : 0s){\r\n @include vendor-prefix(transition, $type + ', ' + $duration + ', ' + $effect + ', ' + $delay, property);\r\n}\r\n\r\n@mixin fade($duration: 1s){\r\n\r\n @include keyframes(fade) {\r\n 0% {opacity:0;}\r\n 50% {opacity:1;}\r\n 100% {opacity:0;}\r\n }\r\n\r\n @include vendor-prefix(animation, fade 1s forwards, property);\r\n}\r\n\r\n@mixin repeat(){\r\n @include animation(infinite, iteration-count);\r\n}\r\n\r\n@mixin largeHeading() {\r\n @include font-size(20);\r\n font-family: $headingFont;\r\n font-style: normal;\r\n}\r\n\r\n@mixin disableSelect() {\r\n @include vendor-prefix(user-select, none, property);\r\n}\r\n\r\n/* based on \"visually-hidden\" mixin in LDS for accessibility goals */\r\n@mixin visuallyHidden() {\r\n position: absolute;\r\n width: 1px;\r\n height: 1px;\r\n overflow: hidden;\r\n clip: rect(1px, 1px, 1px, 1px);\r\n margin: 0;\r\n padding: 0;\r\n}\r\n","@import 'inc/bootstrap';\r\n\r\n.form-widget {\r\n margin: 10px 0;\r\n\r\n .widget-label {\r\n display: inline-block;\r\n margin-top: 8px;\r\n width: 34%;\r\n vertical-align: top;\r\n }\r\n\r\n .widget-field {\r\n display: inline-block;\r\n min-width: 150px;\r\n width: 65%;\r\n\r\n .widget-input, .widget-input-inline {\r\n @include simple-border();\r\n background-color: white;\r\n color: $textColor;\r\n font-family: $regularFont;\r\n padding: 8px;\r\n width: 100%;\r\n }\r\n .widget-input-inline {\r\n font: inherit;\r\n height: 36px;\r\n }\r\n\r\n .check-box-input, .radio-box-input {\r\n color: $textColor;\r\n display: inline-block;\r\n font-family: $regularFont;\r\n padding: 4px;\r\n width: 100%;\r\n\r\n .option {\r\n padding-top: 4px;\r\n }\r\n }\r\n }\r\n\r\n &.error,\r\n &.invalid {\r\n .widget-field {\r\n .widget-input,\r\n .widget-input-inline,\r\n .check-box-input {\r\n border-color: $error;\r\n color: $error;\r\n }\r\n }\r\n }\r\n}\r\n\r\n/*# sourceMappingURL=widget.css.map */","/* Do not edit */@mixin tao-icon-setup {\r\n /* use !important to prevent issues with browser extensions that change fonts */\r\n font-family: 'tao' !important;\r\n speak: never;\r\n font-style: normal;\r\n font-weight: normal;\r\n font-variant: normal;\r\n text-transform: none;\r\n line-height: 1;\r\n\r\n /* Better Font Rendering =========== */\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\n@mixin icon-furigana { content: \"\\e919\"; }\r\n@mixin icon-add-subsection { content: \"\\e918\"; }\r\n@mixin icon-info-bare { content: \"\\e923\"; }\r\n@mixin icon-bookmark-outline { content: \"\\e922\"; }\r\n@mixin icon-bookmark { content: \"\\e921\"; }\r\n@mixin icon-indicator { content: \"\\e920\"; }\r\n@mixin icon-wrap-inline { content: \"\\e915\"; }\r\n@mixin icon-wrap-left { content: \"\\e916\"; }\r\n@mixin icon-wrap-right { content: \"\\e917\"; }\r\n@mixin icon-offline { content: \"\\e913\"; }\r\n@mixin icon-online { content: \"\\e914\"; }\r\n@mixin icon-tab { content: \"\\e90d\"; }\r\n@mixin icon-untab { content: \"\\e90e\"; }\r\n@mixin icon-multi-select { content: \"\\e90b\"; }\r\n@mixin icon-clipboard { content: \"\\e90a\"; }\r\n@mixin icon-filebox { content: \"\\e909\"; }\r\n@mixin icon-click-to-speak { content: \"\\e907\"; }\r\n@mixin icon-speech-bubble { content: \"\\f0e5\"; }\r\n@mixin icon-microphone { content: \"\\f130\"; }\r\n@mixin icon-microphone-off { content: \"\\f131\"; }\r\n@mixin icon-disconnect { content: \"\\e905\"; }\r\n@mixin icon-connect { content: \"\\e906\"; }\r\n@mixin icon-eliminate { content: \"\\e904\"; }\r\n@mixin icon-wheelchair { content: \"\\e903\"; }\r\n@mixin icon-text-marker { content: \"\\e902\"; }\r\n@mixin icon-unshield { content: \"\\e32a\"; }\r\n@mixin icon-shield { content: \"\\e8e8\"; }\r\n@mixin icon-tree { content: \"\\e6b4\"; }\r\n@mixin icon-home { content: \"\\e6b3\"; }\r\n@mixin icon-shared-file { content: \"\\e6b2\"; }\r\n@mixin icon-end-attempt { content: \"\\e603\"; }\r\n@mixin icon-icon { content: \"\\f1c5\"; }\r\n@mixin icon-radio-bg { content: \"\\e600\"; }\r\n@mixin icon-checkbox-bg { content: \"\\e601\"; }\r\n@mixin icon-tag { content: \"\\e602\"; }\r\n@mixin icon-style { content: \"\\e604\"; }\r\n@mixin icon-ownership-transfer { content: \"\\e605\"; }\r\n@mixin icon-property-advanced { content: \"\\e606\"; }\r\n@mixin icon-property-add { content: \"\\e607\"; }\r\n@mixin icon-repository-add { content: \"\\e608\"; }\r\n@mixin icon-repository-remove { content: \"\\e609\"; }\r\n@mixin icon-repository { content: \"\\e60a\"; }\r\n@mixin icon-result-server { content: \"\\e60b\"; }\r\n@mixin icon-folder { content: \"\\e60c\"; }\r\n@mixin icon-folder-open { content: \"\\e60d\"; }\r\n@mixin icon-left { content: \"\\e60e\"; }\r\n@mixin icon-right { content: \"\\e60f\"; }\r\n@mixin icon-up { content: \"\\e610\"; }\r\n@mixin icon-down { content: \"\\e611\"; }\r\n@mixin icon-undo { content: \"\\e612\"; }\r\n@mixin icon-redo { content: \"\\e613\"; }\r\n@mixin icon-screen { content: \"\\e614\"; }\r\n@mixin icon-laptop { content: \"\\e615\"; }\r\n@mixin icon-tablet { content: \"\\e616\"; }\r\n@mixin icon-phone { content: \"\\e617\"; }\r\n@mixin icon-move { content: \"\\e618\"; }\r\n@mixin icon-bin { content: \"\\e619\"; }\r\n@mixin icon-shuffle { content: \"\\e61a\"; }\r\n@mixin icon-print { content: \"\\e61b\"; }\r\n@mixin icon-tools { content: \"\\e61c\"; }\r\n@mixin icon-settings { content: \"\\e61d\"; }\r\n@mixin icon-video { content: \"\\e61e\"; }\r\n@mixin icon-find { content: \"\\e61f\"; }\r\n@mixin icon-image { content: \"\\e620\"; }\r\n@mixin icon-edit { content: \"\\e621\"; }\r\n@mixin icon-document { content: \"\\e622\"; }\r\n@mixin icon-resize-grid { content: \"\\e623\"; }\r\n@mixin icon-resize { content: \"\\e624\"; }\r\n@mixin icon-help { content: \"\\e625\"; }\r\n@mixin icon-mobile-menu { content: \"\\e626\"; }\r\n@mixin icon-fix { content: \"\\e627\"; }\r\n@mixin icon-unlock { content: \"\\e628\"; }\r\n@mixin icon-lock { content: \"\\e629\"; }\r\n@mixin icon-ul { content: \"\\e62a\"; }\r\n@mixin icon-ol { content: \"\\e62b\"; }\r\n@mixin icon-email { content: \"\\e62c\"; }\r\n@mixin icon-download { content: \"\\e62d\"; }\r\n@mixin icon-logout { content: \"\\e62e\"; }\r\n@mixin icon-login { content: \"\\e62f\"; }\r\n@mixin icon-spinner { content: \"\\e630\"; }\r\n@mixin icon-preview { content: \"\\e631\"; }\r\n@mixin icon-external { content: \"\\e632\"; }\r\n@mixin icon-time { content: \"\\e633\"; }\r\n@mixin icon-save { content: \"\\e634\"; }\r\n@mixin icon-warning { content: \"\\e635\"; }\r\n@mixin icon-add { content: \"\\e636\"; }\r\n@mixin icon-error { content: \"\\e900\"; }\r\n@mixin icon-close { content: \"\\e637\"; }\r\n@mixin icon-success { content: \"\\e638\"; }\r\n@mixin icon-remove { content: \"\\e639\"; }\r\n@mixin icon-info { content: \"\\e63a\"; }\r\n@mixin icon-danger { content: \"\\e63b\"; }\r\n@mixin icon-users { content: \"\\e63c\"; }\r\n@mixin icon-user { content: \"\\e63d\"; }\r\n@mixin icon-test-taker { content: \"\\e63e\"; }\r\n@mixin icon-test-takers { content: \"\\e63f\"; }\r\n@mixin icon-item { content: \"\\e640\"; }\r\n@mixin icon-test { content: \"\\e641\"; }\r\n@mixin icon-delivery { content: \"\\e642\"; }\r\n@mixin icon-eye-slash { content: \"\\e643\"; }\r\n@mixin icon-result { content: \"\\e644\"; }\r\n@mixin icon-delivery-small { content: \"\\e645\"; }\r\n@mixin icon-upload { content: \"\\e646\"; }\r\n@mixin icon-result-small { content: \"\\e647\"; }\r\n@mixin icon-mobile-preview { content: \"\\e648\"; }\r\n@mixin icon-extension { content: \"\\e649\"; }\r\n@mixin icon-desktop-preview { content: \"\\e64a\"; }\r\n@mixin icon-tablet-preview { content: \"\\e64b\"; }\r\n@mixin icon-insert-horizontal-line { content: \"\\e64c\"; }\r\n@mixin icon-table { content: \"\\e64d\"; }\r\n@mixin icon-anchor { content: \"\\e64e\"; }\r\n@mixin icon-unlink { content: \"\\e64f\"; }\r\n@mixin icon-link { content: \"\\e650\"; }\r\n@mixin icon-right-left { content: \"\\e651\"; }\r\n@mixin icon-left-right { content: \"\\e652\"; }\r\n@mixin icon-special-character { content: \"\\e653\"; }\r\n@mixin icon-source { content: \"\\e654\"; }\r\n@mixin icon-new-page { content: \"\\e655\"; }\r\n@mixin icon-templates { content: \"\\e656\"; }\r\n@mixin icon-cut { content: \"\\e657\"; }\r\n@mixin icon-replace { content: \"\\e658\"; }\r\n@mixin icon-copy { content: \"\\e659\"; }\r\n@mixin icon-paste { content: \"\\e65a\"; }\r\n@mixin icon-select-all { content: \"\\e65b\"; }\r\n@mixin icon-paste-text { content: \"\\e65c\"; }\r\n@mixin icon-paste-word { content: \"\\e65d\"; }\r\n@mixin icon-bold { content: \"\\e65e\"; }\r\n@mixin icon-italic { content: \"\\e65f\"; }\r\n@mixin icon-underline { content: \"\\e660\"; }\r\n@mixin icon-subscript { content: \"\\e661\"; }\r\n@mixin icon-superscript { content: \"\\e662\"; }\r\n@mixin icon-strike-through { content: \"\\e663\"; }\r\n@mixin icon-decrease-indent { content: \"\\e664\"; }\r\n@mixin icon-increase-indent { content: \"\\e665\"; }\r\n@mixin icon-block-quote { content: \"\\e666\"; }\r\n@mixin icon-div-container { content: \"\\e667\"; }\r\n@mixin icon-align-left { content: \"\\e668\"; }\r\n@mixin icon-center { content: \"\\e669\"; }\r\n@mixin icon-align-right { content: \"\\e66a\"; }\r\n@mixin icon-justify { content: \"\\e66b\"; }\r\n@mixin icon-choice { content: \"\\e66c\"; }\r\n@mixin icon-inline-choice { content: \"\\e66d\"; }\r\n@mixin icon-match { content: \"\\e66e\"; }\r\n@mixin icon-associate { content: \"\\e66f\"; }\r\n@mixin icon-media { content: \"\\e670\"; }\r\n@mixin icon-graphic-order { content: \"\\e671\"; }\r\n@mixin icon-hotspot { content: \"\\e672\"; }\r\n@mixin icon-graphic-gap { content: \"\\e673\"; }\r\n@mixin icon-graphic-associate { content: \"\\e674\"; }\r\n@mixin icon-select-point { content: \"\\e675\"; }\r\n@mixin icon-pin { content: \"\\e676\"; }\r\n@mixin icon-import { content: \"\\e677\"; }\r\n@mixin icon-export { content: \"\\e678\"; }\r\n@mixin icon-move-item { content: \"\\e679\"; }\r\n@mixin icon-meta-data { content: \"\\e67a\"; }\r\n@mixin icon-slider { content: \"\\e67b\"; }\r\n@mixin icon-summary-report { content: \"\\e67c\"; }\r\n@mixin icon-text-entry { content: \"\\e67d\"; }\r\n@mixin icon-extended-text { content: \"\\e67e\"; }\r\n@mixin icon-eraser { content: \"\\e67f\"; }\r\n@mixin icon-row { content: \"\\e680\"; }\r\n@mixin icon-column { content: \"\\e681\"; }\r\n@mixin icon-text-color { content: \"\\e682\"; }\r\n@mixin icon-background-color { content: \"\\e683\"; }\r\n@mixin icon-spell-check { content: \"\\e684\"; }\r\n@mixin icon-polygon { content: \"\\e685\"; }\r\n@mixin icon-rectangle { content: \"\\e686\"; }\r\n@mixin icon-gap-match { content: \"\\e687\"; }\r\n@mixin icon-order { content: \"\\e688\"; }\r\n@mixin icon-hottext { content: \"\\e689\"; }\r\n@mixin icon-free-form { content: \"\\e68a\"; }\r\n@mixin icon-step-backward { content: \"\\e68b\"; }\r\n@mixin icon-fast-backward { content: \"\\e68c\"; }\r\n@mixin icon-backward { content: \"\\e68d\"; }\r\n@mixin icon-play { content: \"\\e68e\"; }\r\n@mixin icon-pause { content: \"\\e68f\"; }\r\n@mixin icon-stop { content: \"\\e690\"; }\r\n@mixin icon-forward { content: \"\\e691\"; }\r\n@mixin icon-fast-forward { content: \"\\e692\"; }\r\n@mixin icon-step-forward { content: \"\\e693\"; }\r\n@mixin icon-ellipsis { content: \"\\e694\"; }\r\n@mixin icon-circle { content: \"\\e695\"; }\r\n@mixin icon-target { content: \"\\e696\"; }\r\n@mixin icon-guide-arrow { content: \"\\e697\"; }\r\n@mixin icon-range-slider-right { content: \"\\e698\"; }\r\n@mixin icon-range-slider-left { content: \"\\e699\"; }\r\n@mixin icon-radio-checked { content: \"\\e69a\"; }\r\n@mixin icon-checkbox-indeterminate { content: \"\\e901\"; }\r\n@mixin icon-checkbox { content: \"\\e69b\"; }\r\n@mixin icon-checkbox-crossed { content: \"\\e69c\"; }\r\n@mixin icon-checkbox-checked { content: \"\\e69d\"; }\r\n@mixin icon-result-nok { content: \"\\e69e\"; }\r\n@mixin icon-result-ok { content: \"\\e69f\"; }\r\n@mixin icon-not-evaluated { content: \"\\e6a0\"; }\r\n@mixin icon-filter { content: \"\\e6a1\"; }\r\n@mixin icon-translate { content: \"\\e6a2\"; }\r\n@mixin icon-eject { content: \"\\e6a3\"; }\r\n@mixin icon-continue { content: \"\\e6a4\"; }\r\n@mixin icon-radio { content: \"\\e6a5\"; }\r\n@mixin icon-sphere { content: \"\\e6a6\"; }\r\n@mixin icon-reset { content: \"\\e6a7\"; }\r\n@mixin icon-smaller { content: \"\\e6a8\"; }\r\n@mixin icon-larger { content: \"\\e6a9\"; }\r\n@mixin icon-clock { content: \"\\e6aa\"; }\r\n@mixin icon-font { content: \"\\e6ab\"; }\r\n@mixin icon-maths { content: \"\\e6ac\"; }\r\n@mixin icon-grip { content: \"\\e6ad\"; }\r\n@mixin icon-rubric { content: \"\\e6ae\"; }\r\n@mixin icon-audio { content: \"\\e6af\"; }\r\n@mixin icon-grip-h { content: \"\\e6b0\"; }\r\n@mixin icon-magicwand { content: \"\\e6b1\"; }\r\n@mixin icon-loop { content: \"\\ea2e\"; }\r\n@mixin icon-calendar { content: \"\\e953\"; }\r\n@mixin icon-reload { content: \"\\e984\"; }\r\n@mixin icon-speed { content: \"\\e9a6\"; }\r\n@mixin icon-volume { content: \"\\ea27\"; }\r\n@mixin icon-contrast { content: \"\\e9d5\"; }\r\n@mixin icon-headphones { content: \"\\e910\"; }\r\n@mixin icon-compress { content: \"\\f066\"; }\r\n@mixin icon-map-o { content: \"\\f278\"; }\r\n@mixin icon-variable { content: \"\\e908\"; }\r\n@mixin icon-tooltip { content: \"\\e90c\"; }\r\n@mixin icon-globe { content: \"\\e9c9\"; }\r\n@mixin icon-highlighter { content: \"\\e90f\"; }\r\n@mixin icon-eliminate-crossed { content: \"\\e911\"; }\r\n@mixin icon-play-from-here { content: \"\\e912\"; }\r\n","// buttons and alerts\r\n$success: rgb(14, 145, 75);\r\n$info: rgb(14, 93, 145);\r\n$warning: rgb(216, 174, 91);\r\n$danger: rgb(201, 96, 67);\r\n$error: rgb(186, 18, 43);\r\n$activeInteraction: rgb(195, 90, 19);\r\n\r\n// corporate identity\r\n$logoRed: rgb(186, 18, 43);\r\n$grey: rgb(173, 161, 148);\r\n$darkBlueGrey: rgb(164, 187, 197);\r\n$mediumBlueGrey: rgb(193, 212, 220);\r\n$lightBlueGrey: rgb(228, 236, 239);\r\n$brownRedGrey: rgb(154, 137, 123);\r\n$darkBrown: rgb(111, 99, 89);\r\n$websiteBorder: rgb(141, 148, 158);\r\n\r\n// ui elements, these should only variations of the above\r\n// naming convention: jQueryUi theme roller -> camelCase\r\n\r\n$textColor: #222;\r\n$textHighlight: white;\r\n$textSecondary: #737373;\r\n$shadowColor: rgba(0, 0, 0, 0.25);\r\n\r\n$modalBorderColor: #dddfe2;\r\n$searchInp: #dddfe2;\r\n\r\n$uiGeneralContentBg: white();\r\n$uiGeneralContentBorder: #ddd;\r\n\r\n$uiHeaderBg: #d4d5d7;\r\n\r\n$uiClickableDefaultBg: #f3f1ef;\r\n$uiClickableHoverBg: whiten($info, 0.2);\r\n//$uiClickableActiveBg: $uiHeaderBg;\r\n$uiClickableActiveBg: whiten($websiteBorder, 0.2);\r\n//$uiClickableActiveBg: #aaa;\r\n\r\n$uiSelectableSelectedBg: whiten($info, 0.2);\r\n$uiSelectableSelectedHoverBg: whiten($info, 0.1);\r\n$uiSelectableHoverBg: whiten($info, 0.9);\r\n\r\n$uiOverlay: $lightBlueGrey;\r\n\r\n// new layout. Implemented now only for review panel\r\n$uiReviewPanelBg: #f2f2f2;\r\n$uiReviewPanelTextDisabled: hsl(0, 0%, 45%);\r\n$uiReviewPanelTextDefault: hsl(0, 0%, 12%);\r\n$uiReviewPanelBgDefault: $uiGeneralContentBg;\r\n$uiReviewPanelPrimaryHighlight: hsl(208, 100%, 32%);\r\n$uiReviewPanelBgInverted: $uiReviewPanelTextDefault;\r\n$uiReviewPanelTextInverted: $uiGeneralContentBg;\r\n\r\n// sidebars etc.\r\n$canvas: mix(#fff, $grey, 85%);\r\n\r\n// colors taken from feedback.scss\r\n$successBgColor: whiten($success, 0.8);\r\n$successBorderColor: whiten($success, 0.1);\r\n\r\n$infoBgColor: whiten($info, 0.8);\r\n$infoBorderColor: whiten($info, 0.1);\r\n\r\n$warningBgColor: whiten($warning, 0.8);\r\n$warningBorderColor: whiten($warning, 0.1);\r\n\r\n$dangerBgColor: whiten($danger, 0.8);\r\n$dangerBorderColor: whiten($danger, 0.1);\r\n\r\n$errorBgColor: whiten($error, 0.8);\r\n$errorBorderColor: whiten($error, 0.1);\r\n\r\n$darkBar: rgb(51, 51, 51);\r\n$darkBarTxt: rgb(230, 230, 230);\r\n$darkBarIcon: rgb(220, 220, 220);\r\n\r\n$actionLinkColor: #276d9b;\r\n$actionLinkHoverColor: #4f83a7;\r\n\r\n$colorWheel-01: #c3ba13;\r\n$colorWheel-02: #84a610;\r\n$colorWheel-03: #2b8e0e;\r\n$colorWheel-04: #0f9787;\r\n$colorWheel-05: #0e5d91;\r\n$colorWheel-06: #0d2689;\r\n$colorWheel-07: #400d83;\r\n$colorWheel-08: #960e7d;\r\n$colorWheel-09: #ba122b;\r\n$colorWheel-10: #c34713;\r\n$colorWheel-11: #c36f13;\r\n$colorWheel-12: #c39413;\r\n","$sidebarWidth: 180;\r\n$sidebarGutter: 0;\r\n$toolbarHeight: 50;\r\n$treeSidebar: 280;\r\n\r\n// fonts\r\n$fontPath : 'font/' !default;\r\n$monospaceFont: Consolas, 'Andale Mono WT', 'Andale Mono', 'Lucida Console', 'Lucida Sans Typewriter', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Liberation Mono', 'Nimbus Mono L', Monaco, 'Courier New', Courier, monospace;\r\n$regularFont: 'Source Sans Pro', sans-serif;\r\n$headingFont: 'Source Sans Pro', sans-serif;\r\n\r\n\r\n%clearfix {\r\n &:before, &:after {\r\n content: \" \";\r\n display: table;\r\n }\r\n &:after {\r\n clear: both;\r\n }\r\n}\r\n"]}
|