@oat-sa/tao-core-ui 1.60.2 → 1.61.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +339 -339
- package/README.md +23 -18
- package/dist/actionbar.js +105 -105
- package/dist/adder.js +109 -109
- package/dist/animable/absorbable/absorbable.js +42 -42
- 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 +36 -36
- 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 +400 -400
- package/dist/autoscroll.js +22 -22
- package/dist/badge/badge.js +48 -48
- 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 +70 -70
- 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 +104 -104
- package/dist/button.js +102 -102
- 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 +47 -47
- package/dist/ckeditor/ckConfigurator.js +48 -48
- 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 +111 -111
- 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 +59 -59
- package/dist/component.js +153 -153
- 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 +113 -113
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +75 -75
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +160 -160
- package/dist/datatable/css/datatable.css +11 -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 +464 -431
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +110 -110
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +174 -174
- package/dist/deleter.js +92 -92
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +65 -65
- package/dist/dialog/alert.js +26 -26
- package/dist/dialog/confirm.js +27 -27
- package/dist/dialog/confirmDelete.js +44 -44
- package/dist/dialog.js +156 -156
- 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 +43 -43
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +25 -25
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +133 -133
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +102 -102
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +52 -52
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +125 -125
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +67 -67
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +94 -94
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +111 -111
- package/dist/documentViewer/providers/pdfViewer.js +42 -42
- package/dist/documentViewer/viewerFactory.js +71 -71
- package/dist/documentViewer.js +99 -99
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +97 -97
- 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 +116 -116
- package/dist/feedback.js +97 -97
- package/dist/figure/FigureStateActive.js +117 -117
- package/dist/filesender.js +26 -26
- package/dist/filter.js +47 -47
- 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 +112 -112
- package/dist/form/form.js +245 -245
- 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 +65 -65
- package/dist/form/validator/validator.js +87 -87
- 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 +75 -75
- package/dist/form/widget/providers/comboBox.js +59 -59
- package/dist/form/widget/providers/default.js +35 -35
- package/dist/form/widget/providers/hidden.js +50 -50
- package/dist/form/widget/providers/hiddenBox.js +71 -71
- package/dist/form/widget/providers/radioBox.js +70 -70
- package/dist/form/widget/providers/textArea.js +48 -48
- package/dist/form/widget/providers/textBox.js +34 -34
- package/dist/form/widget/widget.js +154 -154
- 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 +86 -86
- 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 +51 -51
- package/dist/generis/widget/checkBox/checkBox.js +52 -52
- package/dist/generis/widget/comboBox/comboBox.js +45 -45
- 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 +53 -53
- package/dist/generis/widget/loader.js +20 -20
- package/dist/generis/widget/textBox/textBox.js +40 -40
- package/dist/generis/widget/widget.js +60 -60
- package/dist/groupedComboBox.js +49 -49
- package/dist/groupvalidator.js +19 -19
- package/dist/hider.js +41 -41
- package/dist/highlighter.js +262 -262
- 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 +115 -115
- 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 +97 -97
- 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 +48 -48
- package/dist/lock.js +125 -125
- package/dist/login/login.js +100 -100
- package/dist/maths/calculator/basicCalculator.js +63 -63
- package/dist/maths/calculator/calculatorComponent.js +29 -29
- package/dist/maths/calculator/core/areaBroker.js +25 -25
- package/dist/maths/calculator/core/board.js +313 -313
- package/dist/maths/calculator/core/expression.js +111 -111
- package/dist/maths/calculator/core/labels.js +29 -29
- 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 +59 -59
- 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 +61 -61
- 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 +60 -60
- package/dist/maths/calculator/pluginsLoader.js +21 -21
- package/dist/maths/calculator/scientificCalculator.js +91 -91
- package/dist/mediaEditor/mediaEditorComponent.js +64 -64
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +16 -16
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +60 -60
- 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 +153 -153
- 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 +65 -65
- package/dist/mediaplayer/players/youtube.js +52 -52
- 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 +35 -35
- package/dist/mediaplayer.js +460 -460
- package/dist/mediasizer.js +135 -135
- package/dist/modal.js +87 -87
- package/dist/movableComponent.js +35 -35
- package/dist/pageSizeSelector.js +44 -44
- 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 +37 -37
- package/dist/pagination/providers/simple.js +35 -35
- package/dist/pagination.js +45 -45
- package/dist/previewer.js +67 -67
- package/dist/progressbar.js +58 -58
- package/dist/propertySelector/css/propertySelector.css +74 -0
- package/dist/propertySelector/css/propertySelector.css.map +1 -0
- package/dist/propertySelector/propertySelector.js +533 -0
- package/dist/report.js +86 -86
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +73 -73
- package/dist/resource/list.js +66 -66
- package/dist/resource/selectable.js +92 -92
- package/dist/resource/selector.js +195 -195
- package/dist/resource/tree.js +104 -104
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +88 -88
- package/dist/resourcemgr/fileSelector.js +58 -58
- package/dist/resourcemgr/util/updatePermissions.js +4 -4
- package/dist/resourcemgr.js +62 -62
- package/dist/scroller.js +26 -26
- package/dist/searchModal/advancedSearch.js +355 -161
- package/dist/searchModal/css/advancedSearch.css +7 -14
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +29 -8
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +574 -190
- 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 +75 -75
- 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 +217 -217
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +72 -72
- package/dist/taskQueue/table.js +67 -67
- package/dist/taskQueue/taskQueue.js +18 -18
- package/dist/taskQueue/taskQueueModel.js +86 -86
- 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 +54 -54
- package/dist/taskQueueButton/treeButton.js +56 -56
- package/dist/themeLoader.js +75 -75
- package/dist/themes.js +84 -84
- package/dist/toggler.js +57 -57
- package/dist/tooltip.js +54 -54
- 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 +75 -75
- package/dist/uploader.js +158 -158
- package/dist/validator/validators.js +48 -48
- package/dist/validator.js +24 -24
- 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 +108 -107
- package/scss/basic.scss +16 -16
- package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +59 -59
- package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
- package/scss/font/tao/tao.svg +234 -234
- package/scss/inc/_base.scss +495 -495
- package/scss/inc/_bootstrap.scss +6 -6
- package/scss/inc/_buttons.scss +114 -114
- package/scss/inc/_colors.scss +93 -88
- package/scss/inc/_feedback.scss +150 -150
- package/scss/inc/_flex-grid.scss +15 -15
- package/scss/inc/_fonts.scss +4 -4
- package/scss/inc/_forms.scss +832 -832
- package/scss/inc/_functions.scss +283 -283
- package/scss/inc/_jquery.nouislider.scss +254 -254
- package/scss/inc/_normalize.scss +528 -528
- package/scss/inc/_report.scss +67 -67
- package/scss/inc/_secondary-properties.scss +89 -89
- package/scss/inc/_select2.scss +634 -634
- package/scss/inc/_toolbars.scss +155 -155
- package/scss/inc/_tooltip.scss +312 -312
- package/scss/inc/_variables.scss +21 -21
- package/scss/inc/base/_highlight.scss +5 -5
- package/scss/inc/base/_list-style.scss +58 -58
- package/scss/inc/base/_svg.scss +3 -3
- package/scss/inc/base/_table.scss +62 -62
- package/scss/inc/fonts/_source-sans-pro.scss +29 -29
- package/scss/inc/fonts/_tao-icon-classes.scss +226 -226
- package/scss/inc/fonts/_tao-icon-def.scss +12 -12
- package/scss/inc/fonts/_tao-icon-vars.scss +240 -240
- package/src/actionbar/tpl/main.tpl +8 -8
- package/src/actionbar.js +251 -251
- package/src/adder.js +250 -250
- package/src/animable/absorbable/absorbable.js +134 -134
- package/src/animable/absorbable/css/absorb.css +7 -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 +1029 -1029
- 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 +736 -736
- package/src/ckeditor/dtdHandler.js +1030 -1030
- package/src/class/css/selector.css +7 -7
- package/src/class/css/selector.css.map +1 -1
- package/src/class/scss/selector.scss +101 -101
- package/src/class/selector.js +329 -329
- package/src/class/tpl/listItem.tpl +9 -9
- package/src/class/tpl/selector.tpl +10 -10
- package/src/component/alignable.js +274 -274
- package/src/component/containable.js +122 -122
- package/src/component/css/components.css +7 -7
- package/src/component/css/components.css.map +1 -1
- package/src/component/css/windowComponent.css +7 -7
- package/src/component/css/windowComponent.css.map +1 -1
- package/src/component/draggable.js +104 -104
- package/src/component/placeable.js +233 -233
- package/src/component/resizable.js +195 -195
- package/src/component/scss/components.scss +507 -507
- package/src/component/scss/windowComponent.scss +62 -62
- package/src/component/stackable.js +67 -67
- package/src/component/tpl/window.tpl +7 -7
- package/src/component/windowed.js +206 -206
- package/src/component.js +401 -401
- package/src/container.js +200 -200
- package/src/contextualPopup/css/contextualPopup.css +7 -7
- package/src/contextualPopup/css/contextualPopup.css.map +1 -1
- package/src/contextualPopup/scss/contextualPopup.scss +78 -78
- package/src/contextualPopup/tpl/popup.tpl +10 -10
- package/src/contextualPopup.js +297 -297
- package/src/css/basic.css +103 -103
- package/src/css/basic.css.map +1 -1
- package/src/dashboard/css/dashboard.css +7 -7
- package/src/dashboard/css/dashboard.css.map +1 -1
- package/src/dashboard/scss/dashboard.scss +93 -93
- package/src/dashboard/tpl/dashboard.tpl +16 -16
- package/src/dashboard/tpl/dashboardMetricsList.tpl +15 -15
- package/src/dashboard.js +184 -184
- package/src/datalist/css/datalist.css +7 -7
- package/src/datalist/css/datalist.css.map +1 -1
- package/src/datalist/scss/datalist.scss +116 -116
- package/src/datalist/tpl/list.tpl +24 -24
- package/src/datalist/tpl/main.tpl +44 -44
- package/src/datalist.js +500 -500
- package/src/datatable/css/datatable.css +11 -7
- package/src/datatable/css/datatable.css.map +1 -1
- package/src/datatable/filterStrategy/filterStrategy.js +70 -70
- package/src/datatable/filterStrategy/multiple.js +126 -126
- package/src/datatable/filterStrategy/single.js +108 -108
- package/src/datatable/scss/datatable.scss +149 -146
- package/src/datatable/tpl/button.tpl +6 -6
- package/src/datatable/tpl/layout.tpl +158 -158
- package/src/datatable.js +1056 -1056
- package/src/dateRange/css/dateRange.css +7 -7
- package/src/dateRange/css/dateRange.css.map +1 -1
- package/src/dateRange/dateRange.js +341 -341
- package/src/dateRange/scss/dateRange.scss +7 -7
- package/src/dateRange/tpl/select.tpl +18 -18
- package/src/datetime/css/picker.css +7 -7
- package/src/datetime/css/picker.css.map +1 -1
- package/src/datetime/picker.js +576 -576
- package/src/datetime/scss/picker.scss +192 -192
- package/src/datetime/tpl/picker.tpl +18 -18
- package/src/deleter/undo.tpl +6 -6
- package/src/deleter.js +296 -296
- package/src/destination/css/selector.css +7 -7
- package/src/destination/css/selector.css.map +1 -1
- package/src/destination/scss/selector.scss +36 -36
- package/src/destination/selector.js +195 -195
- package/src/destination/tpl/selector.tpl +13 -13
- package/src/dialog/alert.js +70 -70
- package/src/dialog/confirm.js +85 -85
- package/src/dialog/confirmDelete.js +95 -95
- package/src/dialog/tpl/body.tpl +24 -24
- package/src/dialog/tpl/buttons.tpl +6 -6
- package/src/dialog/tpl/checkbox.tpl +5 -5
- package/src/dialog.js +517 -517
- package/src/disabler.js +230 -230
- package/src/documentViewer/css/documentViewer.css +7 -7
- package/src/documentViewer/css/documentViewer.css.map +1 -1
- package/src/documentViewer/providers/pdfViewer/fallback/viewer.js +69 -69
- package/src/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +41 -41
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.js +475 -475
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.tpl +20 -20
- package/src/documentViewer/providers/pdfViewer/pdfjs/match.tpl +1 -1
- package/src/documentViewer/providers/pdfViewer/pdfjs/page.tpl +4 -4
- package/src/documentViewer/providers/pdfViewer/pdfjs/pageView.js +318 -318
- package/src/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +167 -167
- package/src/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +451 -451
- package/src/documentViewer/providers/pdfViewer/pdfjs/textManager.js +252 -252
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.js +299 -299
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.tpl +16 -16
- package/src/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +351 -351
- package/src/documentViewer/providers/pdfViewer.js +93 -93
- package/src/documentViewer/scss/documentViewer.scss +184 -184
- package/src/documentViewer/viewerFactory.js +191 -191
- package/src/documentViewer.js +238 -238
- package/src/dropdown/css/dropdown.css +7 -7
- package/src/dropdown/css/dropdown.css.map +1 -1
- package/src/dropdown/scss/dropdown.scss +99 -99
- package/src/dropdown/tpl/dropdown.tpl +8 -8
- package/src/dropdown/tpl/list-item.tpl +4 -4
- package/src/dropdown.js +255 -255
- package/src/durationer.js +222 -222
- package/src/dynamicComponent/css/dynamicComponent.css +7 -7
- package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/src/dynamicComponent/scss/dynamicComponent.scss +98 -98
- package/src/dynamicComponent/tpl/layout.tpl +17 -17
- package/src/dynamicComponent.js +554 -554
- package/src/feedback/feedback.tpl +7 -7
- package/src/feedback.js +295 -295
- package/src/figure/FigureStateActive.js +174 -174
- package/src/filesender.js +114 -114
- package/src/filter/template.tpl +5 -5
- package/src/filter.js +135 -135
- package/src/form/css/dropdownForm.css +7 -7
- package/src/form/css/dropdownForm.css.map +1 -1
- package/src/form/css/form.css +7 -7
- package/src/form/css/form.css.map +1 -1
- package/src/form/dropdownForm.js +281 -281
- package/src/form/form.js +688 -688
- package/src/form/scss/dropdownForm.scss +60 -60
- package/src/form/scss/form.scss +25 -25
- package/src/form/simpleForm.js +125 -125
- package/src/form/tpl/dropdownForm.tpl +4 -4
- package/src/form/tpl/form.tpl +7 -7
- package/src/form/validator/css/validator.css +7 -7
- package/src/form/validator/css/validator.css.map +1 -1
- package/src/form/validator/renderer.js +118 -118
- package/src/form/validator/scss/validator.scss +14 -14
- package/src/form/validator/tpl/message.tpl +1 -1
- package/src/form/validator/tpl/validator.tpl +1 -1
- package/src/form/validator/validator.js +220 -220
- package/src/form/widget/css/widget.css +7 -7
- package/src/form/widget/css/widget.css.map +1 -1
- package/src/form/widget/definitions.js +51 -51
- package/src/form/widget/loader.js +40 -40
- package/src/form/widget/providers/checkBox.js +138 -138
- package/src/form/widget/providers/comboBox.js +63 -63
- package/src/form/widget/providers/default.js +90 -90
- package/src/form/widget/providers/hidden.js +62 -62
- package/src/form/widget/providers/hiddenBox.js +152 -152
- package/src/form/widget/providers/radioBox.js +99 -99
- package/src/form/widget/providers/textArea.js +52 -52
- package/src/form/widget/providers/textBox.js +48 -48
- package/src/form/widget/scss/widget.scss +55 -55
- package/src/form/widget/tpl/checkBox.tpl +25 -25
- package/src/form/widget/tpl/comboBox.tpl +13 -13
- package/src/form/widget/tpl/hidden.tpl +1 -1
- package/src/form/widget/tpl/hiddenBox.tpl +17 -17
- package/src/form/widget/tpl/label.tpl +6 -6
- package/src/form/widget/tpl/radioBox.tpl +25 -25
- package/src/form/widget/tpl/textArea.tpl +8 -8
- package/src/form/widget/tpl/widget.tpl +8 -8
- package/src/form/widget/widget.js +372 -372
- package/src/form.js +53 -53
- package/src/formValidator/formValidator.js +253 -253
- package/src/formValidator/highlighters/highlighter.js +102 -102
- package/src/formValidator/highlighters/message.js +70 -70
- package/src/formValidator/highlighters/tooltip.js +78 -78
- package/src/generis/form/css/form.css +7 -7
- package/src/generis/form/css/form.css.map +1 -1
- package/src/generis/form/form.js +239 -239
- package/src/generis/form/readme.md +70 -70
- package/src/generis/form/scss/form.scss +23 -23
- package/src/generis/form/tpl/form.tpl +16 -16
- package/src/generis/validator/css/validator.css +7 -7
- package/src/generis/validator/css/validator.css.map +1 -1
- package/src/generis/validator/readme.md +46 -46
- package/src/generis/validator/scss/validator.scss +13 -13
- package/src/generis/validator/validator.js +128 -128
- package/src/generis/widget/checkBox/checkBox.js +112 -112
- package/src/generis/widget/checkBox/checkBox.tpl +18 -18
- package/src/generis/widget/comboBox/comboBox.js +67 -67
- package/src/generis/widget/comboBox/comboBox.tpl +12 -12
- package/src/generis/widget/css/widget.css +7 -7
- package/src/generis/widget/css/widget.css.map +1 -1
- package/src/generis/widget/hiddenBox/hiddenBox.js +132 -132
- package/src/generis/widget/hiddenBox/hiddenBox.tpl +16 -16
- package/src/generis/widget/loader.js +49 -49
- package/src/generis/widget/readme.md +59 -59
- package/src/generis/widget/scss/widget.scss +61 -61
- package/src/generis/widget/textBox/textBox.js +65 -65
- package/src/generis/widget/textBox/textBox.tpl +7 -7
- package/src/generis/widget/widget.js +164 -164
- package/src/generis/widget/widget.tpl +5 -5
- package/src/groupedComboBox.js +99 -99
- package/src/groupvalidator.js +84 -84
- package/src/hider.js +88 -88
- package/src/highlighter.js +1166 -1166
- package/src/image/ImgStateActive/extractLabel.js +29 -29
- package/src/image/ImgStateActive/helper.js +36 -36
- package/src/image/ImgStateActive/initHelper.js +137 -137
- package/src/image/ImgStateActive/initMediaEditor.js +92 -92
- package/src/image/ImgStateActive/mediaSizer.js +63 -63
- package/src/image/ImgStateActive.js +115 -115
- package/src/incrementer.js +319 -319
- package/src/inplacer.js +316 -316
- package/src/interactUtils.js +140 -140
- package/src/itemButtonList/css/item-button-list.css +23 -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 +282 -282
- package/src/keyNavigation/navigator.js +543 -543
- package/src/listbox/css/listbox.css +7 -7
- package/src/listbox/css/listbox.css.map +1 -1
- package/src/listbox/scss/listbox.scss +116 -116
- package/src/listbox/tpl/list.tpl +14 -14
- package/src/listbox/tpl/main.tpl +9 -9
- package/src/listbox.js +251 -251
- package/src/liststyler.js +155 -155
- package/src/loadingButton/css/button.css +7 -7
- package/src/loadingButton/css/button.css.map +1 -1
- package/src/loadingButton/loadingButton.js +110 -110
- package/src/loadingButton/scss/button.scss +41 -41
- package/src/loadingButton/tpl/button.tpl +5 -5
- package/src/lock/lock.tpl +16 -16
- package/src/lock.js +395 -395
- package/src/login/login.js +322 -322
- package/src/login/tpl/login.tpl +29 -29
- package/src/login/tpl/passwordReveal.tpl +7 -7
- package/src/maths/calculator/basicCalculator.js +55 -55
- package/src/maths/calculator/calculatorComponent.js +128 -128
- package/src/maths/calculator/core/areaBroker.js +38 -38
- package/src/maths/calculator/core/board.js +841 -841
- package/src/maths/calculator/core/expression.js +430 -430
- package/src/maths/calculator/core/labels.js +116 -116
- package/src/maths/calculator/core/plugin.js +40 -40
- package/src/maths/calculator/core/terms.js +459 -459
- package/src/maths/calculator/core/tokenizer.js +245 -245
- package/src/maths/calculator/core/tokens.js +178 -178
- package/src/maths/calculator/core/tpl/board.tpl +4 -4
- package/src/maths/calculator/css/calculator.css +7 -7
- package/src/maths/calculator/css/calculator.css.map +1 -1
- package/src/maths/calculator/defaultCalculator.js +66 -66
- package/src/maths/calculator/plugins/core/degrad.js +90 -90
- package/src/maths/calculator/plugins/core/history.js +166 -166
- package/src/maths/calculator/plugins/core/remind.js +96 -96
- package/src/maths/calculator/plugins/core/stepNavigation.js +175 -175
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate.tpl +36 -36
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +91 -91
- package/src/maths/calculator/plugins/modifiers/pow10.js +143 -143
- package/src/maths/calculator/plugins/modifiers/sign.js +339 -339
- package/src/maths/calculator/plugins/screen/simpleScreen/defaultTemplate.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/history.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +191 -191
- package/src/maths/calculator/pluginsLoader.js +46 -46
- package/src/maths/calculator/scientificCalculator.js +74 -74
- package/src/maths/calculator/scss/calculator.scss +396 -396
- package/src/maths/calculator/tpl/basicKeyboard.tpl +37 -37
- package/src/maths/calculator/tpl/basicScreen.tpl +2 -2
- package/src/maths/calculator/tpl/scientificKeyboard.tpl +61 -61
- package/src/maths/calculator/tpl/scientificScreen.tpl +3 -3
- package/src/mediaEditor/mediaEditorComponent.js +141 -141
- package/src/mediaEditor/plugins/mediaAlignment/helper.js +62 -62
- package/src/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +99 -99
- package/src/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/src/mediaEditor/plugins/mediaAlignment/tpl/mediaAlignment.tpl +25 -25
- package/src/mediaEditor/plugins/mediaDimension/helper.js +189 -189
- package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +561 -561
- package/src/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/src/mediaEditor/plugins/mediaDimension/tpl/mediaDimension.tpl +55 -55
- package/src/mediaEditor/tpl/editor.tpl +4 -4
- package/src/mediaplayer/css/player.css +7 -7
- package/src/mediaplayer/css/player.css.map +1 -1
- package/src/mediaplayer/players/html5.js +564 -564
- package/src/mediaplayer/players/youtube.js +323 -323
- package/src/mediaplayer/players.js +29 -29
- package/src/mediaplayer/readme.md +305 -305
- package/src/mediaplayer/scss/player.scss +569 -569
- package/src/mediaplayer/support.js +126 -126
- package/src/mediaplayer/tpl/audio.tpl +6 -6
- package/src/mediaplayer/tpl/player.tpl +37 -37
- package/src/mediaplayer/tpl/source.tpl +1 -1
- package/src/mediaplayer/tpl/video.tpl +6 -6
- package/src/mediaplayer/tpl/youtube.tpl +1 -1
- package/src/mediaplayer/utils/reminder.js +184 -184
- package/src/mediaplayer/utils/timeObserver.js +143 -143
- package/src/mediaplayer/youtubeManager.js +161 -161
- package/src/mediaplayer.js +1606 -1606
- package/src/mediasizer/mediasizer.tpl +55 -55
- package/src/mediasizer.js +635 -635
- package/src/modal.js +365 -365
- package/src/movableComponent.js +78 -78
- package/src/pageSizeSelector/tpl/pageSizeSelector.tpl +9 -9
- package/src/pageSizeSelector.js +107 -107
- package/src/pageStatus.js +147 -147
- package/src/pagination/css/pagination.css +7 -7
- package/src/pagination/css/pagination.css.map +1 -1
- package/src/pagination/paginationStrategy.js +53 -53
- package/src/pagination/providers/pages.js +161 -161
- package/src/pagination/providers/simple.js +74 -74
- package/src/pagination/providers/tpl/pages/page.tpl +1 -1
- package/src/pagination/providers/tpl/pages.tpl +8 -8
- package/src/pagination/providers/tpl/simple.tpl +7 -7
- package/src/pagination/scss/pagination.scss +111 -111
- package/src/pagination.js +237 -237
- package/src/previewer.js +300 -300
- package/src/progressbar.js +165 -165
- package/src/propertySelector/css/propertySelector.css +74 -0
- package/src/propertySelector/css/propertySelector.css.map +1 -0
- package/src/propertySelector/propertySelector.js +286 -0
- package/src/propertySelector/scss/propertySelector.scss +66 -0
- package/src/propertySelector/tpl/highlighted-text.tpl +1 -0
- package/src/propertySelector/tpl/property-description.tpl +13 -0
- package/src/propertySelector/tpl/property-selector.tpl +7 -0
- package/src/report/feedback.tpl +11 -11
- package/src/report/layout.tpl +10 -10
- package/src/report.js +184 -184
- package/src/resource/css/selector.css +7 -7
- package/src/resource/css/selector.css.map +1 -1
- package/src/resource/filters.js +208 -208
- package/src/resource/list.js +200 -200
- package/src/resource/scss/_filters.scss +26 -26
- package/src/resource/scss/_resource-list.scss +107 -107
- package/src/resource/scss/_resource-tree.scss +205 -205
- package/src/resource/scss/selector.scss +187 -187
- package/src/resource/selectable.js +322 -322
- package/src/resource/selector.js +871 -871
- package/src/resource/tpl/filters.tpl +2 -2
- package/src/resource/tpl/list.tpl +7 -7
- package/src/resource/tpl/listNode.tpl +4 -4
- package/src/resource/tpl/selector.tpl +46 -46
- package/src/resource/tpl/tree.tpl +4 -4
- package/src/resource/tpl/treeNode.tpl +30 -30
- package/src/resource/tree.js +400 -400
- package/src/resourcemgr/css/resourcemgr.css +7 -7
- package/src/resourcemgr/css/resourcemgr.css.map +1 -1
- package/src/resourcemgr/fileBrowser.js +381 -381
- package/src/resourcemgr/filePreview.js +73 -73
- package/src/resourcemgr/fileSelector.js +348 -348
- package/src/resourcemgr/scss/resourcemgr.scss +254 -254
- package/src/resourcemgr/tpl/fileSelect.tpl +39 -39
- package/src/resourcemgr/tpl/folder.tpl +11 -11
- package/src/resourcemgr/tpl/layout.tpl +84 -84
- package/src/resourcemgr/tpl/rootFolder.tpl +13 -13
- package/src/resourcemgr/util/updatePermissions.js +53 -53
- package/src/resourcemgr.js +216 -216
- package/src/scroller.js +94 -94
- package/src/scss/basic.scss +16 -16
- package/src/searchModal/advancedSearch.js +638 -601
- package/src/searchModal/css/advancedSearch.css +7 -14
- package/src/searchModal/css/advancedSearch.css.map +1 -1
- package/src/searchModal/css/searchModal.css +29 -8
- package/src/searchModal/css/searchModal.css.map +1 -1
- package/src/searchModal/scss/advancedSearch.scss +171 -177
- package/src/searchModal/scss/searchModal.scss +393 -375
- package/src/searchModal/tpl/advanced-search.tpl +9 -9
- package/src/searchModal/tpl/criteria-alias.tpl +1 -0
- package/src/searchModal/tpl/criteria-class-label.tpl +1 -0
- package/src/searchModal/tpl/criteria-label.tpl +1 -0
- package/src/searchModal/tpl/highlighted-text.tpl +1 -0
- package/src/searchModal/tpl/info-message.tpl +3 -3
- package/src/searchModal/tpl/invalid-criteria-warning.tpl +10 -10
- package/src/searchModal/tpl/layout.tpl +27 -25
- package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -12
- package/src/searchModal/tpl/list-select-criterion.tpl +12 -6
- package/src/searchModal/tpl/property-select-button.tpl +1 -0
- package/src/searchModal/tpl/results-container.tpl +1 -0
- package/src/searchModal/tpl/text-criterion.tpl +11 -6
- package/src/searchModal.js +761 -496
- package/src/selecter.js +43 -43
- package/src/stacker.js +133 -133
- package/src/switch/css/switch.css +7 -7
- package/src/switch/css/switch.css.map +1 -1
- package/src/switch/scss/switch.scss +83 -83
- package/src/switch/switch.js +195 -195
- package/src/switch/tpl/switch.tpl +7 -7
- package/src/tableModel.js +112 -112
- package/src/tabs/css/tabs.css +12 -12
- package/src/tabs/css/tabs.css.map +1 -1
- package/src/tabs/scss/tabs.scss +50 -50
- package/src/tabs/tpl/panel.tpl +3 -3
- package/src/tabs/tpl/tabs.tpl +10 -10
- package/src/tabs.js +528 -528
- package/src/taskQueue/css/taskQueue.css +7 -7
- package/src/taskQueue/css/taskQueue.css.map +1 -1
- package/src/taskQueue/scss/taskQueue.scss +47 -47
- package/src/taskQueue/status.js +228 -228
- package/src/taskQueue/table.js +350 -350
- package/src/taskQueue/taskQueue.js +33 -33
- package/src/taskQueue/taskQueueModel.js +548 -548
- package/src/taskQueue/tpl/statusMessage.tpl +7 -7
- package/src/taskQueue.js +218 -218
- package/src/taskQueueButton/css/taskable.css +7 -7
- package/src/taskQueueButton/css/taskable.css.map +1 -1
- package/src/taskQueueButton/css/treeButton.css +7 -7
- package/src/taskQueueButton/css/treeButton.css.map +1 -1
- package/src/taskQueueButton/scss/taskable.scss +4 -4
- package/src/taskQueueButton/scss/treeButton.scss +34 -34
- package/src/taskQueueButton/standardButton.js +108 -108
- package/src/taskQueueButton/taskable.js +202 -202
- package/src/taskQueueButton/tpl/report.tpl +5 -5
- package/src/taskQueueButton/tpl/treeButton.tpl +6 -6
- package/src/taskQueueButton/treeButton.js +109 -109
- package/src/themeLoader.js +252 -252
- package/src/themes.js +162 -162
- package/src/toggler.js +200 -200
- package/src/tooltip/default.tpl +3 -3
- package/src/tooltip.js +160 -160
- package/src/tooltipster.js +25 -25
- package/src/transformer.js +327 -327
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/src/tristateCheckboxGroup/scss/tristateCheckboxGroup.scss +15 -15
- package/src/tristateCheckboxGroup/tpl/li.tpl +6 -6
- package/src/tristateCheckboxGroup.js +207 -207
- package/src/uploader/fileEntry.tpl +6 -6
- package/src/uploader/uploader.tpl +32 -32
- package/src/uploader.js +594 -594
- package/src/validator/Report.js +10 -10
- package/src/validator/Validator.js +108 -108
- package/src/validator/validators.js +220 -220
- package/src/validator.js +264 -264
- package/src/waitForMedia.js +82 -82
- package/src/waitingDialog/css/waitingDialog.css +7 -7
- package/src/waitingDialog/css/waitingDialog.css.map +1 -1
- package/src/waitingDialog/scss/waitingDialog.scss +34 -34
- package/src/waitingDialog/waitingDialog.js +240 -240
package/dist/highlighter.js
CHANGED
|
@@ -13,29 +13,29 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
13
13
|
}, _typeof(obj);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
/**
|
|
17
|
-
* Data attribute used to logically group the wrapping nodes into a single selection
|
|
18
|
-
* @type {string}
|
|
16
|
+
/**
|
|
17
|
+
* Data attribute used to logically group the wrapping nodes into a single selection
|
|
18
|
+
* @type {string}
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
var GROUP_ATTR = 'data-hl-group';
|
|
22
|
-
/**
|
|
23
|
-
* Children of those nodes types cannot be highlighted
|
|
24
|
-
* @type {string[]}
|
|
22
|
+
/**
|
|
23
|
+
* Children of those nodes types cannot be highlighted
|
|
24
|
+
* @type {string[]}
|
|
25
25
|
*/
|
|
26
26
|
|
|
27
27
|
var defaultBlackList = ['textarea', 'math', 'script', '.select2-container'];
|
|
28
|
-
/**
|
|
29
|
-
* @param {Object} options
|
|
30
|
-
* @param {String} options.className - name of the class that will be used by the wrappers tags to highlight text
|
|
31
|
-
* @param {String} options.containerSelector - allows to select the root Node in which highlighting is allowed
|
|
32
|
-
* @param {Array<String>} [options.containersBlackList] - additional blacklist selectors to be added to module instance's blacklist
|
|
33
|
-
* @param {Array<String>} [options.containersWhiteList] - whitelist selectors; supported only in `keepEmptyNodes` mode.
|
|
34
|
-
* Priority of blacklist or whitelist is decided by which selector is closest to the node. If no match found, node is considered whitelisted.
|
|
35
|
-
* @param {Boolean} [options.clearOnClick] - clear single highlight node on click
|
|
36
|
-
* @param {Object} [options.colors] - keys is keeping as the "c" value of storing/restore the highlighters for indexing, values are wrappers class names
|
|
37
|
-
* @param {Boolean} [options.keepEmptyNodes] - retain original dom structure as far as possible and do not remove empty nodes if they were not created by highlighter
|
|
38
|
-
* @returns {Object} - the highlighter instance
|
|
28
|
+
/**
|
|
29
|
+
* @param {Object} options
|
|
30
|
+
* @param {String} options.className - name of the class that will be used by the wrappers tags to highlight text
|
|
31
|
+
* @param {String} options.containerSelector - allows to select the root Node in which highlighting is allowed
|
|
32
|
+
* @param {Array<String>} [options.containersBlackList] - additional blacklist selectors to be added to module instance's blacklist
|
|
33
|
+
* @param {Array<String>} [options.containersWhiteList] - whitelist selectors; supported only in `keepEmptyNodes` mode.
|
|
34
|
+
* Priority of blacklist or whitelist is decided by which selector is closest to the node. If no match found, node is considered whitelisted.
|
|
35
|
+
* @param {Boolean} [options.clearOnClick] - clear single highlight node on click
|
|
36
|
+
* @param {Object} [options.colors] - keys is keeping as the "c" value of storing/restore the highlighters for indexing, values are wrappers class names
|
|
37
|
+
* @param {Boolean} [options.keepEmptyNodes] - retain original dom structure as far as possible and do not remove empty nodes if they were not created by highlighter
|
|
38
|
+
* @returns {Object} - the highlighter instance
|
|
39
39
|
*/
|
|
40
40
|
|
|
41
41
|
function highlighter (options) {
|
|
@@ -47,10 +47,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
47
47
|
if (options.colors) {
|
|
48
48
|
highlightingClasses = Object.values(options.colors);
|
|
49
49
|
}
|
|
50
|
-
/**
|
|
51
|
-
* list of node selectors which should NOT receive any highlighting from this instance
|
|
52
|
-
* an optional passed-in blacklist is merged with local defaults
|
|
53
|
-
* @type {Array}
|
|
50
|
+
/**
|
|
51
|
+
* list of node selectors which should NOT receive any highlighting from this instance
|
|
52
|
+
* an optional passed-in blacklist is merged with local defaults
|
|
53
|
+
* @type {Array}
|
|
54
54
|
*/
|
|
55
55
|
|
|
56
56
|
|
|
@@ -64,42 +64,42 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
64
64
|
containersWhiteListSelector = options.containersWhiteList.join(', ');
|
|
65
65
|
containersBlackAndWhiteListSelector = _.union(containersBlackList, options.containersWhiteList).join(', ');
|
|
66
66
|
}
|
|
67
|
-
/**
|
|
68
|
-
* used in recursive loops to decide if we should wrap or not the current node
|
|
69
|
-
* @type {boolean}
|
|
67
|
+
/**
|
|
68
|
+
* used in recursive loops to decide if we should wrap or not the current node
|
|
69
|
+
* @type {boolean}
|
|
70
70
|
*/
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
var isWrapping = false;
|
|
74
|
-
/**
|
|
75
|
-
* performance improvement to break out of a potentially big recursive loop once the wrapping has ended
|
|
76
|
-
* @type {boolean}
|
|
74
|
+
/**
|
|
75
|
+
* performance improvement to break out of a potentially big recursive loop once the wrapping has ended
|
|
76
|
+
* @type {boolean}
|
|
77
77
|
*/
|
|
78
78
|
|
|
79
79
|
var hasWrapped = false;
|
|
80
|
-
/**
|
|
81
|
-
* used in recursive loops to assign a group Id to the current wrapped node
|
|
82
|
-
* @type {number}
|
|
80
|
+
/**
|
|
81
|
+
* used in recursive loops to assign a group Id to the current wrapped node
|
|
82
|
+
* @type {number}
|
|
83
83
|
*/
|
|
84
84
|
|
|
85
85
|
var currentGroupId;
|
|
86
|
-
/**
|
|
87
|
-
* used in recursive loops to build the index of text nodes
|
|
88
|
-
* @type {number}
|
|
86
|
+
/**
|
|
87
|
+
* used in recursive loops to build the index of text nodes
|
|
88
|
+
* @type {number}
|
|
89
89
|
*/
|
|
90
90
|
|
|
91
91
|
var textNodesIndex;
|
|
92
|
-
/**
|
|
93
|
-
* Returns the node in which highlighting is allowed
|
|
94
|
-
* @returns {Element}
|
|
92
|
+
/**
|
|
93
|
+
* Returns the node in which highlighting is allowed
|
|
94
|
+
* @returns {Element}
|
|
95
95
|
*/
|
|
96
96
|
|
|
97
97
|
function getContainer() {
|
|
98
98
|
return $(containerSelector).get(0);
|
|
99
99
|
}
|
|
100
|
-
/**
|
|
101
|
-
* Returns all highlighted nodes, excluding any inside blacklisted elements
|
|
102
|
-
* @returns {JQuery<HTMLElement>}
|
|
100
|
+
/**
|
|
101
|
+
* Returns all highlighted nodes, excluding any inside blacklisted elements
|
|
102
|
+
* @returns {JQuery<HTMLElement>}
|
|
103
103
|
*/
|
|
104
104
|
|
|
105
105
|
|
|
@@ -108,14 +108,14 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
108
108
|
return !isBlacklisted(node);
|
|
109
109
|
});
|
|
110
110
|
}
|
|
111
|
-
/**
|
|
112
|
-
* Attach data to wrapper node.
|
|
113
|
-
* Use it when deleting this highlight to know if highlight content should be merged with neighbour text nodes or not.
|
|
114
|
-
* Use it when building/restoring index to know if restored highlight content should be split off neighbour text node or not.
|
|
115
|
-
* Needed to keep markup the same as it was before highlighting.
|
|
116
|
-
* @param {HTMLElement} node
|
|
117
|
-
* @param {Boolean} beforeWasSplit
|
|
118
|
-
* @param {Boolean} afterWasSplit
|
|
111
|
+
/**
|
|
112
|
+
* Attach data to wrapper node.
|
|
113
|
+
* Use it when deleting this highlight to know if highlight content should be merged with neighbour text nodes or not.
|
|
114
|
+
* Use it when building/restoring index to know if restored highlight content should be split off neighbour text node or not.
|
|
115
|
+
* Needed to keep markup the same as it was before highlighting.
|
|
116
|
+
* @param {HTMLElement} node
|
|
117
|
+
* @param {Boolean} beforeWasSplit
|
|
118
|
+
* @param {Boolean} afterWasSplit
|
|
119
119
|
*/
|
|
120
120
|
|
|
121
121
|
|
|
@@ -123,9 +123,9 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
123
123
|
node.dataset.beforeWasSplit = beforeWasSplit;
|
|
124
124
|
node.dataset.afterWasSplit = afterWasSplit;
|
|
125
125
|
}
|
|
126
|
-
/**
|
|
127
|
-
* Highlight all text nodes within each given range
|
|
128
|
-
* @param {Range[]} ranges - array of ranges to highlight, may be given by the helper selector.getAllRanges()
|
|
126
|
+
/**
|
|
127
|
+
* Highlight all text nodes within each given range
|
|
128
|
+
* @param {Range[]} ranges - array of ranges to highlight, may be given by the helper selector.getAllRanges()
|
|
129
129
|
*/
|
|
130
130
|
|
|
131
131
|
|
|
@@ -180,10 +180,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
180
180
|
$(containerSelector + ' .' + className).off('click').on('click', clearSingleHighlight);
|
|
181
181
|
}
|
|
182
182
|
}
|
|
183
|
-
/**
|
|
184
|
-
* Check if a range is valid
|
|
185
|
-
* @param {Range} range
|
|
186
|
-
* @returns {boolean}
|
|
183
|
+
/**
|
|
184
|
+
* Check if a range is valid
|
|
185
|
+
* @param {Range} range
|
|
186
|
+
* @returns {boolean}
|
|
187
187
|
*/
|
|
188
188
|
|
|
189
189
|
|
|
@@ -197,18 +197,18 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
197
197
|
return false;
|
|
198
198
|
}
|
|
199
199
|
}
|
|
200
|
-
/**
|
|
201
|
-
* Core wrapping function. Traverse the DOM tree and highlight (= wraps) all text nodes within the given range.
|
|
202
|
-
* Recursive.
|
|
203
|
-
*
|
|
204
|
-
* @param {Node} rootNode - top of the node hierarchy in which text nodes will be searched
|
|
205
|
-
* @param {Object} rangeInfos
|
|
206
|
-
* @param {Node} rangeInfos.startNode - node on which the selection starts
|
|
207
|
-
* @param {Node} rangeInfos.startNodeContainer - container of the startNode, or the start node itself in case of text nodes
|
|
208
|
-
* @param {number} rangeInfos.startOffset - same as range.startOffset, but not read-only to allow override
|
|
209
|
-
* @param {Node} rangeInfos.endNode - node on which the selection ends
|
|
210
|
-
* @param {Node} rangeInfos.endNodeContainer - container of the endNode, or the end node itself in case of text nodes
|
|
211
|
-
* @param {number} rangeInfos.endOffset - same as range.endOffset, but not read-only to allow override
|
|
200
|
+
/**
|
|
201
|
+
* Core wrapping function. Traverse the DOM tree and highlight (= wraps) all text nodes within the given range.
|
|
202
|
+
* Recursive.
|
|
203
|
+
*
|
|
204
|
+
* @param {Node} rootNode - top of the node hierarchy in which text nodes will be searched
|
|
205
|
+
* @param {Object} rangeInfos
|
|
206
|
+
* @param {Node} rangeInfos.startNode - node on which the selection starts
|
|
207
|
+
* @param {Node} rangeInfos.startNodeContainer - container of the startNode, or the start node itself in case of text nodes
|
|
208
|
+
* @param {number} rangeInfos.startOffset - same as range.startOffset, but not read-only to allow override
|
|
209
|
+
* @param {Node} rangeInfos.endNode - node on which the selection ends
|
|
210
|
+
* @param {Node} rangeInfos.endNodeContainer - container of the endNode, or the end node itself in case of text nodes
|
|
211
|
+
* @param {number} rangeInfos.endOffset - same as range.endOffset, but not read-only to allow override
|
|
212
212
|
*/
|
|
213
213
|
|
|
214
214
|
|
|
@@ -329,12 +329,12 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
329
329
|
}
|
|
330
330
|
}
|
|
331
331
|
}
|
|
332
|
-
/**
|
|
333
|
-
* Restructure content of the highlighted wrapper according to the selectedRange
|
|
334
|
-
* @param {Node} textNode
|
|
335
|
-
* @param {string} activeClass
|
|
336
|
-
* @param {Range} selectedRange
|
|
337
|
-
* @param {number} currentGroupId
|
|
332
|
+
/**
|
|
333
|
+
* Restructure content of the highlighted wrapper according to the selectedRange
|
|
334
|
+
* @param {Node} textNode
|
|
335
|
+
* @param {string} activeClass
|
|
336
|
+
* @param {Range} selectedRange
|
|
337
|
+
* @param {number} currentGroupId
|
|
338
338
|
*/
|
|
339
339
|
|
|
340
340
|
|
|
@@ -344,46 +344,46 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
344
344
|
range.selectNodeContents(textNode);
|
|
345
345
|
var isSelectionCoversNodeStart = range.compareBoundaryPoints(Range.START_TO_START, selectedRange) === 0;
|
|
346
346
|
var isSelectionCoversNodeEnd = range.compareBoundaryPoints(Range.END_TO_END, selectedRange) === 0;
|
|
347
|
-
/*
|
|
348
|
-
There are 4 possible cases selected area is intersected with already highlighted element.
|
|
349
|
-
In examples below the border is represents the selection, "yellow" is class name of already highlighted
|
|
350
|
-
container, "red" is class name of currently active highlighter
|
|
351
|
-
**********************************************************************************************************
|
|
352
|
-
1. The container content is completely selected, so that we only have to change the highlighter class name
|
|
353
|
-
|
|
354
|
-
__________________________________________________
|
|
355
|
-
| |
|
|
356
|
-
|<span class="yellow"> Lorem ipsum dolor sit</span>|
|
|
357
|
-
|__________________________________________________|
|
|
358
|
-
|
|
359
|
-
<span class="red"> Lorem ipsum dolor sit</span>
|
|
360
|
-
|
|
361
|
-
2. The container content is partially selected from the begging.
|
|
362
|
-
|
|
363
|
-
______________________________
|
|
364
|
-
| |
|
|
365
|
-
|<span class="yellow"> Lorem ip|sum dolor sit</span>
|
|
366
|
-
|______________________________|
|
|
367
|
-
|
|
368
|
-
<span class="red"> Lorem ip</span><span class="yellow">sum dolor sit</span>
|
|
369
|
-
|
|
370
|
-
3. The container content is partially selected at the end.
|
|
371
|
-
|
|
372
|
-
____________________
|
|
373
|
-
| |
|
|
374
|
-
<span class="yellow"> Lorem ip|sum dolor sit</span>|
|
|
375
|
-
|____________________|
|
|
376
|
-
|
|
377
|
-
<span class="yellow"> Lorem ip</span><span class="red">sum dolor sit</span>
|
|
378
|
-
|
|
379
|
-
4. The container content is partially selected in the middle.
|
|
380
|
-
|
|
381
|
-
___________
|
|
382
|
-
| |
|
|
383
|
-
<span class="yellow"> Lorem |ipsum dolor| sit</span>
|
|
384
|
-
|___________|
|
|
385
|
-
|
|
386
|
-
<span class="yellow"> Lorem </span><span class="red">ipsum dolor</span><span class="yellow"> sit</span>
|
|
347
|
+
/*
|
|
348
|
+
There are 4 possible cases selected area is intersected with already highlighted element.
|
|
349
|
+
In examples below the border is represents the selection, "yellow" is class name of already highlighted
|
|
350
|
+
container, "red" is class name of currently active highlighter
|
|
351
|
+
**********************************************************************************************************
|
|
352
|
+
1. The container content is completely selected, so that we only have to change the highlighter class name
|
|
353
|
+
Input:
|
|
354
|
+
__________________________________________________
|
|
355
|
+
| |
|
|
356
|
+
|<span class="yellow"> Lorem ipsum dolor sit</span>|
|
|
357
|
+
|__________________________________________________|
|
|
358
|
+
Output:
|
|
359
|
+
<span class="red"> Lorem ipsum dolor sit</span>
|
|
360
|
+
**********************************************************************************************************
|
|
361
|
+
2. The container content is partially selected from the begging.
|
|
362
|
+
Input:
|
|
363
|
+
______________________________
|
|
364
|
+
| |
|
|
365
|
+
|<span class="yellow"> Lorem ip|sum dolor sit</span>
|
|
366
|
+
|______________________________|
|
|
367
|
+
Output:
|
|
368
|
+
<span class="red"> Lorem ip</span><span class="yellow">sum dolor sit</span>
|
|
369
|
+
**********************************************************************************************************
|
|
370
|
+
3. The container content is partially selected at the end.
|
|
371
|
+
Input:
|
|
372
|
+
____________________
|
|
373
|
+
| |
|
|
374
|
+
<span class="yellow"> Lorem ip|sum dolor sit</span>|
|
|
375
|
+
|____________________|
|
|
376
|
+
Output:
|
|
377
|
+
<span class="yellow"> Lorem ip</span><span class="red">sum dolor sit</span>
|
|
378
|
+
**********************************************************************************************************
|
|
379
|
+
4. The container content is partially selected in the middle.
|
|
380
|
+
Input:
|
|
381
|
+
___________
|
|
382
|
+
| |
|
|
383
|
+
<span class="yellow"> Lorem |ipsum dolor| sit</span>
|
|
384
|
+
|___________|
|
|
385
|
+
Output:
|
|
386
|
+
<span class="yellow"> Lorem </span><span class="red">ipsum dolor</span><span class="yellow"> sit</span>
|
|
387
387
|
*/
|
|
388
388
|
|
|
389
389
|
if (isSelectionCoversNodeStart && isSelectionCoversNodeEnd) {
|
|
@@ -399,13 +399,13 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
399
399
|
wrapContainerChildNodes(container, 1, activeClass, currentGroupId);
|
|
400
400
|
}
|
|
401
401
|
}
|
|
402
|
-
/**
|
|
403
|
-
* Wraps all containers text nodes with highlighter element.
|
|
404
|
-
* The child node with index given by indexToWrapNode parameter will be wrap with class given by activeClass parameter
|
|
405
|
-
* @param {Element} container
|
|
406
|
-
* @param {number} indexToWrapNode
|
|
407
|
-
* @param {string} activeClass
|
|
408
|
-
* @param {number} currentGroupId
|
|
402
|
+
/**
|
|
403
|
+
* Wraps all containers text nodes with highlighter element.
|
|
404
|
+
* The child node with index given by indexToWrapNode parameter will be wrap with class given by activeClass parameter
|
|
405
|
+
* @param {Element} container
|
|
406
|
+
* @param {number} indexToWrapNode
|
|
407
|
+
* @param {string} activeClass
|
|
408
|
+
* @param {number} currentGroupId
|
|
409
409
|
*/
|
|
410
410
|
|
|
411
411
|
|
|
@@ -430,11 +430,11 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
430
430
|
});
|
|
431
431
|
container.replaceWith(fragment);
|
|
432
432
|
}
|
|
433
|
-
/**
|
|
434
|
-
* wraps a text node into the highlight span
|
|
435
|
-
* @param {Node} node - the node to wrap
|
|
436
|
-
* @param {number} groupId - the highlight group
|
|
437
|
-
* @returns {Node|null} wrapper node, if it was created
|
|
433
|
+
/**
|
|
434
|
+
* wraps a text node into the highlight span
|
|
435
|
+
* @param {Node} node - the node to wrap
|
|
436
|
+
* @param {number} groupId - the highlight group
|
|
437
|
+
* @returns {Node|null} wrapper node, if it was created
|
|
438
438
|
*/
|
|
439
439
|
|
|
440
440
|
|
|
@@ -446,11 +446,11 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
446
446
|
|
|
447
447
|
return null;
|
|
448
448
|
}
|
|
449
|
-
/**
|
|
450
|
-
* We need to re-index the groups after a user highlight: either to merge groups or to resolve inconsistencies
|
|
451
|
-
* Recursive.
|
|
452
|
-
*
|
|
453
|
-
* @param {Node} rootNode
|
|
449
|
+
/**
|
|
450
|
+
* We need to re-index the groups after a user highlight: either to merge groups or to resolve inconsistencies
|
|
451
|
+
* Recursive.
|
|
452
|
+
*
|
|
453
|
+
* @param {Node} rootNode
|
|
454
454
|
*/
|
|
455
455
|
|
|
456
456
|
|
|
@@ -483,10 +483,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
485
|
}
|
|
486
|
-
/**
|
|
487
|
-
* Some highlights may result in having adjacent wrapping nodes. We remove them here to get a cleaner markup.
|
|
488
|
-
*
|
|
489
|
-
* @param {Node} rootNode
|
|
486
|
+
/**
|
|
487
|
+
* Some highlights may result in having adjacent wrapping nodes. We remove them here to get a cleaner markup.
|
|
488
|
+
*
|
|
489
|
+
* @param {Node} rootNode
|
|
490
490
|
*/
|
|
491
491
|
|
|
492
492
|
|
|
@@ -524,8 +524,8 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
524
524
|
}
|
|
525
525
|
}
|
|
526
526
|
}
|
|
527
|
-
/**
|
|
528
|
-
* Unwraps highlighted nodes with a line break or with an empty content
|
|
527
|
+
/**
|
|
528
|
+
* Unwraps highlighted nodes with a line break or with an empty content
|
|
529
529
|
*/
|
|
530
530
|
|
|
531
531
|
|
|
@@ -542,13 +542,13 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
542
542
|
}
|
|
543
543
|
});
|
|
544
544
|
}
|
|
545
|
-
/**
|
|
546
|
-
* Check condition to avoid the work of `unwrapEmptyHighlights` ahead of time, before `mergeAdjacentNodes` runs,
|
|
547
|
-
* because in `keepEmptyNodes` case we do not want to add nodes to dom unless necessary.
|
|
548
|
-
* Also be more strict and don't allow to select nodes with spaces only, because they may appear in unexpected places in markup
|
|
549
|
-
* (here it's not exactly same as `unwrapEmptyHighlights`).
|
|
550
|
-
* @param {Node} node - node which will be wrapped (highlighted)
|
|
551
|
-
* @returns {Boolean}
|
|
545
|
+
/**
|
|
546
|
+
* Check condition to avoid the work of `unwrapEmptyHighlights` ahead of time, before `mergeAdjacentNodes` runs,
|
|
547
|
+
* because in `keepEmptyNodes` case we do not want to add nodes to dom unless necessary.
|
|
548
|
+
* Also be more strict and don't allow to select nodes with spaces only, because they may appear in unexpected places in markup
|
|
549
|
+
* (here it's not exactly same as `unwrapEmptyHighlights`).
|
|
550
|
+
* @param {Node} node - node which will be wrapped (highlighted)
|
|
551
|
+
* @returns {Boolean}
|
|
552
552
|
*/
|
|
553
553
|
|
|
554
554
|
|
|
@@ -577,12 +577,12 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
577
577
|
|
|
578
578
|
return false;
|
|
579
579
|
}
|
|
580
|
-
/**
|
|
581
|
-
* `range.surroundContents` can create empty text nodes,
|
|
582
|
-
* which will cause trouble in `mergeAdjacentNodes` later (in `keepEmptyNodes` case).
|
|
583
|
-
* This method surrounds range, then removes those nodes
|
|
584
|
-
* @param {Range} range
|
|
585
|
-
* @param {Node} wrapperNode
|
|
580
|
+
/**
|
|
581
|
+
* `range.surroundContents` can create empty text nodes,
|
|
582
|
+
* which will cause trouble in `mergeAdjacentNodes` later (in `keepEmptyNodes` case).
|
|
583
|
+
* This method surrounds range, then removes those nodes
|
|
584
|
+
* @param {Range} range
|
|
585
|
+
* @param {Node} wrapperNode
|
|
586
586
|
*/
|
|
587
587
|
|
|
588
588
|
|
|
@@ -593,10 +593,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
593
593
|
removeEmptyTextNodeIfDifferent(wrapperNode.previousSibling, containerPreviousSibling);
|
|
594
594
|
removeEmptyTextNodeIfDifferent(wrapperNode.nextSibling, containerNextSibling);
|
|
595
595
|
}
|
|
596
|
-
/**
|
|
597
|
-
* Remove `node`, if it's an empty text node and is *not* the same node as `nodeToCompare`
|
|
598
|
-
* @param {Node} node
|
|
599
|
-
* @param {Node} nodeToCompare
|
|
596
|
+
/**
|
|
597
|
+
* Remove `node`, if it's an empty text node and is *not* the same node as `nodeToCompare`
|
|
598
|
+
* @param {Node} node
|
|
599
|
+
* @param {Node} nodeToCompare
|
|
600
600
|
*/
|
|
601
601
|
|
|
602
602
|
|
|
@@ -605,8 +605,8 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
605
605
|
node.remove();
|
|
606
606
|
}
|
|
607
607
|
}
|
|
608
|
-
/**
|
|
609
|
-
* Remove all wrapping nodes from markup
|
|
608
|
+
/**
|
|
609
|
+
* Remove all wrapping nodes from markup
|
|
610
610
|
*/
|
|
611
611
|
|
|
612
612
|
|
|
@@ -622,8 +622,8 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
622
622
|
}
|
|
623
623
|
});
|
|
624
624
|
}
|
|
625
|
-
/**
|
|
626
|
-
* Remove unwrap dom node
|
|
625
|
+
/**
|
|
626
|
+
* Remove unwrap dom node
|
|
627
627
|
*/
|
|
628
628
|
|
|
629
629
|
|
|
@@ -668,21 +668,21 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
668
668
|
}
|
|
669
669
|
}
|
|
670
670
|
}
|
|
671
|
-
/**
|
|
672
|
-
* Index-related functions:
|
|
673
|
-
* ========================
|
|
674
|
-
* To allow saving and restoring highlights on an equivalent, but different, DOM tree (for example if the markup is deleted and re-created)
|
|
675
|
-
* we build an index containing the status of each text node:
|
|
676
|
-
* - not highlighted
|
|
677
|
-
* - fully highlighted
|
|
678
|
-
* - partially highlighted (= with inline ranges)
|
|
679
|
-
*
|
|
680
|
-
* This index will be used to restore a selection on the new DOM tree
|
|
671
|
+
/**
|
|
672
|
+
* Index-related functions:
|
|
673
|
+
* ========================
|
|
674
|
+
* To allow saving and restoring highlights on an equivalent, but different, DOM tree (for example if the markup is deleted and re-created)
|
|
675
|
+
* we build an index containing the status of each text node:
|
|
676
|
+
* - not highlighted
|
|
677
|
+
* - fully highlighted
|
|
678
|
+
* - partially highlighted (= with inline ranges)
|
|
679
|
+
*
|
|
680
|
+
* This index will be used to restore a selection on the new DOM tree
|
|
681
681
|
*/
|
|
682
682
|
|
|
683
|
-
/**
|
|
684
|
-
* Bootstrap the process of building the highlight index
|
|
685
|
-
* @returns {Object[]|BuildModelResultKeepEmpty|null}
|
|
683
|
+
/**
|
|
684
|
+
* Bootstrap the process of building the highlight index
|
|
685
|
+
* @returns {Object[]|BuildModelResultKeepEmpty|null}
|
|
686
686
|
*/
|
|
687
687
|
|
|
688
688
|
|
|
@@ -707,10 +707,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
707
707
|
}
|
|
708
708
|
}
|
|
709
709
|
}
|
|
710
|
-
/**
|
|
711
|
-
* Traverse the DOM tree to create the text Nodes index. Recursive.
|
|
712
|
-
* @param {Node} rootNode
|
|
713
|
-
* @param {Object[]} highlightIndex
|
|
710
|
+
/**
|
|
711
|
+
* Traverse the DOM tree to create the text Nodes index. Recursive.
|
|
712
|
+
* @param {Node} rootNode
|
|
713
|
+
* @param {Object[]} highlightIndex
|
|
714
714
|
*/
|
|
715
715
|
|
|
716
716
|
|
|
@@ -779,28 +779,28 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
779
779
|
}
|
|
780
780
|
}
|
|
781
781
|
}
|
|
782
|
-
/**
|
|
783
|
-
* @typedef HighlightEntryKeepEmpty
|
|
784
|
-
* @property {String} groupId
|
|
785
|
-
* @property {String} c - color
|
|
786
|
-
* @property {Number} offsetBefore
|
|
787
|
-
* @property {Number} textLength
|
|
788
|
-
* @property {String} beforeWasSplit
|
|
789
|
-
* @property {String} afterWasSplit
|
|
790
|
-
* @property {Array<Number>} path - on each level from root container to highlight, index among siblings
|
|
782
|
+
/**
|
|
783
|
+
* @typedef HighlightEntryKeepEmpty
|
|
784
|
+
* @property {String} groupId
|
|
785
|
+
* @property {String} c - color
|
|
786
|
+
* @property {Number} offsetBefore
|
|
787
|
+
* @property {Number} textLength
|
|
788
|
+
* @property {String} beforeWasSplit
|
|
789
|
+
* @property {String} afterWasSplit
|
|
790
|
+
* @property {Array<Number>} path - on each level from root container to highlight, index among siblings
|
|
791
791
|
*/
|
|
792
792
|
|
|
793
|
-
/**
|
|
794
|
-
* @typedef BuildModelResultKeepEmpty
|
|
795
|
-
* @property {HighlightEntryKeepEmpty[]} highlightModel
|
|
796
|
-
* @property {NodeList} wrapperNodes
|
|
793
|
+
/**
|
|
794
|
+
* @typedef BuildModelResultKeepEmpty
|
|
795
|
+
* @property {HighlightEntryKeepEmpty[]} highlightModel
|
|
796
|
+
* @property {NodeList} wrapperNodes
|
|
797
797
|
*/
|
|
798
798
|
|
|
799
|
-
/**
|
|
800
|
-
* For `keepEmptyNodes` option, creates data model of highlights.
|
|
801
|
-
* Additionally returns array of highlight nodes. Traverses DOM tree.
|
|
802
|
-
* @param {Node} rootNode
|
|
803
|
-
* @returns {BuildModelResultKeepEmpty|null} result
|
|
799
|
+
/**
|
|
800
|
+
* For `keepEmptyNodes` option, creates data model of highlights.
|
|
801
|
+
* Additionally returns array of highlight nodes. Traverses DOM tree.
|
|
802
|
+
* @param {Node} rootNode
|
|
803
|
+
* @returns {BuildModelResultKeepEmpty|null} result
|
|
804
804
|
*/
|
|
805
805
|
|
|
806
806
|
|
|
@@ -872,9 +872,9 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
872
872
|
wrapperNodes: wrapperNodes
|
|
873
873
|
};
|
|
874
874
|
}
|
|
875
|
-
/**
|
|
876
|
-
* Bootstrap the process of restoring the highlights from an index
|
|
877
|
-
* @param {Object[]|HighlightEntryKeepEmpty[]|null} highlightIndex
|
|
875
|
+
/**
|
|
876
|
+
* Bootstrap the process of restoring the highlights from an index
|
|
877
|
+
* @param {Object[]|HighlightEntryKeepEmpty[]|null} highlightIndex
|
|
878
878
|
*/
|
|
879
879
|
|
|
880
880
|
|
|
@@ -891,10 +891,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
891
891
|
}
|
|
892
892
|
}
|
|
893
893
|
}
|
|
894
|
-
/**
|
|
895
|
-
* Traverse the DOM tree to wraps the text nodes according to the highlight index. Recursive.
|
|
896
|
-
* @param {Node} rootNode
|
|
897
|
-
* @param {Object[]} highlightIndex
|
|
894
|
+
/**
|
|
895
|
+
* Traverse the DOM tree to wraps the text nodes according to the highlight index. Recursive.
|
|
896
|
+
* @param {Node} rootNode
|
|
897
|
+
* @param {Object[]} highlightIndex
|
|
898
898
|
*/
|
|
899
899
|
|
|
900
900
|
|
|
@@ -939,11 +939,11 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
939
939
|
}
|
|
940
940
|
}
|
|
941
941
|
}
|
|
942
|
-
/**
|
|
943
|
-
* For `keepEmptyNodes` option, wraps the text nodes according to highlights data model.
|
|
944
|
-
* Traverses and updates DOM tree. Shouldn't throw errors in case of mismatches.
|
|
945
|
-
* @param {Node} rootNode
|
|
946
|
-
* @param {HighlightEntryKeepEmpty[]|null} highlightModel
|
|
942
|
+
/**
|
|
943
|
+
* For `keepEmptyNodes` option, wraps the text nodes according to highlights data model.
|
|
944
|
+
* Traverses and updates DOM tree. Shouldn't throw errors in case of mismatches.
|
|
945
|
+
* @param {Node} rootNode
|
|
946
|
+
* @param {HighlightEntryKeepEmpty[]|null} highlightModel
|
|
947
947
|
*/
|
|
948
948
|
|
|
949
949
|
|
|
@@ -1020,9 +1020,9 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1020
1020
|
rangeSurroundContentsNoEmptyNodes(range, wrapperNode);
|
|
1021
1021
|
}
|
|
1022
1022
|
}
|
|
1023
|
-
/**
|
|
1024
|
-
* Set highlighter color
|
|
1025
|
-
* @param {string} color Active highlighter color
|
|
1023
|
+
/**
|
|
1024
|
+
* Set highlighter color
|
|
1025
|
+
* @param {string} color Active highlighter color
|
|
1026
1026
|
*/
|
|
1027
1027
|
|
|
1028
1028
|
|
|
@@ -1031,15 +1031,15 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1031
1031
|
className = options.colors[color];
|
|
1032
1032
|
}
|
|
1033
1033
|
};
|
|
1034
|
-
/**
|
|
1035
|
-
* Helpers
|
|
1034
|
+
/**
|
|
1035
|
+
* Helpers
|
|
1036
1036
|
*/
|
|
1037
1037
|
|
|
1038
|
-
/**
|
|
1039
|
-
* Return the object key contains the given value
|
|
1040
|
-
* @param {Object} object
|
|
1041
|
-
* @param {any} value
|
|
1042
|
-
* @return {string|undefined}
|
|
1038
|
+
/**
|
|
1039
|
+
* Return the object key contains the given value
|
|
1040
|
+
* @param {Object} object
|
|
1041
|
+
* @param {any} value
|
|
1042
|
+
* @return {string|undefined}
|
|
1043
1043
|
*/
|
|
1044
1044
|
|
|
1045
1045
|
|
|
@@ -1048,10 +1048,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1048
1048
|
return object[key] === value;
|
|
1049
1049
|
});
|
|
1050
1050
|
};
|
|
1051
|
-
/**
|
|
1052
|
-
* Returns color identifier for the given class name
|
|
1053
|
-
* @param {string} highlighterClassName Class name of highlighter classes
|
|
1054
|
-
* @returns {string|number} Color identifier
|
|
1051
|
+
/**
|
|
1052
|
+
* Returns color identifier for the given class name
|
|
1053
|
+
* @param {string} highlighterClassName Class name of highlighter classes
|
|
1054
|
+
* @returns {string|number} Color identifier
|
|
1055
1055
|
*/
|
|
1056
1056
|
|
|
1057
1057
|
|
|
@@ -1062,10 +1062,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1062
1062
|
|
|
1063
1063
|
return className;
|
|
1064
1064
|
};
|
|
1065
|
-
/**
|
|
1066
|
-
* Returns class name for the given color identifier
|
|
1067
|
-
* @param {string|number} color Color identifier
|
|
1068
|
-
* @returns {string} Class name
|
|
1065
|
+
/**
|
|
1066
|
+
* Returns class name for the given color identifier
|
|
1067
|
+
* @param {string|number} color Color identifier
|
|
1068
|
+
* @returns {string} Class name
|
|
1069
1069
|
*/
|
|
1070
1070
|
|
|
1071
1071
|
|
|
@@ -1076,33 +1076,33 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1076
1076
|
|
|
1077
1077
|
return className;
|
|
1078
1078
|
};
|
|
1079
|
-
/**
|
|
1080
|
-
* Check if the given node is a wrapper
|
|
1081
|
-
* @param {Node|Element} node
|
|
1082
|
-
* @returns {boolean}
|
|
1079
|
+
/**
|
|
1080
|
+
* Check if the given node is a wrapper
|
|
1081
|
+
* @param {Node|Element} node
|
|
1082
|
+
* @returns {boolean}
|
|
1083
1083
|
*/
|
|
1084
1084
|
|
|
1085
1085
|
|
|
1086
1086
|
function isWrappingNode(node) {
|
|
1087
1087
|
return isElement(node) && node.tagName.toLowerCase() === 'span' && highlightingClasses.includes(node.className);
|
|
1088
1088
|
}
|
|
1089
|
-
/**
|
|
1090
|
-
* Check if the given node can be wrapped
|
|
1091
|
-
* @param {Node} node
|
|
1092
|
-
* @returns {boolean}
|
|
1089
|
+
/**
|
|
1090
|
+
* Check if the given node can be wrapped
|
|
1091
|
+
* @param {Node} node
|
|
1092
|
+
* @returns {boolean}
|
|
1093
1093
|
*/
|
|
1094
1094
|
|
|
1095
1095
|
|
|
1096
1096
|
function isWrappable(node) {
|
|
1097
1097
|
return isText(node) && !isBlacklisted(node);
|
|
1098
1098
|
}
|
|
1099
|
-
/**
|
|
1100
|
-
* Check if the given node is, or is within, a blacklisted container.
|
|
1101
|
-
* With `keepEmptyNodes` option, node inside blacklisted container can be whitelisted too.
|
|
1102
|
-
* Priority of blacklist or whitelist is decided by which selector is closest to the node.
|
|
1103
|
-
* If no match found, node is considered whitelisted.
|
|
1104
|
-
* @param {Node} node
|
|
1105
|
-
* @returns {boolean}
|
|
1099
|
+
/**
|
|
1100
|
+
* Check if the given node is, or is within, a blacklisted container.
|
|
1101
|
+
* With `keepEmptyNodes` option, node inside blacklisted container can be whitelisted too.
|
|
1102
|
+
* Priority of blacklist or whitelist is decided by which selector is closest to the node.
|
|
1103
|
+
* If no match found, node is considered whitelisted.
|
|
1104
|
+
* @param {Node} node
|
|
1105
|
+
* @returns {boolean}
|
|
1106
1106
|
*/
|
|
1107
1107
|
|
|
1108
1108
|
|
|
@@ -1117,11 +1117,11 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1117
1117
|
return !closest.get(0).matches(containersWhiteListSelector);
|
|
1118
1118
|
}
|
|
1119
1119
|
}
|
|
1120
|
-
/**
|
|
1121
|
-
* Wraps text node to the highlighter wrapper element
|
|
1122
|
-
* @param {Node} textNode Text node to wrap
|
|
1123
|
-
* @param {string} className Wrapper class name
|
|
1124
|
-
* @param {number} groupId Group id
|
|
1120
|
+
/**
|
|
1121
|
+
* Wraps text node to the highlighter wrapper element
|
|
1122
|
+
* @param {Node} textNode Text node to wrap
|
|
1123
|
+
* @param {string} className Wrapper class name
|
|
1124
|
+
* @param {number} groupId Group id
|
|
1125
1125
|
*/
|
|
1126
1126
|
|
|
1127
1127
|
|
|
@@ -1130,10 +1130,10 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1130
1130
|
element.appendChild(textNode);
|
|
1131
1131
|
return element;
|
|
1132
1132
|
}
|
|
1133
|
-
/**
|
|
1134
|
-
* Create a wrapping node
|
|
1135
|
-
* @param {number} groupId
|
|
1136
|
-
* @returns {Element}
|
|
1133
|
+
/**
|
|
1134
|
+
* Create a wrapping node
|
|
1135
|
+
* @param {number} groupId
|
|
1136
|
+
* @returns {Element}
|
|
1137
1137
|
*/
|
|
1138
1138
|
|
|
1139
1139
|
|
|
@@ -1143,9 +1143,9 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1143
1143
|
wrapper.setAttribute(GROUP_ATTR, "".concat(groupId));
|
|
1144
1144
|
return wrapper;
|
|
1145
1145
|
}
|
|
1146
|
-
/**
|
|
1147
|
-
* Returns the first unused group Id
|
|
1148
|
-
* @returns {number}
|
|
1146
|
+
/**
|
|
1147
|
+
* Returns the first unused group Id
|
|
1148
|
+
* @returns {number}
|
|
1149
1149
|
*/
|
|
1150
1150
|
|
|
1151
1151
|
|
|
@@ -1158,38 +1158,38 @@ define(['lodash', 'jquery'], function (_, $) { 'use strict';
|
|
|
1158
1158
|
|
|
1159
1159
|
return id;
|
|
1160
1160
|
}
|
|
1161
|
-
/**
|
|
1162
|
-
* Check if the given node is an element
|
|
1163
|
-
* @param {Node} node
|
|
1164
|
-
* @returns {boolean}
|
|
1161
|
+
/**
|
|
1162
|
+
* Check if the given node is an element
|
|
1163
|
+
* @param {Node} node
|
|
1164
|
+
* @returns {boolean}
|
|
1165
1165
|
*/
|
|
1166
1166
|
|
|
1167
1167
|
|
|
1168
1168
|
function isElement(node) {
|
|
1169
1169
|
return node && _typeof(node) === 'object' && node.nodeType === window.Node.ELEMENT_NODE;
|
|
1170
1170
|
}
|
|
1171
|
-
/**
|
|
1172
|
-
* Check if the given node is of type text
|
|
1173
|
-
* @param {Node} node
|
|
1174
|
-
* @returns {boolean}
|
|
1171
|
+
/**
|
|
1172
|
+
* Check if the given node is of type text
|
|
1173
|
+
* @param {Node} node
|
|
1174
|
+
* @returns {boolean}
|
|
1175
1175
|
*/
|
|
1176
1176
|
|
|
1177
1177
|
|
|
1178
1178
|
function isText(node) {
|
|
1179
1179
|
return node && _typeof(node) === 'object' && node.nodeType === window.Node.TEXT_NODE;
|
|
1180
1180
|
}
|
|
1181
|
-
/**
|
|
1182
|
-
* a "Hot Node" is either wrappable text node or a wrapper
|
|
1183
|
-
* @param {Node} node
|
|
1184
|
-
* @returns {boolean}
|
|
1181
|
+
/**
|
|
1182
|
+
* a "Hot Node" is either wrappable text node or a wrapper
|
|
1183
|
+
* @param {Node} node
|
|
1184
|
+
* @returns {boolean}
|
|
1185
1185
|
*/
|
|
1186
1186
|
|
|
1187
1187
|
|
|
1188
1188
|
function isHotNode(node) {
|
|
1189
1189
|
return isWrappingNode(node) || isWrappable(node);
|
|
1190
1190
|
}
|
|
1191
|
-
/**
|
|
1192
|
-
* Public API of the highlighter helper
|
|
1191
|
+
/**
|
|
1192
|
+
* Public API of the highlighter helper
|
|
1193
1193
|
*/
|
|
1194
1194
|
|
|
1195
1195
|
|