@oat-sa/tao-core-ui 1.60.2 → 1.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +339 -339
- package/README.md +23 -18
- package/dist/actionbar.js +393 -410
- package/dist/adder.js +143 -156
- package/dist/animable/absorbable/absorbable.js +208 -211
- package/dist/animable/absorbable/css/absorb.css +7 -8
- package/dist/animable/absorbable/css/absorb.css.map +1 -1
- package/dist/animable/pulsable/css/pulse.css +7 -7
- package/dist/animable/pulsable/css/pulse.css.map +1 -1
- package/dist/animable/pulsable/pulsable.js +174 -174
- package/dist/areaBroker.js +59 -72
- package/dist/autocomplete/css/autocomplete.css +7 -8
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +494 -604
- package/dist/autoscroll.js +23 -25
- package/dist/badge/badge.js +201 -199
- package/dist/badge/css/badge.css +7 -8
- package/dist/badge/css/badge.css.map +1 -1
- package/dist/breadcrumbs/css/breadcrumbs.css +7 -7
- package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
- package/dist/breadcrumbs.js +286 -285
- package/dist/btngrouper.js +83 -95
- package/dist/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/dist/bulkActionPopup.js +503 -503
- package/dist/button.js +300 -293
- package/dist/calculator/css/calculator.css +10 -10
- package/dist/calculator/css/calculator.css.map +1 -1
- package/dist/calculator.js +59 -72
- package/dist/cascadingComboBox.js +257 -256
- package/dist/ckeditor/ckConfigurator.js +130 -154
- package/dist/ckeditor/dtdHandler.js +305 -345
- package/dist/class/css/selector.css +7 -7
- package/dist/class/css/selector.css.map +1 -1
- package/dist/class/selector.js +437 -470
- package/dist/component/alignable.js +97 -121
- package/dist/component/containable.js +53 -58
- package/dist/component/css/components.css +7 -7
- package/dist/component/css/components.css.map +1 -1
- package/dist/component/css/windowComponent.css +7 -7
- package/dist/component/css/windowComponent.css.map +1 -1
- package/dist/component/draggable.js +34 -36
- package/dist/component/placeable.js +84 -102
- package/dist/component/resizable.js +79 -89
- package/dist/component/stackable.js +21 -27
- package/dist/component/windowed.js +284 -297
- package/dist/component.js +439 -467
- package/dist/container.js +79 -98
- package/dist/contextualPopup/css/contextualPopup.css +7 -7
- package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
- package/dist/contextualPopup.js +417 -436
- package/dist/dashboard/css/dashboard.css +7 -7
- package/dist/dashboard/css/dashboard.css.map +1 -1
- package/dist/dashboard.js +302 -305
- package/dist/datalist/css/datalist.css +7 -7
- package/dist/datalist/css/datalist.css.map +1 -1
- package/dist/datalist.js +783 -791
- package/dist/datatable/css/datatable.css +11 -7
- package/dist/datatable/css/datatable.css.map +1 -1
- package/dist/datatable/filterStrategy/filterStrategy.js +28 -30
- package/dist/datatable/filterStrategy/multiple.js +26 -45
- package/dist/datatable/filterStrategy/single.js +28 -40
- package/dist/datatable.js +1591 -1616
- package/dist/dateRange/css/dateRange.css +7 -7
- package/dist/dateRange/css/dateRange.css.map +1 -1
- package/dist/dateRange/dateRange.js +398 -412
- package/dist/datetime/css/picker.css +7 -7
- package/dist/datetime/css/picker.css.map +1 -1
- package/dist/datetime/picker.js +670 -703
- package/dist/deleter.js +383 -398
- package/dist/destination/css/selector.css +7 -7
- package/dist/destination/css/selector.css.map +1 -1
- package/dist/destination/selector.js +295 -293
- package/dist/dialog/alert.js +30 -32
- package/dist/dialog/confirm.js +29 -32
- package/dist/dialog/confirmDelete.js +223 -221
- package/dist/dialog.js +651 -695
- package/dist/disabler.js +108 -119
- package/dist/documentViewer/css/documentViewer.css +7 -7
- package/dist/documentViewer/css/documentViewer.css.map +1 -1
- package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +172 -169
- package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +32 -29
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +523 -564
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +376 -393
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +53 -68
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +517 -567
- package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +73 -96
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +381 -392
- package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +125 -152
- package/dist/documentViewer/providers/pdfViewer.js +189 -191
- package/dist/documentViewer/viewerFactory.js +76 -81
- package/dist/documentViewer.js +303 -311
- package/dist/dropdown/css/dropdown.css +7 -7
- package/dist/dropdown/css/dropdown.css.map +1 -1
- package/dist/dropdown.js +392 -412
- package/dist/durationer.js +77 -85
- package/dist/dynamicComponent/css/dynamicComponent.css +7 -7
- package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/dist/dynamicComponent.js +595 -630
- package/dist/feedback.js +365 -375
- package/dist/figure/FigureStateActive.js +246 -296
- package/dist/filesender.js +44 -54
- package/dist/filter.js +244 -240
- package/dist/form/css/dropdownForm.css +7 -7
- package/dist/form/css/dropdownForm.css.map +1 -1
- package/dist/form/css/form.css +7 -7
- package/dist/form/css/form.css.map +1 -1
- package/dist/form/dropdownForm.js +357 -362
- package/dist/form/form.js +703 -984
- package/dist/form/simpleForm.js +74 -77
- package/dist/form/validator/css/validator.css +7 -7
- package/dist/form/validator/css/validator.css.map +1 -1
- package/dist/form/validator/renderer.js +235 -241
- package/dist/form/validator/validator.js +181 -267
- package/dist/form/widget/css/widget.css +7 -7
- package/dist/form/widget/css/widget.css.map +1 -1
- package/dist/form/widget/definitions.js +27 -28
- package/dist/form/widget/loader.js +16 -16
- package/dist/form/widget/providers/checkBox.js +257 -264
- package/dist/form/widget/providers/comboBox.js +194 -193
- package/dist/form/widget/providers/default.js +44 -50
- package/dist/form/widget/providers/hidden.js +179 -176
- package/dist/form/widget/providers/hiddenBox.js +262 -272
- package/dist/form/widget/providers/radioBox.js +222 -223
- package/dist/form/widget/providers/textArea.js +197 -193
- package/dist/form/widget/providers/textBox.js +36 -37
- package/dist/form/widget/widget.js +480 -508
- package/dist/form.js +12 -17
- package/dist/formValidator/formValidator.js +74 -91
- package/dist/formValidator/highlighters/highlighter.js +43 -51
- package/dist/formValidator/highlighters/message.js +31 -32
- package/dist/formValidator/highlighters/tooltip.js +33 -35
- package/dist/generis/form/css/form.css +7 -7
- package/dist/generis/form/css/form.css.map +1 -1
- package/dist/generis/form/form.js +323 -331
- package/dist/generis/validator/css/validator.css +7 -7
- package/dist/generis/validator/css/validator.css.map +1 -1
- package/dist/generis/validator/validator.js +215 -216
- package/dist/generis/widget/checkBox/checkBox.js +227 -225
- package/dist/generis/widget/comboBox/comboBox.js +189 -183
- package/dist/generis/widget/css/widget.css +7 -7
- package/dist/generis/widget/css/widget.css.map +1 -1
- package/dist/generis/widget/hiddenBox/hiddenBox.js +231 -232
- package/dist/generis/widget/loader.js +21 -23
- package/dist/generis/widget/textBox/textBox.js +178 -172
- package/dist/generis/widget/widget.js +255 -266
- package/dist/groupedComboBox.js +231 -226
- package/dist/groupvalidator.js +30 -34
- package/dist/hider.js +43 -50
- package/dist/highlighter.js +946 -1057
- package/dist/image/ImgStateActive/extractLabel.js +20 -21
- package/dist/image/ImgStateActive/helper.js +21 -25
- package/dist/image/ImgStateActive/initHelper.js +133 -162
- package/dist/image/ImgStateActive/initMediaEditor.js +72 -92
- package/dist/image/ImgStateActive/mediaSizer.js +48 -58
- package/dist/image/ImgStateActive.js +185 -215
- package/dist/incrementer.js +91 -110
- package/dist/inplacer.js +108 -132
- package/dist/interactUtils.js +56 -67
- package/dist/itemButtonList/css/item-button-list.css +23 -24
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +444 -469
- package/dist/keyNavigation/navigableDomElement.js +124 -158
- package/dist/keyNavigation/navigator.js +235 -312
- package/dist/listbox/css/listbox.css +7 -7
- package/dist/listbox/css/listbox.css.map +1 -1
- package/dist/listbox.js +463 -476
- package/dist/liststyler.js +75 -76
- package/dist/loadingButton/css/button.css +7 -7
- package/dist/loadingButton/css/button.css.map +1 -1
- package/dist/loadingButton/loadingButton.js +219 -218
- package/dist/lock.js +484 -509
- package/dist/login/login.js +471 -486
- package/dist/maths/calculator/basicCalculator.js +247 -242
- package/dist/maths/calculator/calculatorComponent.js +34 -36
- package/dist/maths/calculator/core/areaBroker.js +30 -28
- package/dist/maths/calculator/core/board.js +805 -872
- package/dist/maths/calculator/core/expression.js +500 -518
- package/dist/maths/calculator/core/labels.js +240 -235
- package/dist/maths/calculator/core/plugin.js +20 -20
- package/dist/maths/calculator/core/terms.js +27 -27
- package/dist/maths/calculator/core/tokenizer.js +119 -132
- package/dist/maths/calculator/core/tokens.js +157 -168
- package/dist/maths/calculator/css/calculator.css +7 -7
- package/dist/maths/calculator/css/calculator.css.map +1 -1
- package/dist/maths/calculator/defaultCalculator.js +24 -27
- package/dist/maths/calculator/plugins/core/degrad.js +22 -30
- package/dist/maths/calculator/plugins/core/history.js +55 -67
- package/dist/maths/calculator/plugins/core/remind.js +22 -25
- package/dist/maths/calculator/plugins/core/stepNavigation.js +33 -49
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +255 -258
- package/dist/maths/calculator/plugins/modifiers/pow10.js +47 -52
- package/dist/maths/calculator/plugins/modifiers/sign.js +103 -130
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +288 -293
- package/dist/maths/calculator/pluginsLoader.js +22 -22
- package/dist/maths/calculator/scientificCalculator.js +339 -334
- package/dist/mediaEditor/mediaEditorComponent.js +244 -249
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +28 -33
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +228 -236
- package/dist/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/dist/mediaEditor/plugins/mediaDimension/helper.js +81 -106
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +597 -635
- package/dist/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/dist/mediaplayer/css/player.css +7 -7
- package/dist/mediaplayer/css/player.css.map +1 -1
- package/dist/mediaplayer/players/html5.js +646 -706
- package/dist/mediaplayer/players/youtube.js +393 -438
- package/dist/mediaplayer/players.js +19 -19
- package/dist/mediaplayer/support.js +66 -79
- package/dist/mediaplayer/utils/reminder.js +117 -128
- package/dist/mediaplayer/utils/timeObserver.js +106 -109
- package/dist/mediaplayer/youtubeManager.js +142 -170
- package/dist/mediaplayer.js +1484 -1774
- package/dist/mediasizer.js +633 -676
- package/dist/modal.js +137 -153
- package/dist/movableComponent.js +37 -37
- package/dist/pageSizeSelector.js +231 -224
- package/dist/pageStatus.js +43 -46
- package/dist/pagination/css/pagination.css +7 -7
- package/dist/pagination/css/pagination.css.map +1 -1
- package/dist/pagination/paginationStrategy.js +24 -25
- package/dist/pagination/providers/pages.js +281 -291
- package/dist/pagination/providers/simple.js +202 -196
- package/dist/pagination.js +49 -72
- package/dist/previewer.js +113 -138
- package/dist/progressbar.js +70 -80
- package/dist/propertySelector/css/propertySelector.css +74 -0
- package/dist/propertySelector/css/propertySelector.css.map +1 -0
- package/dist/propertySelector/propertySelector.js +489 -0
- package/dist/report.js +356 -359
- package/dist/resource/css/selector.css +7 -7
- package/dist/resource/css/selector.css.map +1 -1
- package/dist/resource/filters.js +275 -289
- package/dist/resource/list.js +1589 -1371
- package/dist/resource/selectable.js +101 -136
- package/dist/resource/selector.js +855 -914
- package/dist/resource/tree.js +1796 -1612
- package/dist/resourcemgr/css/resourcemgr.css +7 -7
- package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
- package/dist/resourcemgr/fileBrowser.js +540 -587
- package/dist/resourcemgr/filePreview.js +16 -25
- package/dist/resourcemgr/fileSelector.js +520 -547
- package/dist/resourcemgr/util/updatePermissions.js +10 -18
- package/dist/resourcemgr.js +325 -332
- package/dist/scroller.js +29 -33
- package/dist/searchModal/advancedSearch.js +949 -833
- package/dist/searchModal/css/advancedSearch.css +7 -14
- package/dist/searchModal/css/advancedSearch.css.map +1 -1
- package/dist/searchModal/css/searchModal.css +28 -8
- package/dist/searchModal/css/searchModal.css.map +1 -1
- package/dist/searchModal.js +616 -335
- package/dist/selecter.js +21 -28
- package/dist/stacker.js +52 -60
- package/dist/switch/css/switch.css +7 -7
- package/dist/switch/css/switch.css.map +1 -1
- package/dist/switch/switch.js +305 -311
- package/dist/tableModel.js +39 -49
- package/dist/tabs/css/tabs.css +12 -12
- package/dist/tabs/css/tabs.css.map +1 -1
- package/dist/tabs.js +588 -639
- package/dist/taskQueue/css/taskQueue.css +7 -7
- package/dist/taskQueue/css/taskQueue.css.map +1 -1
- package/dist/taskQueue/status.js +317 -322
- package/dist/taskQueue/table.js +383 -394
- package/dist/taskQueue/taskQueue.js +19 -19
- package/dist/taskQueue/taskQueueModel.js +459 -538
- package/dist/taskQueue.js +49 -67
- package/dist/taskQueueButton/css/taskable.css +7 -7
- package/dist/taskQueueButton/css/taskable.css.map +1 -1
- package/dist/taskQueueButton/css/treeButton.css +7 -7
- package/dist/taskQueueButton/css/treeButton.css.map +1 -1
- package/dist/taskQueueButton/standardButton.js +45 -43
- package/dist/taskQueueButton/taskable.js +267 -272
- package/dist/taskQueueButton/treeButton.js +200 -198
- package/dist/themeLoader.js +109 -129
- package/dist/themes.js +86 -100
- package/dist/toggler.js +76 -88
- package/dist/tooltip.js +296 -311
- package/dist/tooltipster.js +17 -17
- package/dist/transformer.js +140 -169
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/dist/tristateCheckboxGroup.js +319 -325
- package/dist/uploader.js +691 -724
- package/dist/validator/Report.js +1 -2
- package/dist/validator/Validator.js +6 -25
- package/dist/validator/validators.js +66 -80
- package/dist/validator.js +218 -254
- package/dist/waitForMedia.js +45 -51
- package/dist/waitingDialog/css/waitingDialog.css +7 -7
- package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
- package/dist/waitingDialog/waitingDialog.js +59 -77
- package/package.json +109 -107
- package/scss/basic.scss +16 -16
- package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +59 -59
- package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
- package/scss/font/tao/tao.svg +234 -234
- package/scss/inc/_base.scss +495 -495
- package/scss/inc/_bootstrap.scss +6 -6
- package/scss/inc/_buttons.scss +114 -114
- package/scss/inc/_colors.scss +93 -88
- package/scss/inc/_feedback.scss +150 -150
- package/scss/inc/_flex-grid.scss +15 -15
- package/scss/inc/_fonts.scss +4 -4
- package/scss/inc/_forms.scss +832 -832
- package/scss/inc/_functions.scss +283 -283
- package/scss/inc/_jquery.nouislider.scss +254 -254
- package/scss/inc/_normalize.scss +528 -528
- package/scss/inc/_report.scss +67 -67
- package/scss/inc/_secondary-properties.scss +89 -89
- package/scss/inc/_select2.scss +634 -634
- package/scss/inc/_toolbars.scss +155 -155
- package/scss/inc/_tooltip.scss +312 -312
- package/scss/inc/_variables.scss +21 -21
- package/scss/inc/base/_highlight.scss +5 -5
- package/scss/inc/base/_list-style.scss +58 -58
- package/scss/inc/base/_svg.scss +3 -3
- package/scss/inc/base/_table.scss +62 -62
- package/scss/inc/fonts/_source-sans-pro.scss +29 -29
- package/scss/inc/fonts/_tao-icon-classes.scss +226 -226
- package/scss/inc/fonts/_tao-icon-def.scss +12 -12
- package/scss/inc/fonts/_tao-icon-vars.scss +240 -240
- package/src/actionbar/tpl/main.tpl +8 -8
- package/src/actionbar.js +251 -251
- package/src/adder.js +250 -250
- package/src/animable/absorbable/absorbable.js +134 -134
- package/src/animable/absorbable/css/absorb.css +7 -8
- package/src/animable/absorbable/css/absorb.css.map +1 -1
- package/src/animable/absorbable/scss/absorb.scss +37 -37
- package/src/animable/pulsable/css/pulse.css +7 -7
- package/src/animable/pulsable/css/pulse.css.map +1 -1
- package/src/animable/pulsable/pulsable.js +90 -90
- package/src/animable/pulsable/scss/pulse.scss +22 -22
- package/src/areaBroker.js +160 -160
- package/src/autocomplete/css/autocomplete.css +7 -8
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/autocomplete/scss/autocomplete.scss +37 -37
- package/src/autocomplete.js +1029 -1029
- package/src/autoscroll.js +57 -57
- package/src/badge/badge.js +119 -119
- package/src/badge/css/badge.css +7 -8
- package/src/badge/css/badge.css.map +1 -1
- package/src/badge/scss/badge.scss +92 -92
- package/src/badge/tpl/badge.tpl +4 -4
- package/src/breadcrumbs/css/breadcrumbs.css +7 -7
- package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
- package/src/breadcrumbs/scss/breadcrumbs.scss +52 -52
- package/src/breadcrumbs/tpl/breadcrumbs.tpl +20 -20
- package/src/breadcrumbs.js +99 -99
- package/src/btngrouper.js +213 -213
- package/src/bulkActionPopup/css/bulkActionPopup.css +7 -7
- package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
- package/src/bulkActionPopup/scss/bulkActionPopup.scss +63 -63
- package/src/bulkActionPopup/tpl/layout.tpl +76 -76
- package/src/bulkActionPopup/tpl/select.tpl +8 -8
- package/src/bulkActionPopup.js +274 -274
- package/src/button/tpl/button.tpl +4 -4
- package/src/button.js +135 -135
- package/src/calculator/css/calculator.css +10 -10
- package/src/calculator/css/calculator.css.map +1 -1
- package/src/calculator/scss/calculator.scss +139 -139
- package/src/calculator.js +188 -188
- package/src/cascadingComboBox.js +126 -126
- package/src/ckeditor/ckConfigurator.js +736 -736
- package/src/ckeditor/dtdHandler.js +1030 -1030
- package/src/class/css/selector.css +7 -7
- package/src/class/css/selector.css.map +1 -1
- package/src/class/scss/selector.scss +101 -101
- package/src/class/selector.js +329 -329
- package/src/class/tpl/listItem.tpl +9 -9
- package/src/class/tpl/selector.tpl +10 -10
- package/src/component/alignable.js +274 -274
- package/src/component/containable.js +122 -122
- package/src/component/css/components.css +7 -7
- package/src/component/css/components.css.map +1 -1
- package/src/component/css/windowComponent.css +7 -7
- package/src/component/css/windowComponent.css.map +1 -1
- package/src/component/draggable.js +104 -104
- package/src/component/placeable.js +233 -233
- package/src/component/resizable.js +195 -195
- package/src/component/scss/components.scss +507 -507
- package/src/component/scss/windowComponent.scss +62 -62
- package/src/component/stackable.js +67 -67
- package/src/component/tpl/window.tpl +7 -7
- package/src/component/windowed.js +206 -206
- package/src/component.js +401 -401
- package/src/container.js +200 -200
- package/src/contextualPopup/css/contextualPopup.css +7 -7
- package/src/contextualPopup/css/contextualPopup.css.map +1 -1
- package/src/contextualPopup/scss/contextualPopup.scss +78 -78
- package/src/contextualPopup/tpl/popup.tpl +10 -10
- package/src/contextualPopup.js +297 -297
- package/src/css/basic.css +103 -106
- package/src/css/basic.css.map +1 -1
- package/src/dashboard/css/dashboard.css +7 -7
- package/src/dashboard/css/dashboard.css.map +1 -1
- package/src/dashboard/scss/dashboard.scss +93 -93
- package/src/dashboard/tpl/dashboard.tpl +16 -16
- package/src/dashboard/tpl/dashboardMetricsList.tpl +15 -15
- package/src/dashboard.js +184 -184
- package/src/datalist/css/datalist.css +7 -7
- package/src/datalist/css/datalist.css.map +1 -1
- package/src/datalist/scss/datalist.scss +116 -116
- package/src/datalist/tpl/list.tpl +24 -24
- package/src/datalist/tpl/main.tpl +44 -44
- package/src/datalist.js +500 -500
- package/src/datatable/css/datatable.css +11 -7
- package/src/datatable/css/datatable.css.map +1 -1
- package/src/datatable/filterStrategy/filterStrategy.js +70 -70
- package/src/datatable/filterStrategy/multiple.js +126 -126
- package/src/datatable/filterStrategy/single.js +108 -108
- package/src/datatable/scss/datatable.scss +149 -146
- package/src/datatable/tpl/button.tpl +6 -6
- package/src/datatable/tpl/layout.tpl +158 -158
- package/src/datatable.js +1056 -1056
- package/src/dateRange/css/dateRange.css +7 -7
- package/src/dateRange/css/dateRange.css.map +1 -1
- package/src/dateRange/dateRange.js +341 -341
- package/src/dateRange/scss/dateRange.scss +7 -7
- package/src/dateRange/tpl/select.tpl +18 -18
- package/src/datetime/css/picker.css +7 -7
- package/src/datetime/css/picker.css.map +1 -1
- package/src/datetime/picker.js +576 -576
- package/src/datetime/scss/picker.scss +192 -192
- package/src/datetime/tpl/picker.tpl +18 -18
- package/src/deleter/undo.tpl +6 -6
- package/src/deleter.js +296 -296
- package/src/destination/css/selector.css +7 -7
- package/src/destination/css/selector.css.map +1 -1
- package/src/destination/scss/selector.scss +36 -36
- package/src/destination/selector.js +195 -195
- package/src/destination/tpl/selector.tpl +13 -13
- package/src/dialog/alert.js +70 -70
- package/src/dialog/confirm.js +85 -85
- package/src/dialog/confirmDelete.js +95 -95
- package/src/dialog/tpl/body.tpl +24 -24
- package/src/dialog/tpl/buttons.tpl +6 -6
- package/src/dialog/tpl/checkbox.tpl +5 -5
- package/src/dialog.js +517 -517
- package/src/disabler.js +230 -230
- package/src/documentViewer/css/documentViewer.css +7 -7
- package/src/documentViewer/css/documentViewer.css.map +1 -1
- package/src/documentViewer/providers/pdfViewer/fallback/viewer.js +69 -69
- package/src/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +41 -41
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.js +475 -475
- package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.tpl +20 -20
- package/src/documentViewer/providers/pdfViewer/pdfjs/match.tpl +1 -1
- package/src/documentViewer/providers/pdfViewer/pdfjs/page.tpl +4 -4
- package/src/documentViewer/providers/pdfViewer/pdfjs/pageView.js +318 -318
- package/src/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +167 -167
- package/src/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +451 -451
- package/src/documentViewer/providers/pdfViewer/pdfjs/textManager.js +252 -252
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.js +299 -299
- package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.tpl +16 -16
- package/src/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +351 -351
- package/src/documentViewer/providers/pdfViewer.js +93 -93
- package/src/documentViewer/scss/documentViewer.scss +184 -184
- package/src/documentViewer/viewerFactory.js +191 -191
- package/src/documentViewer.js +238 -238
- package/src/dropdown/css/dropdown.css +7 -7
- package/src/dropdown/css/dropdown.css.map +1 -1
- package/src/dropdown/scss/dropdown.scss +99 -99
- package/src/dropdown/tpl/dropdown.tpl +8 -8
- package/src/dropdown/tpl/list-item.tpl +4 -4
- package/src/dropdown.js +255 -255
- package/src/durationer.js +222 -222
- package/src/dynamicComponent/css/dynamicComponent.css +7 -7
- package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
- package/src/dynamicComponent/scss/dynamicComponent.scss +98 -98
- package/src/dynamicComponent/tpl/layout.tpl +17 -17
- package/src/dynamicComponent.js +554 -554
- package/src/feedback/feedback.tpl +7 -7
- package/src/feedback.js +295 -295
- package/src/figure/FigureStateActive.js +174 -174
- package/src/filesender.js +114 -114
- package/src/filter/template.tpl +5 -5
- package/src/filter.js +135 -135
- package/src/form/css/dropdownForm.css +7 -7
- package/src/form/css/dropdownForm.css.map +1 -1
- package/src/form/css/form.css +7 -7
- package/src/form/css/form.css.map +1 -1
- package/src/form/dropdownForm.js +281 -281
- package/src/form/form.js +688 -688
- package/src/form/scss/dropdownForm.scss +60 -60
- package/src/form/scss/form.scss +25 -25
- package/src/form/simpleForm.js +125 -125
- package/src/form/tpl/dropdownForm.tpl +4 -4
- package/src/form/tpl/form.tpl +7 -7
- package/src/form/validator/css/validator.css +7 -7
- package/src/form/validator/css/validator.css.map +1 -1
- package/src/form/validator/renderer.js +118 -118
- package/src/form/validator/scss/validator.scss +14 -14
- package/src/form/validator/tpl/message.tpl +1 -1
- package/src/form/validator/tpl/validator.tpl +1 -1
- package/src/form/validator/validator.js +220 -220
- package/src/form/widget/css/widget.css +7 -7
- package/src/form/widget/css/widget.css.map +1 -1
- package/src/form/widget/definitions.js +51 -51
- package/src/form/widget/loader.js +40 -40
- package/src/form/widget/providers/checkBox.js +138 -138
- package/src/form/widget/providers/comboBox.js +63 -63
- package/src/form/widget/providers/default.js +90 -90
- package/src/form/widget/providers/hidden.js +62 -62
- package/src/form/widget/providers/hiddenBox.js +152 -152
- package/src/form/widget/providers/radioBox.js +99 -99
- package/src/form/widget/providers/textArea.js +52 -52
- package/src/form/widget/providers/textBox.js +48 -48
- package/src/form/widget/scss/widget.scss +55 -55
- package/src/form/widget/tpl/checkBox.tpl +25 -25
- package/src/form/widget/tpl/comboBox.tpl +13 -13
- package/src/form/widget/tpl/hidden.tpl +1 -1
- package/src/form/widget/tpl/hiddenBox.tpl +17 -17
- package/src/form/widget/tpl/label.tpl +6 -6
- package/src/form/widget/tpl/radioBox.tpl +25 -25
- package/src/form/widget/tpl/textArea.tpl +8 -8
- package/src/form/widget/tpl/widget.tpl +8 -8
- package/src/form/widget/widget.js +372 -372
- package/src/form.js +53 -53
- package/src/formValidator/formValidator.js +253 -253
- package/src/formValidator/highlighters/highlighter.js +102 -102
- package/src/formValidator/highlighters/message.js +70 -70
- package/src/formValidator/highlighters/tooltip.js +78 -78
- package/src/generis/form/css/form.css +7 -7
- package/src/generis/form/css/form.css.map +1 -1
- package/src/generis/form/form.js +239 -239
- package/src/generis/form/readme.md +70 -70
- package/src/generis/form/scss/form.scss +23 -23
- package/src/generis/form/tpl/form.tpl +16 -16
- package/src/generis/validator/css/validator.css +7 -7
- package/src/generis/validator/css/validator.css.map +1 -1
- package/src/generis/validator/readme.md +46 -46
- package/src/generis/validator/scss/validator.scss +13 -13
- package/src/generis/validator/validator.js +128 -128
- package/src/generis/widget/checkBox/checkBox.js +112 -112
- package/src/generis/widget/checkBox/checkBox.tpl +18 -18
- package/src/generis/widget/comboBox/comboBox.js +67 -67
- package/src/generis/widget/comboBox/comboBox.tpl +12 -12
- package/src/generis/widget/css/widget.css +7 -7
- package/src/generis/widget/css/widget.css.map +1 -1
- package/src/generis/widget/hiddenBox/hiddenBox.js +132 -132
- package/src/generis/widget/hiddenBox/hiddenBox.tpl +16 -16
- package/src/generis/widget/loader.js +49 -49
- package/src/generis/widget/readme.md +59 -59
- package/src/generis/widget/scss/widget.scss +61 -61
- package/src/generis/widget/textBox/textBox.js +65 -65
- package/src/generis/widget/textBox/textBox.tpl +7 -7
- package/src/generis/widget/widget.js +164 -164
- package/src/generis/widget/widget.tpl +5 -5
- package/src/groupedComboBox.js +99 -99
- package/src/groupvalidator.js +84 -84
- package/src/hider.js +88 -88
- package/src/highlighter.js +1166 -1166
- package/src/image/ImgStateActive/extractLabel.js +29 -29
- package/src/image/ImgStateActive/helper.js +36 -36
- package/src/image/ImgStateActive/initHelper.js +137 -137
- package/src/image/ImgStateActive/initMediaEditor.js +92 -92
- package/src/image/ImgStateActive/mediaSizer.js +63 -63
- package/src/image/ImgStateActive.js +115 -115
- package/src/incrementer.js +319 -319
- package/src/inplacer.js +316 -316
- package/src/interactUtils.js +140 -140
- package/src/itemButtonList/css/item-button-list.css +23 -24
- package/src/itemButtonList/css/item-button-list.css.map +1 -1
- package/src/itemButtonList/scss/item-button-list.scss +236 -236
- package/src/itemButtonList/tpl/itemButtonList.tpl +21 -21
- package/src/itemButtonList.js +274 -274
- package/src/keyNavigation/navigableDomElement.js +282 -282
- package/src/keyNavigation/navigator.js +543 -543
- package/src/listbox/css/listbox.css +7 -7
- package/src/listbox/css/listbox.css.map +1 -1
- package/src/listbox/scss/listbox.scss +116 -116
- package/src/listbox/tpl/list.tpl +14 -14
- package/src/listbox/tpl/main.tpl +9 -9
- package/src/listbox.js +251 -251
- package/src/liststyler.js +155 -155
- package/src/loadingButton/css/button.css +7 -7
- package/src/loadingButton/css/button.css.map +1 -1
- package/src/loadingButton/loadingButton.js +110 -110
- package/src/loadingButton/scss/button.scss +41 -41
- package/src/loadingButton/tpl/button.tpl +5 -5
- package/src/lock/lock.tpl +16 -16
- package/src/lock.js +395 -395
- package/src/login/login.js +322 -322
- package/src/login/tpl/login.tpl +29 -29
- package/src/login/tpl/passwordReveal.tpl +7 -7
- package/src/maths/calculator/basicCalculator.js +55 -55
- package/src/maths/calculator/calculatorComponent.js +128 -128
- package/src/maths/calculator/core/areaBroker.js +38 -38
- package/src/maths/calculator/core/board.js +841 -841
- package/src/maths/calculator/core/expression.js +430 -430
- package/src/maths/calculator/core/labels.js +116 -116
- package/src/maths/calculator/core/plugin.js +40 -40
- package/src/maths/calculator/core/terms.js +459 -459
- package/src/maths/calculator/core/tokenizer.js +245 -245
- package/src/maths/calculator/core/tokens.js +178 -178
- package/src/maths/calculator/core/tpl/board.tpl +4 -4
- package/src/maths/calculator/css/calculator.css +7 -7
- package/src/maths/calculator/css/calculator.css.map +1 -1
- package/src/maths/calculator/defaultCalculator.js +66 -66
- package/src/maths/calculator/plugins/core/degrad.js +90 -90
- package/src/maths/calculator/plugins/core/history.js +166 -166
- package/src/maths/calculator/plugins/core/remind.js +96 -96
- package/src/maths/calculator/plugins/core/stepNavigation.js +175 -175
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate.tpl +36 -36
- package/src/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +91 -91
- package/src/maths/calculator/plugins/modifiers/pow10.js +143 -143
- package/src/maths/calculator/plugins/modifiers/sign.js +339 -339
- package/src/maths/calculator/plugins/screen/simpleScreen/defaultTemplate.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/history.tpl +3 -3
- package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +191 -191
- package/src/maths/calculator/pluginsLoader.js +46 -46
- package/src/maths/calculator/scientificCalculator.js +74 -74
- package/src/maths/calculator/scss/calculator.scss +396 -396
- package/src/maths/calculator/tpl/basicKeyboard.tpl +37 -37
- package/src/maths/calculator/tpl/basicScreen.tpl +2 -2
- package/src/maths/calculator/tpl/scientificKeyboard.tpl +61 -61
- package/src/maths/calculator/tpl/scientificScreen.tpl +3 -3
- package/src/mediaEditor/mediaEditorComponent.js +141 -141
- package/src/mediaEditor/plugins/mediaAlignment/helper.js +62 -62
- package/src/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +99 -99
- package/src/mediaEditor/plugins/mediaAlignment/style.css +7 -7
- package/src/mediaEditor/plugins/mediaAlignment/tpl/mediaAlignment.tpl +25 -25
- package/src/mediaEditor/plugins/mediaDimension/helper.js +189 -189
- package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +561 -561
- package/src/mediaEditor/plugins/mediaDimension/style.css +141 -141
- package/src/mediaEditor/plugins/mediaDimension/tpl/mediaDimension.tpl +55 -55
- package/src/mediaEditor/tpl/editor.tpl +4 -4
- package/src/mediaplayer/css/player.css +7 -7
- package/src/mediaplayer/css/player.css.map +1 -1
- package/src/mediaplayer/players/html5.js +564 -564
- package/src/mediaplayer/players/youtube.js +323 -323
- package/src/mediaplayer/players.js +29 -29
- package/src/mediaplayer/readme.md +305 -305
- package/src/mediaplayer/scss/player.scss +569 -569
- package/src/mediaplayer/support.js +126 -126
- package/src/mediaplayer/tpl/audio.tpl +6 -6
- package/src/mediaplayer/tpl/player.tpl +37 -37
- package/src/mediaplayer/tpl/source.tpl +1 -1
- package/src/mediaplayer/tpl/video.tpl +6 -6
- package/src/mediaplayer/tpl/youtube.tpl +1 -1
- package/src/mediaplayer/utils/reminder.js +184 -184
- package/src/mediaplayer/utils/timeObserver.js +143 -143
- package/src/mediaplayer/youtubeManager.js +161 -161
- package/src/mediaplayer.js +1606 -1606
- package/src/mediasizer/mediasizer.tpl +55 -55
- package/src/mediasizer.js +635 -635
- package/src/modal.js +365 -365
- package/src/movableComponent.js +78 -78
- package/src/pageSizeSelector/tpl/pageSizeSelector.tpl +9 -9
- package/src/pageSizeSelector.js +107 -107
- package/src/pageStatus.js +147 -147
- package/src/pagination/css/pagination.css +7 -7
- package/src/pagination/css/pagination.css.map +1 -1
- package/src/pagination/paginationStrategy.js +53 -53
- package/src/pagination/providers/pages.js +161 -161
- package/src/pagination/providers/simple.js +74 -74
- package/src/pagination/providers/tpl/pages/page.tpl +1 -1
- package/src/pagination/providers/tpl/pages.tpl +8 -8
- package/src/pagination/providers/tpl/simple.tpl +7 -7
- package/src/pagination/scss/pagination.scss +111 -111
- package/src/pagination.js +237 -237
- package/src/previewer.js +300 -300
- package/src/progressbar.js +165 -165
- package/src/propertySelector/css/propertySelector.css +74 -0
- package/src/propertySelector/css/propertySelector.css.map +1 -0
- package/src/propertySelector/propertySelector.js +286 -0
- package/src/propertySelector/scss/propertySelector.scss +66 -0
- package/src/propertySelector/tpl/highlighted-text.tpl +1 -0
- package/src/propertySelector/tpl/property-description.tpl +13 -0
- package/src/propertySelector/tpl/property-selector.tpl +7 -0
- package/src/report/feedback.tpl +11 -11
- package/src/report/layout.tpl +10 -10
- package/src/report.js +184 -184
- package/src/resource/css/selector.css +7 -7
- package/src/resource/css/selector.css.map +1 -1
- package/src/resource/filters.js +208 -208
- package/src/resource/list.js +200 -200
- package/src/resource/scss/_filters.scss +26 -26
- package/src/resource/scss/_resource-list.scss +107 -107
- package/src/resource/scss/_resource-tree.scss +205 -205
- package/src/resource/scss/selector.scss +187 -187
- package/src/resource/selectable.js +322 -322
- package/src/resource/selector.js +871 -871
- package/src/resource/tpl/filters.tpl +2 -2
- package/src/resource/tpl/list.tpl +7 -7
- package/src/resource/tpl/listNode.tpl +4 -4
- package/src/resource/tpl/selector.tpl +46 -46
- package/src/resource/tpl/tree.tpl +4 -4
- package/src/resource/tpl/treeNode.tpl +30 -30
- package/src/resource/tree.js +400 -400
- package/src/resourcemgr/css/resourcemgr.css +7 -7
- package/src/resourcemgr/css/resourcemgr.css.map +1 -1
- package/src/resourcemgr/fileBrowser.js +381 -381
- package/src/resourcemgr/filePreview.js +73 -73
- package/src/resourcemgr/fileSelector.js +348 -348
- package/src/resourcemgr/scss/resourcemgr.scss +254 -254
- package/src/resourcemgr/tpl/fileSelect.tpl +39 -39
- package/src/resourcemgr/tpl/folder.tpl +11 -11
- package/src/resourcemgr/tpl/layout.tpl +84 -84
- package/src/resourcemgr/tpl/rootFolder.tpl +13 -13
- package/src/resourcemgr/util/updatePermissions.js +53 -53
- package/src/resourcemgr.js +216 -216
- package/src/scroller.js +94 -94
- package/src/scss/basic.scss +16 -16
- package/src/searchModal/advancedSearch.js +638 -601
- package/src/searchModal/css/advancedSearch.css +7 -14
- package/src/searchModal/css/advancedSearch.css.map +1 -1
- package/src/searchModal/css/searchModal.css +28 -8
- package/src/searchModal/css/searchModal.css.map +1 -1
- package/src/searchModal/scss/advancedSearch.scss +171 -177
- package/src/searchModal/scss/searchModal.scss +393 -375
- package/src/searchModal/tpl/advanced-search.tpl +9 -9
- package/src/searchModal/tpl/criteria-alias.tpl +1 -0
- package/src/searchModal/tpl/criteria-class-label.tpl +1 -0
- package/src/searchModal/tpl/criteria-label.tpl +1 -0
- package/src/searchModal/tpl/highlighted-text.tpl +1 -0
- package/src/searchModal/tpl/info-message.tpl +3 -3
- package/src/searchModal/tpl/invalid-criteria-warning.tpl +10 -10
- package/src/searchModal/tpl/layout.tpl +27 -25
- package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -12
- package/src/searchModal/tpl/list-select-criterion.tpl +12 -6
- package/src/searchModal/tpl/property-select-button.tpl +1 -0
- package/src/searchModal/tpl/results-container.tpl +1 -0
- package/src/searchModal/tpl/text-criterion.tpl +11 -6
- package/src/searchModal.js +761 -496
- package/src/selecter.js +43 -43
- package/src/stacker.js +133 -133
- package/src/switch/css/switch.css +7 -7
- package/src/switch/css/switch.css.map +1 -1
- package/src/switch/scss/switch.scss +83 -83
- package/src/switch/switch.js +195 -195
- package/src/switch/tpl/switch.tpl +7 -7
- package/src/tableModel.js +112 -112
- package/src/tabs/css/tabs.css +12 -12
- package/src/tabs/css/tabs.css.map +1 -1
- package/src/tabs/scss/tabs.scss +50 -50
- package/src/tabs/tpl/panel.tpl +3 -3
- package/src/tabs/tpl/tabs.tpl +10 -10
- package/src/tabs.js +528 -528
- package/src/taskQueue/css/taskQueue.css +7 -7
- package/src/taskQueue/css/taskQueue.css.map +1 -1
- package/src/taskQueue/scss/taskQueue.scss +47 -47
- package/src/taskQueue/status.js +228 -228
- package/src/taskQueue/table.js +350 -350
- package/src/taskQueue/taskQueue.js +33 -33
- package/src/taskQueue/taskQueueModel.js +548 -548
- package/src/taskQueue/tpl/statusMessage.tpl +7 -7
- package/src/taskQueue.js +218 -218
- package/src/taskQueueButton/css/taskable.css +7 -7
- package/src/taskQueueButton/css/taskable.css.map +1 -1
- package/src/taskQueueButton/css/treeButton.css +7 -7
- package/src/taskQueueButton/css/treeButton.css.map +1 -1
- package/src/taskQueueButton/scss/taskable.scss +4 -4
- package/src/taskQueueButton/scss/treeButton.scss +34 -34
- package/src/taskQueueButton/standardButton.js +108 -108
- package/src/taskQueueButton/taskable.js +202 -202
- package/src/taskQueueButton/tpl/report.tpl +5 -5
- package/src/taskQueueButton/tpl/treeButton.tpl +6 -6
- package/src/taskQueueButton/treeButton.js +109 -109
- package/src/themeLoader.js +252 -252
- package/src/themes.js +162 -162
- package/src/toggler.js +200 -200
- package/src/tooltip/default.tpl +3 -3
- package/src/tooltip.js +160 -160
- package/src/tooltipster.js +25 -25
- package/src/transformer.js +327 -327
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
- package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
- package/src/tristateCheckboxGroup/scss/tristateCheckboxGroup.scss +15 -15
- package/src/tristateCheckboxGroup/tpl/li.tpl +6 -6
- package/src/tristateCheckboxGroup.js +207 -207
- package/src/uploader/fileEntry.tpl +6 -6
- package/src/uploader/uploader.tpl +32 -32
- package/src/uploader.js +594 -594
- package/src/validator/Report.js +10 -10
- package/src/validator/Validator.js +108 -108
- package/src/validator/validators.js +220 -220
- package/src/validator.js +264 -264
- package/src/waitForMedia.js +82 -82
- package/src/waitingDialog/css/waitingDialog.css +7 -7
- package/src/waitingDialog/css/waitingDialog.css.map +1 -1
- package/src/waitingDialog/scss/waitingDialog.scss +34 -34
- package/src/waitingDialog/waitingDialog.js +240 -240
|
@@ -1,632 +1,591 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'ui/autoscroll', 'ui/hider', 'ui/documentViewer/providers/pdfViewer/pdfjs/searchEngine', 'handlebars', 'i18n', 'lib/dompurify/purify'], function ($$1, _, autoscroll, hider, searchEngineFactory, Handlebars, __, DOMPurify) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* https://github.com/cure53/DOMPurify
|
|
31
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
32
|
-
* to make output safe for template systems
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
autoscroll = autoscroll && Object.prototype.hasOwnProperty.call(autoscroll, 'default') ? autoscroll['default'] : autoscroll;
|
|
6
|
+
hider = hider && Object.prototype.hasOwnProperty.call(hider, 'default') ? hider['default'] : hider;
|
|
7
|
+
searchEngineFactory = searchEngineFactory && Object.prototype.hasOwnProperty.call(searchEngineFactory, 'default') ? searchEngineFactory['default'] : searchEngineFactory;
|
|
8
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
9
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
10
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* This program is free software; you can redistribute it and/or
|
|
14
|
+
* modify it under the terms of the GNU General Public License
|
|
15
|
+
* as published by the Free Software Foundation; under version 2
|
|
16
|
+
* of the License (non-upgradable).
|
|
17
|
+
*
|
|
18
|
+
* This program is distributed in the hope that it will be useful,
|
|
19
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
20
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
21
|
+
* GNU General Public License for more details.
|
|
22
|
+
*
|
|
23
|
+
* You should have received a copy of the GNU General Public License
|
|
24
|
+
* along with this program; if not, write to the Free Software
|
|
25
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
26
|
+
*
|
|
27
|
+
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
28
|
+
*
|
|
29
|
+
*
|
|
33
30
|
*/
|
|
31
|
+
function Helpers0 (hb) {
|
|
32
|
+
//register a i18n helper
|
|
33
|
+
hb.registerHelper('__', function (key) {
|
|
34
|
+
return __(key);
|
|
35
|
+
});
|
|
34
36
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*/
|
|
46
|
-
|
|
47
|
-
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
48
|
-
var fragments = [];
|
|
49
|
-
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
50
|
-
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
51
|
-
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
52
|
-
|
|
53
|
-
_.forIn(arr, function (value, key) {
|
|
54
|
-
var fragment = '';
|
|
37
|
+
/**
|
|
38
|
+
* Register dompurify helper
|
|
39
|
+
*
|
|
40
|
+
* https://github.com/cure53/DOMPurify
|
|
41
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
42
|
+
* to make output safe for template systems
|
|
43
|
+
*/
|
|
44
|
+
hb.registerHelper('dompurify', function (context) {
|
|
45
|
+
return DOMPurify.sanitize(context);
|
|
46
|
+
});
|
|
55
47
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
48
|
+
/**
|
|
49
|
+
* Register join helper
|
|
50
|
+
*
|
|
51
|
+
* Example :
|
|
52
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
53
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
54
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
55
|
+
*/
|
|
56
|
+
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
57
|
+
var fragments = [];
|
|
58
|
+
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
59
|
+
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
60
|
+
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
61
|
+
_.forIn(arr, function (value, key) {
|
|
62
|
+
var fragment = '';
|
|
63
|
+
if (value !== null || value !== undefined) {
|
|
64
|
+
if (typeof value === 'boolean') {
|
|
65
|
+
value = value ? 'true' : 'false';
|
|
66
|
+
} else if (typeof value === 'object') {
|
|
67
|
+
value = _.values(value).join(' ');
|
|
68
|
+
}
|
|
69
|
+
} else {
|
|
70
|
+
value = '';
|
|
61
71
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
72
|
+
if (keyValueGlue !== undefined) {
|
|
73
|
+
fragment += key + keyValueGlue;
|
|
74
|
+
}
|
|
75
|
+
fragment += wrapper + value + wrapper;
|
|
76
|
+
fragments.push(fragment);
|
|
77
|
+
});
|
|
78
|
+
return fragments.join(fragmentGlue);
|
|
79
|
+
});
|
|
65
80
|
|
|
66
|
-
|
|
67
|
-
|
|
81
|
+
//register a classic "for loop" helper
|
|
82
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
83
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
84
|
+
var ret = '';
|
|
85
|
+
startIndex = parseInt(startIndex);
|
|
86
|
+
stopIndex = parseInt(stopIndex);
|
|
87
|
+
increment = parseInt(increment);
|
|
88
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
89
|
+
ret += options.fn(_.extend({}, this, {
|
|
90
|
+
i: i
|
|
91
|
+
}));
|
|
92
|
+
}
|
|
93
|
+
return ret;
|
|
94
|
+
});
|
|
95
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
96
|
+
if (var1 == var2) {
|
|
97
|
+
return options.fn(this);
|
|
98
|
+
} else {
|
|
99
|
+
return options.inverse(this);
|
|
68
100
|
}
|
|
69
|
-
|
|
70
|
-
fragment += wrapper + value + wrapper;
|
|
71
|
-
fragments.push(fragment);
|
|
72
101
|
});
|
|
73
102
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
var ret = '';
|
|
80
|
-
startIndex = parseInt(startIndex);
|
|
81
|
-
stopIndex = parseInt(stopIndex);
|
|
82
|
-
increment = parseInt(increment);
|
|
103
|
+
// register a "get property" helper
|
|
104
|
+
// it gets the named property from the provided context
|
|
105
|
+
hb.registerHelper('property', function (name, context) {
|
|
106
|
+
return context[name] || '';
|
|
107
|
+
});
|
|
83
108
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
109
|
+
// register an 'includes' helper
|
|
110
|
+
// it checks if value is in array
|
|
111
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
112
|
+
if (_.contains(haystack, needle)) {
|
|
113
|
+
return options.fn(this);
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
}
|
|
89
117
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
118
|
+
if (!Helpers0.__initialized) {
|
|
119
|
+
Helpers0(Handlebars);
|
|
120
|
+
Helpers0.__initialized = true;
|
|
121
|
+
}
|
|
122
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
123
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
124
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
125
|
+
var buffer = "", stack1, helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression, self=this;
|
|
126
|
+
|
|
127
|
+
function program1(depth0,data) {
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
return "checked ";
|
|
97
131
|
}
|
|
98
|
-
}); // register a "get property" helper
|
|
99
|
-
// it gets the named property from the provided context
|
|
100
132
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
133
|
+
buffer += "<button class=\"small search\" data-control=\"pdf-search\" title=\""
|
|
134
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Search", options) : helperMissing.call(depth0, "__", "Search", options)))
|
|
135
|
+
+ "\"><span class=\"icon icon-find\"></span></button>\n<div class=\"pdf-find-bar hidden\">\n <label for=\"pdf-search-query\">"
|
|
136
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Search", options) : helperMissing.call(depth0, "__", "Search", options)))
|
|
137
|
+
+ ":</label>\n <input type=\"text\" id=\"pdf-search-query\" data-control=\"pdf-search-query\" placeholder=\""
|
|
138
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Type your search", options) : helperMissing.call(depth0, "__", "Type your search", options)))
|
|
139
|
+
+ "\"/>\n <button class=\"small search\" data-control=\"pdf-search-prev\" title=\""
|
|
140
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Previous match", options) : helperMissing.call(depth0, "__", "Previous match", options)))
|
|
141
|
+
+ "\"><span class=\"icon icon-left\"></span></button>\n <button class=\"small search\" data-control=\"pdf-search-next\" title=\""
|
|
142
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Next match", options) : helperMissing.call(depth0, "__", "Next match", options)))
|
|
143
|
+
+ "\"><span class=\"icon icon-right\"></span></button>\n <input type=\"checkbox\" id=\"highlight-all\" data-control=\"highlight-all\" value=\"1\" ";
|
|
144
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.highlightAll), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
145
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
146
|
+
buffer += "/><label for=\"highlight-all\">"
|
|
147
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Highlight all", options) : helperMissing.call(depth0, "__", "Highlight all", options)))
|
|
148
|
+
+ "</label>\n <input type=\"checkbox\" id=\"case-sensitive-search\" data-control=\"case-sensitive-search\" value=\"1\" ";
|
|
149
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.caseSensitive), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
150
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
151
|
+
buffer += "/><label for=\"case-sensitive-search\">"
|
|
152
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Case sensitive", options) : helperMissing.call(depth0, "__", "Case sensitive", options)))
|
|
153
|
+
+ "</label>\n <span class=\"pdf-search-info\" data-control=\"pdf-search-info\">\n <span class=\"pdf-search-position hidden\" data-control=\"pdf-search-position\">\n <span class=\"pdf-search-index\" data-control=\"pdf-search-index\"></span>/<span class=\"pdf-search-count\" data-control=\"pdf-search-count\"></span>\n </span>\n <span class=\"pdf-search-loop hidden\" data-control=\"pdf-search-loop-begin\">\n "
|
|
154
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "End of document reached. Continuing from the beginning.", options) : helperMissing.call(depth0, "__", "End of document reached. Continuing from the beginning.", options)))
|
|
155
|
+
+ "\n </span>\n <span class=\"pdf-search-loop hidden\" data-control=\"pdf-search-loop-end\">\n "
|
|
156
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Start of document reached. Continuing from the end.", options) : helperMissing.call(depth0, "__", "Start of document reached. Continuing from the end.", options)))
|
|
157
|
+
+ "\n </span>\n </span>\n</div>\n";
|
|
158
|
+
return buffer;
|
|
159
|
+
});
|
|
160
|
+
function findBarTpl(data, options, asString) {
|
|
161
|
+
var html = Template(data, options);
|
|
162
|
+
return (asString || true) ? html : $(html);
|
|
126
163
|
}
|
|
127
164
|
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.caseSensitive), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
145
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
146
|
-
buffer += "/><label for=\"case-sensitive-search\">"
|
|
147
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Case sensitive", options) : helperMissing.call(depth0, "__", "Case sensitive", options)))
|
|
148
|
-
+ "</label>\r\n <span class=\"pdf-search-info\" data-control=\"pdf-search-info\">\r\n <span class=\"pdf-search-position hidden\" data-control=\"pdf-search-position\">\r\n <span class=\"pdf-search-index\" data-control=\"pdf-search-index\"></span>/<span class=\"pdf-search-count\" data-control=\"pdf-search-count\"></span>\r\n </span>\r\n <span class=\"pdf-search-loop hidden\" data-control=\"pdf-search-loop-begin\">\r\n "
|
|
149
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "End of document reached. Continuing from the beginning.", options) : helperMissing.call(depth0, "__", "End of document reached. Continuing from the beginning.", options)))
|
|
150
|
-
+ "\r\n </span>\r\n <span class=\"pdf-search-loop hidden\" data-control=\"pdf-search-loop-end\">\r\n "
|
|
151
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Start of document reached. Continuing from the end.", options) : helperMissing.call(depth0, "__", "Start of document reached. Continuing from the end.", options)))
|
|
152
|
-
+ "\r\n </span>\r\n </span>\r\n</div>\r\n";
|
|
153
|
-
return buffer;
|
|
154
|
-
});
|
|
155
|
-
function findBarTpl(data, options, asString) {
|
|
156
|
-
var html = Template(data, options);
|
|
157
|
-
return (asString || true) ? html : $(html);
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
/**
|
|
161
|
-
* This program is free software; you can redistribute it and/or
|
|
162
|
-
* modify it under the terms of the GNU General Public License
|
|
163
|
-
* as published by the Free Software Foundation; under version 2
|
|
164
|
-
* of the License (non-upgradable).
|
|
165
|
-
*
|
|
166
|
-
* This program is distributed in the hope that it will be useful,
|
|
167
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
168
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
169
|
-
* GNU General Public License for more details.
|
|
170
|
-
*
|
|
171
|
-
* You should have received a copy of the GNU General Public License
|
|
172
|
-
* along with this program; if not, write to the Free Software
|
|
173
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
174
|
-
*
|
|
175
|
-
* Copyright (c) 2016 (original work) Open Assessment Technologies SA ;
|
|
176
|
-
*/
|
|
177
|
-
/**
|
|
178
|
-
* The keypress delay before performing a search
|
|
179
|
-
* @type {Number}
|
|
180
|
-
*/
|
|
181
|
-
|
|
182
|
-
var searchThrottle = 250;
|
|
183
|
-
/**
|
|
184
|
-
* Enable/disable an element
|
|
185
|
-
* @param {jQuery} $element
|
|
186
|
-
* @param {Boolean} enabled
|
|
187
|
-
*/
|
|
188
|
-
|
|
189
|
-
function toggleState($element, enabled) {
|
|
190
|
-
if (enabled) {
|
|
191
|
-
$element.removeAttr('disabled');
|
|
192
|
-
} else {
|
|
193
|
-
$element.attr('disabled', true);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
/**
|
|
197
|
-
* Creates a find bar to search and display terms in the PDF document
|
|
198
|
-
* @param {Object} config
|
|
199
|
-
* @param {Object} config.events - The events hub
|
|
200
|
-
* @param {Object} config.areaBroker - The areaBroker that gives access to the UI area
|
|
201
|
-
* @param {Object} config.textManager - The textManager component that gives access to the text content
|
|
202
|
-
* @param {Boolean} [config.caseSensitive] - Use a case sensitive search when the search feature is available
|
|
203
|
-
* @param {Boolean} [config.highlightAll] - Highlight all matches to see all of them at a glance
|
|
204
|
-
*/
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
function pdfjsFindBarFactory(config) {
|
|
208
|
-
var throttledSearchStart = _.throttle(checkQuery, searchThrottle);
|
|
209
|
-
|
|
210
|
-
var events = null;
|
|
211
|
-
var broker = null;
|
|
212
|
-
var searchEngine = null;
|
|
213
|
-
var query = null;
|
|
214
|
-
var pageNum = 0;
|
|
215
|
-
var enabled = true;
|
|
216
|
-
var loopBegin = false;
|
|
217
|
-
var loopEnd = false;
|
|
218
|
-
var navigating = false;
|
|
219
|
-
var controls;
|
|
220
|
-
/**
|
|
221
|
-
* Search for the provided query, then trigger an update request
|
|
165
|
+
/**
|
|
166
|
+
* This program is free software; you can redistribute it and/or
|
|
167
|
+
* modify it under the terms of the GNU General Public License
|
|
168
|
+
* as published by the Free Software Foundation; under version 2
|
|
169
|
+
* of the License (non-upgradable).
|
|
170
|
+
*
|
|
171
|
+
* This program is distributed in the hope that it will be useful,
|
|
172
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
173
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
174
|
+
* GNU General Public License for more details.
|
|
175
|
+
*
|
|
176
|
+
* You should have received a copy of the GNU General Public License
|
|
177
|
+
* along with this program; if not, write to the Free Software
|
|
178
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
179
|
+
*
|
|
180
|
+
* Copyright (c) 2016 (original work) Open Assessment Technologies SA ;
|
|
222
181
|
*/
|
|
223
182
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if (searchEngine) {
|
|
230
|
-
/**
|
|
231
|
-
* Notifies a search is processing
|
|
232
|
-
* @event searching
|
|
233
|
-
* @param {String} query
|
|
234
|
-
*/
|
|
235
|
-
events.trigger('searching', query);
|
|
236
|
-
searchEngine.search(query, pageNum).then(function (page) {
|
|
237
|
-
/**
|
|
238
|
-
* Notifies the search has ended
|
|
239
|
-
* @event searchdone
|
|
240
|
-
* @param {String} query
|
|
241
|
-
* @param {Number} page
|
|
242
|
-
*/
|
|
243
|
-
events.trigger('searchdone', query, page);
|
|
183
|
+
/**
|
|
184
|
+
* The keypress delay before performing a search
|
|
185
|
+
* @type {Number}
|
|
186
|
+
*/
|
|
187
|
+
var searchThrottle = 250;
|
|
244
188
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
* @event error
|
|
254
|
-
* @param {Object} err
|
|
255
|
-
*/
|
|
256
|
-
events.trigger('error', err);
|
|
257
|
-
});
|
|
258
|
-
}
|
|
189
|
+
/**
|
|
190
|
+
* Enable/disable an element
|
|
191
|
+
* @param {jQuery} $element
|
|
192
|
+
* @param {Boolean} enabled
|
|
193
|
+
*/
|
|
194
|
+
function toggleState($element, enabled) {
|
|
195
|
+
if (enabled) {
|
|
196
|
+
$element.removeAttr('disabled');
|
|
259
197
|
} else {
|
|
260
|
-
|
|
261
|
-
searchEngine.clearMatches();
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
refresh();
|
|
198
|
+
$element.attr('disabled', true);
|
|
265
199
|
}
|
|
266
|
-
|
|
267
|
-
updateControls();
|
|
268
200
|
}
|
|
269
|
-
/**
|
|
270
|
-
* Displays the search matches on the rendered page
|
|
271
|
-
* @param {Number} page - The page number of the rendered page
|
|
272
|
-
* @returns {Promise}
|
|
273
|
-
*/
|
|
274
201
|
|
|
202
|
+
/**
|
|
203
|
+
* Creates a find bar to search and display terms in the PDF document
|
|
204
|
+
* @param {Object} config
|
|
205
|
+
* @param {Object} config.events - The events hub
|
|
206
|
+
* @param {Object} config.areaBroker - The areaBroker that gives access to the UI area
|
|
207
|
+
* @param {Object} config.textManager - The textManager component that gives access to the text content
|
|
208
|
+
* @param {Boolean} [config.caseSensitive] - Use a case sensitive search when the search feature is available
|
|
209
|
+
* @param {Boolean} [config.highlightAll] - Highlight all matches to see all of them at a glance
|
|
210
|
+
*/
|
|
211
|
+
function pdfjsFindBarFactory(config) {
|
|
212
|
+
var throttledSearchStart = _.throttle(checkQuery, searchThrottle);
|
|
213
|
+
var events = null;
|
|
214
|
+
var broker = null;
|
|
215
|
+
var searchEngine = null;
|
|
216
|
+
var query = null;
|
|
217
|
+
var pageNum = 0;
|
|
218
|
+
var enabled = true;
|
|
219
|
+
var loopBegin = false;
|
|
220
|
+
var loopEnd = false;
|
|
221
|
+
var navigating = false;
|
|
222
|
+
var controls;
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Search for the provided query, then trigger an update request
|
|
226
|
+
*/
|
|
227
|
+
function doSearch() {
|
|
228
|
+
loopBegin = false;
|
|
229
|
+
loopEnd = false;
|
|
230
|
+
if (query) {
|
|
231
|
+
if (searchEngine) {
|
|
232
|
+
/**
|
|
233
|
+
* Notifies a search is processing
|
|
234
|
+
* @event searching
|
|
235
|
+
* @param {String} query
|
|
236
|
+
*/
|
|
237
|
+
events.trigger('searching', query);
|
|
238
|
+
searchEngine.search(query, pageNum).then(function (page) {
|
|
239
|
+
/**
|
|
240
|
+
* Notifies the search has ended
|
|
241
|
+
* @event searchdone
|
|
242
|
+
* @param {String} query
|
|
243
|
+
* @param {Number} page
|
|
244
|
+
*/
|
|
245
|
+
events.trigger('searchdone', query, page);
|
|
246
|
+
if (page) {
|
|
247
|
+
jumpTo(page);
|
|
248
|
+
} else {
|
|
249
|
+
refresh();
|
|
250
|
+
}
|
|
251
|
+
}).catch(function (err) {
|
|
252
|
+
/**
|
|
253
|
+
* Notifies the search error
|
|
254
|
+
* @event error
|
|
255
|
+
* @param {Object} err
|
|
256
|
+
*/
|
|
257
|
+
events.trigger('error', err);
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
if (searchEngine) {
|
|
262
|
+
searchEngine.clearMatches();
|
|
263
|
+
}
|
|
264
|
+
refresh();
|
|
265
|
+
}
|
|
266
|
+
updateControls();
|
|
267
|
+
}
|
|
275
268
|
|
|
276
|
-
|
|
277
|
-
|
|
269
|
+
/**
|
|
270
|
+
* Displays the search matches on the rendered page
|
|
271
|
+
* @param {Number} page - The page number of the rendered page
|
|
272
|
+
* @returns {Promise}
|
|
273
|
+
*/
|
|
274
|
+
function updateMatches(page) {
|
|
275
|
+
var textManager = searchEngine && searchEngine.getTextManager();
|
|
276
|
+
if (textManager && textManager.getDocument()) {
|
|
277
|
+
/**
|
|
278
|
+
* Notifies the matches are updating
|
|
279
|
+
* @event matchesupdating
|
|
280
|
+
* @param {Number} page
|
|
281
|
+
*/
|
|
282
|
+
events.trigger('matchesupdating', page);
|
|
283
|
+
return searchEngine.updateMatches(page).then(matchUpdated);
|
|
284
|
+
}
|
|
285
|
+
}
|
|
278
286
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
287
|
+
/**
|
|
288
|
+
* Requests a page change
|
|
289
|
+
* @param {Number} page
|
|
290
|
+
*/
|
|
291
|
+
function jumpTo(page) {
|
|
292
|
+
/**
|
|
293
|
+
* @event setpage
|
|
294
|
+
* @param {Number} page
|
|
284
295
|
*/
|
|
285
|
-
events.trigger('
|
|
286
|
-
return searchEngine.updateMatches(page).then(matchUpdated);
|
|
296
|
+
events.trigger('setpage', page);
|
|
287
297
|
}
|
|
288
|
-
}
|
|
289
|
-
/**
|
|
290
|
-
* Requests a page change
|
|
291
|
-
* @param {Number} page
|
|
292
|
-
*/
|
|
293
|
-
|
|
294
298
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
* @event setpage
|
|
298
|
-
* @param {Number} page
|
|
299
|
+
/**
|
|
300
|
+
* Requests a page refresh
|
|
299
301
|
*/
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
302
|
+
function refresh() {
|
|
303
|
+
/**
|
|
304
|
+
* @event refresh
|
|
305
|
+
*/
|
|
306
|
+
events.trigger('refresh');
|
|
307
|
+
}
|
|
306
308
|
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
* @
|
|
309
|
+
/**
|
|
310
|
+
* Finalizes the matches update
|
|
311
|
+
* @param {Number} page
|
|
310
312
|
*/
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
313
|
+
function matchUpdated(page) {
|
|
314
|
+
if (navigating) {
|
|
315
|
+
navigating = false;
|
|
316
|
+
focusOnMatch();
|
|
317
|
+
}
|
|
318
|
+
updateControls();
|
|
318
319
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
320
|
+
/**
|
|
321
|
+
* Notifies the matches have been displayed
|
|
322
|
+
* @event matchesupdated
|
|
323
|
+
* @param {Number} page
|
|
324
|
+
*/
|
|
325
|
+
events.trigger('matchesupdated', page);
|
|
323
326
|
}
|
|
324
327
|
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
* Notifies the matches have been displayed
|
|
328
|
-
* @event matchesupdated
|
|
329
|
-
* @param {Number} page
|
|
328
|
+
/**
|
|
329
|
+
* Select the current match and displays the page that contains it
|
|
330
330
|
*/
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
if (searchEngine) {
|
|
343
|
-
match = searchEngine.getCurrentMatch();
|
|
344
|
-
|
|
345
|
-
if (match) {
|
|
346
|
-
navigating = true;
|
|
347
|
-
|
|
348
|
-
if (pageNum !== match.page) {
|
|
349
|
-
jumpTo(match.page);
|
|
350
|
-
} else {
|
|
351
|
-
updateSelection();
|
|
331
|
+
function jumpToMatch() {
|
|
332
|
+
var match;
|
|
333
|
+
if (searchEngine) {
|
|
334
|
+
match = searchEngine.getCurrentMatch();
|
|
335
|
+
if (match) {
|
|
336
|
+
navigating = true;
|
|
337
|
+
if (pageNum !== match.page) {
|
|
338
|
+
jumpTo(match.page);
|
|
339
|
+
} else {
|
|
340
|
+
updateSelection();
|
|
341
|
+
}
|
|
352
342
|
}
|
|
353
343
|
}
|
|
354
344
|
}
|
|
355
|
-
}
|
|
356
|
-
/**
|
|
357
|
-
* Moves between matches
|
|
358
|
-
* @param {Number} direction
|
|
359
|
-
*/
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
function moveBy(direction) {
|
|
363
|
-
loopBegin = false;
|
|
364
|
-
loopEnd = false;
|
|
365
345
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
346
|
+
/**
|
|
347
|
+
* Moves between matches
|
|
348
|
+
* @param {Number} direction
|
|
349
|
+
*/
|
|
350
|
+
function moveBy(direction) {
|
|
351
|
+
loopBegin = false;
|
|
352
|
+
loopEnd = false;
|
|
353
|
+
if (searchEngine) {
|
|
354
|
+
if (direction < 0) {
|
|
355
|
+
loopEnd = searchEngine.previousMatch();
|
|
356
|
+
} else {
|
|
357
|
+
loopBegin = searchEngine.nextMatch();
|
|
358
|
+
}
|
|
359
|
+
jumpToMatch();
|
|
371
360
|
}
|
|
372
|
-
|
|
373
|
-
|
|
361
|
+
updateControls();
|
|
362
|
+
focusOnInput();
|
|
374
363
|
}
|
|
375
364
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
*/
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
function getSelectectMatchElement() {
|
|
386
|
-
return broker.getContentArea().find('.highlight.selected');
|
|
387
|
-
}
|
|
388
|
-
/**
|
|
389
|
-
* Gets the current match element
|
|
390
|
-
* @returns {jQuery}
|
|
391
|
-
*/
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
function getCurrentMatchElement() {
|
|
395
|
-
var match = searchEngine.getCurrentMatch();
|
|
396
|
-
return broker.getContentArea().find('[data-match="' + match.index + '"]');
|
|
397
|
-
}
|
|
398
|
-
/**
|
|
399
|
-
* Updates the selection to reflect the current match
|
|
400
|
-
*/
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
function updateSelection() {
|
|
404
|
-
if (broker && searchEngine) {
|
|
405
|
-
getSelectectMatchElement().removeClass('selected');
|
|
406
|
-
getCurrentMatchElement().addClass('selected');
|
|
407
|
-
matchUpdated(pageNum);
|
|
365
|
+
/**
|
|
366
|
+
* Gets the selected match element
|
|
367
|
+
* @returns {jQuery}
|
|
368
|
+
*/
|
|
369
|
+
function getSelectectMatchElement() {
|
|
370
|
+
return broker.getContentArea().find('.highlight.selected');
|
|
408
371
|
}
|
|
409
|
-
}
|
|
410
|
-
/**
|
|
411
|
-
* Gives the focus to the selected match
|
|
412
|
-
*/
|
|
413
372
|
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
373
|
+
/**
|
|
374
|
+
* Gets the current match element
|
|
375
|
+
* @returns {jQuery}
|
|
376
|
+
*/
|
|
377
|
+
function getCurrentMatchElement() {
|
|
378
|
+
var match = searchEngine.getCurrentMatch();
|
|
379
|
+
return broker.getContentArea().find('[data-match="' + match.index + '"]');
|
|
418
380
|
}
|
|
419
|
-
}
|
|
420
|
-
/**
|
|
421
|
-
* Gives the focus to the query input
|
|
422
|
-
*/
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
function focusOnInput() {
|
|
426
|
-
controls.$searchQuery.focus();
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Reads the caseSensitive option and update the config
|
|
430
|
-
*/
|
|
431
|
-
|
|
432
381
|
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
if (broker) {
|
|
443
|
-
broker.getContentArea().toggleClass('highlight-all', controls.$highlightAll.is(':checked'));
|
|
382
|
+
/**
|
|
383
|
+
* Updates the selection to reflect the current match
|
|
384
|
+
*/
|
|
385
|
+
function updateSelection() {
|
|
386
|
+
if (broker && searchEngine) {
|
|
387
|
+
getSelectectMatchElement().removeClass('selected');
|
|
388
|
+
getCurrentMatchElement().addClass('selected');
|
|
389
|
+
matchUpdated(pageNum);
|
|
390
|
+
}
|
|
444
391
|
}
|
|
445
|
-
}
|
|
446
|
-
/**
|
|
447
|
-
* Checks if a change has been made in the current query, then performs a new search if needed
|
|
448
|
-
*/
|
|
449
|
-
|
|
450
392
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
393
|
+
/**
|
|
394
|
+
* Gives the focus to the selected match
|
|
395
|
+
*/
|
|
396
|
+
function focusOnMatch() {
|
|
397
|
+
if (broker && searchEngine) {
|
|
398
|
+
autoscroll(getSelectectMatchElement(), broker.getContentArea());
|
|
399
|
+
}
|
|
458
400
|
}
|
|
459
|
-
}
|
|
460
|
-
/**
|
|
461
|
-
* Fetches the required controls
|
|
462
|
-
* @param {jQuery} $container
|
|
463
|
-
* @returns {Object}
|
|
464
|
-
*/
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
function fetchControls($container) {
|
|
468
|
-
return {
|
|
469
|
-
$searchBar: $$1('.pdf-find-bar', $container),
|
|
470
|
-
$searchButton: $$1('[data-control="pdf-search"]', $container),
|
|
471
|
-
$searchQuery: $$1('[data-control="pdf-search-query"]', $container),
|
|
472
|
-
$prevMatch: $$1('[data-control="pdf-search-prev"]', $container),
|
|
473
|
-
$nextMatch: $$1('[data-control="pdf-search-next"]', $container),
|
|
474
|
-
$caseSensitive: $$1('[data-control="case-sensitive-search"]', $container),
|
|
475
|
-
$highlightAll: $$1('[data-control="highlight-all"]', $container),
|
|
476
|
-
$matchIndex: $$1('[data-control="pdf-search-index"]', $container),
|
|
477
|
-
$matchCount: $$1('[data-control="pdf-search-count"]', $container),
|
|
478
|
-
$searchPosition: $$1('[data-control="pdf-search-position"]', $container),
|
|
479
|
-
$searchLoopBegin: $$1('[data-control="pdf-search-loop-begin"]', $container),
|
|
480
|
-
$searchLoopEnd: $$1('[data-control="pdf-search-loop-end"]', $container)
|
|
481
|
-
};
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Will update the displayed controls
|
|
485
|
-
*/
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
function updateControls() {
|
|
489
|
-
var matchCount = 0;
|
|
490
|
-
var matchIndex = 0;
|
|
491
|
-
var match;
|
|
492
401
|
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
402
|
+
/**
|
|
403
|
+
* Gives the focus to the query input
|
|
404
|
+
*/
|
|
405
|
+
function focusOnInput() {
|
|
406
|
+
controls.$searchQuery.focus();
|
|
497
407
|
}
|
|
498
408
|
|
|
499
|
-
|
|
500
|
-
|
|
409
|
+
/**
|
|
410
|
+
* Reads the caseSensitive option and update the config
|
|
411
|
+
*/
|
|
412
|
+
function readCaseSensitiveOption() {
|
|
413
|
+
config.caseSensitive = controls.$caseSensitive.is(':checked');
|
|
501
414
|
}
|
|
502
415
|
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
controls.$matchCount.text(matchCount);
|
|
511
|
-
hider.toggle(controls.$searchPosition, enabled && matchCount > 0);
|
|
512
|
-
hider.toggle(controls.$searchLoopBegin, enabled && loopBegin);
|
|
513
|
-
hider.toggle(controls.$searchLoopEnd, enabled && loopEnd);
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
config = config || {};
|
|
517
|
-
|
|
518
|
-
if (!_.isPlainObject(config.events)) {
|
|
519
|
-
throw new TypeError('You must provide an events hub! [config.events is missing]');
|
|
520
|
-
}
|
|
521
|
-
|
|
522
|
-
if (!_.isPlainObject(config.areaBroker)) {
|
|
523
|
-
throw new TypeError('You must provide an areaBroker to give access to the UI! [config.areaBroker is missing]');
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
if (!_.isPlainObject(config.textManager)) {
|
|
527
|
-
throw new TypeError('You must provide a textManager to give access to the PDF text content! [config.textManager is missing]');
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
searchEngine = searchEngineFactory(config);
|
|
531
|
-
broker = config.areaBroker;
|
|
532
|
-
events = config.events;
|
|
533
|
-
broker.getActionsArea().prepend(findBarTpl(config));
|
|
534
|
-
controls = fetchControls(broker.getBarArea());
|
|
535
|
-
readCaseSensitiveOption();
|
|
536
|
-
applyHighlightAllOption();
|
|
537
|
-
controls.$searchButton.on('click', function () {
|
|
538
|
-
hider.toggle(controls.$searchBar);
|
|
539
|
-
|
|
540
|
-
if (!hider.isHidden(controls.$searchBar)) {
|
|
541
|
-
focusOnInput();
|
|
416
|
+
/**
|
|
417
|
+
* Reads the highlightAll option and apply the state
|
|
418
|
+
*/
|
|
419
|
+
function applyHighlightAllOption() {
|
|
420
|
+
if (broker) {
|
|
421
|
+
broker.getContentArea().toggleClass('highlight-all', controls.$highlightAll.is(':checked'));
|
|
422
|
+
}
|
|
542
423
|
}
|
|
543
|
-
});
|
|
544
|
-
controls.$prevMatch.on('click', function () {
|
|
545
|
-
moveBy(-1);
|
|
546
|
-
});
|
|
547
|
-
controls.$nextMatch.on('click', function () {
|
|
548
|
-
moveBy(1);
|
|
549
|
-
});
|
|
550
|
-
controls.$caseSensitive.on('change', function () {
|
|
551
|
-
navigating = true;
|
|
552
|
-
readCaseSensitiveOption();
|
|
553
|
-
doSearch();
|
|
554
|
-
focusOnInput();
|
|
555
|
-
});
|
|
556
|
-
controls.$highlightAll.on('change', function () {
|
|
557
|
-
applyHighlightAllOption();
|
|
558
|
-
focusOnInput();
|
|
559
|
-
});
|
|
560
|
-
controls.$searchQuery.on('keypress', function (event) {
|
|
561
|
-
switch (event.keyCode) {
|
|
562
|
-
case 27:
|
|
563
|
-
hider.hide(controls.$searchBar);
|
|
564
|
-
break;
|
|
565
424
|
|
|
566
|
-
|
|
567
|
-
|
|
425
|
+
/**
|
|
426
|
+
* Checks if a change has been made in the current query, then performs a new search if needed
|
|
427
|
+
*/
|
|
428
|
+
function checkQuery() {
|
|
429
|
+
var typedQuery = controls.$searchQuery.val();
|
|
430
|
+
if (typedQuery !== query) {
|
|
431
|
+
query = typedQuery;
|
|
432
|
+
navigating = true;
|
|
433
|
+
doSearch();
|
|
434
|
+
}
|
|
568
435
|
}
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
enabled = false;
|
|
575
|
-
updateControls();
|
|
576
|
-
}).on('pagechange.findbar', function (page) {
|
|
577
|
-
pageNum = page;
|
|
578
|
-
updateControls();
|
|
579
|
-
}).on('allrendered.findbar', function (page) {
|
|
580
|
-
pageNum = page;
|
|
581
|
-
updateMatches(page);
|
|
582
|
-
updateControls();
|
|
583
|
-
})
|
|
584
|
-
/**
|
|
585
|
-
* Notifies the component is initialized
|
|
586
|
-
* @event init.findbar
|
|
587
|
-
*/
|
|
588
|
-
.trigger('init.findbar');
|
|
589
|
-
return {
|
|
590
|
-
/**
|
|
591
|
-
* Gets the search engine instance
|
|
592
|
-
* @returns {Object}
|
|
436
|
+
|
|
437
|
+
/**
|
|
438
|
+
* Fetches the required controls
|
|
439
|
+
* @param {jQuery} $container
|
|
440
|
+
* @returns {Object}
|
|
593
441
|
*/
|
|
594
|
-
|
|
595
|
-
return
|
|
596
|
-
|
|
442
|
+
function fetchControls($container) {
|
|
443
|
+
return {
|
|
444
|
+
$searchBar: $$1('.pdf-find-bar', $container),
|
|
445
|
+
$searchButton: $$1('[data-control="pdf-search"]', $container),
|
|
446
|
+
$searchQuery: $$1('[data-control="pdf-search-query"]', $container),
|
|
447
|
+
$prevMatch: $$1('[data-control="pdf-search-prev"]', $container),
|
|
448
|
+
$nextMatch: $$1('[data-control="pdf-search-next"]', $container),
|
|
449
|
+
$caseSensitive: $$1('[data-control="case-sensitive-search"]', $container),
|
|
450
|
+
$highlightAll: $$1('[data-control="highlight-all"]', $container),
|
|
451
|
+
$matchIndex: $$1('[data-control="pdf-search-index"]', $container),
|
|
452
|
+
$matchCount: $$1('[data-control="pdf-search-count"]', $container),
|
|
453
|
+
$searchPosition: $$1('[data-control="pdf-search-position"]', $container),
|
|
454
|
+
$searchLoopBegin: $$1('[data-control="pdf-search-loop-begin"]', $container),
|
|
455
|
+
$searchLoopEnd: $$1('[data-control="pdf-search-loop-end"]', $container)
|
|
456
|
+
};
|
|
457
|
+
}
|
|
597
458
|
|
|
598
|
-
/**
|
|
599
|
-
*
|
|
459
|
+
/**
|
|
460
|
+
* Will update the displayed controls
|
|
600
461
|
*/
|
|
601
|
-
|
|
462
|
+
function updateControls() {
|
|
463
|
+
var matchCount = 0;
|
|
464
|
+
var matchIndex = 0;
|
|
465
|
+
var match;
|
|
602
466
|
if (searchEngine) {
|
|
603
|
-
searchEngine.
|
|
467
|
+
matchCount = searchEngine.getMatchCount();
|
|
468
|
+
match = searchEngine.getCurrentMatch();
|
|
469
|
+
matchIndex = match && match.overall;
|
|
604
470
|
}
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
controls.$searchButton.remove();
|
|
471
|
+
if (!enabled && !hider.isHidden(controls.$searchBar)) {
|
|
472
|
+
hider.hide(controls.$searchBar);
|
|
608
473
|
}
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
474
|
+
toggleState(controls.$searchButton, enabled);
|
|
475
|
+
toggleState(controls.$searchQuery, enabled);
|
|
476
|
+
toggleState(controls.$caseSensitive, enabled);
|
|
477
|
+
toggleState(controls.$highlightAll, enabled);
|
|
478
|
+
toggleState(controls.$prevMatch, enabled && matchCount > 1);
|
|
479
|
+
toggleState(controls.$nextMatch, enabled && matchCount > 1);
|
|
480
|
+
controls.$matchIndex.text(matchIndex);
|
|
481
|
+
controls.$matchCount.text(matchCount);
|
|
482
|
+
hider.toggle(controls.$searchPosition, enabled && matchCount > 0);
|
|
483
|
+
hider.toggle(controls.$searchLoopBegin, enabled && loopBegin);
|
|
484
|
+
hider.toggle(controls.$searchLoopEnd, enabled && loopEnd);
|
|
485
|
+
}
|
|
486
|
+
config = config || {};
|
|
487
|
+
if (!_.isPlainObject(config.events)) {
|
|
488
|
+
throw new TypeError('You must provide an events hub! [config.events is missing]');
|
|
489
|
+
}
|
|
490
|
+
if (!_.isPlainObject(config.areaBroker)) {
|
|
491
|
+
throw new TypeError('You must provide an areaBroker to give access to the UI! [config.areaBroker is missing]');
|
|
492
|
+
}
|
|
493
|
+
if (!_.isPlainObject(config.textManager)) {
|
|
494
|
+
throw new TypeError('You must provide a textManager to give access to the PDF text content! [config.textManager is missing]');
|
|
495
|
+
}
|
|
496
|
+
searchEngine = searchEngineFactory(config);
|
|
497
|
+
broker = config.areaBroker;
|
|
498
|
+
events = config.events;
|
|
499
|
+
broker.getActionsArea().prepend(findBarTpl(config));
|
|
500
|
+
controls = fetchControls(broker.getBarArea());
|
|
501
|
+
readCaseSensitiveOption();
|
|
502
|
+
applyHighlightAllOption();
|
|
503
|
+
controls.$searchButton.on('click', function () {
|
|
504
|
+
hider.toggle(controls.$searchBar);
|
|
505
|
+
if (!hider.isHidden(controls.$searchBar)) {
|
|
506
|
+
focusOnInput();
|
|
612
507
|
}
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
508
|
+
});
|
|
509
|
+
controls.$prevMatch.on('click', function () {
|
|
510
|
+
moveBy(-1);
|
|
511
|
+
});
|
|
512
|
+
controls.$nextMatch.on('click', function () {
|
|
513
|
+
moveBy(1);
|
|
514
|
+
});
|
|
515
|
+
controls.$caseSensitive.on('change', function () {
|
|
516
|
+
navigating = true;
|
|
517
|
+
readCaseSensitiveOption();
|
|
518
|
+
doSearch();
|
|
519
|
+
focusOnInput();
|
|
520
|
+
});
|
|
521
|
+
controls.$highlightAll.on('change', function () {
|
|
522
|
+
applyHighlightAllOption();
|
|
523
|
+
focusOnInput();
|
|
524
|
+
});
|
|
525
|
+
controls.$searchQuery.on('keypress', function (event) {
|
|
526
|
+
switch (event.keyCode) {
|
|
527
|
+
case 27:
|
|
528
|
+
hider.hide(controls.$searchBar);
|
|
529
|
+
break;
|
|
530
|
+
default:
|
|
531
|
+
throttledSearchStart();
|
|
532
|
+
}
|
|
533
|
+
});
|
|
534
|
+
events.on('enable.findbar', function () {
|
|
535
|
+
enabled = true;
|
|
536
|
+
updateControls();
|
|
537
|
+
}).on('disable.findbar', function () {
|
|
538
|
+
enabled = false;
|
|
539
|
+
updateControls();
|
|
540
|
+
}).on('pagechange.findbar', function (page) {
|
|
541
|
+
pageNum = page;
|
|
542
|
+
updateControls();
|
|
543
|
+
}).on('allrendered.findbar', function (page) {
|
|
544
|
+
pageNum = page;
|
|
545
|
+
updateMatches(page);
|
|
546
|
+
updateControls();
|
|
547
|
+
})
|
|
548
|
+
/**
|
|
549
|
+
* Notifies the component is initialized
|
|
550
|
+
* @event init.findbar
|
|
551
|
+
*/.trigger('init.findbar');
|
|
552
|
+
return {
|
|
553
|
+
/**
|
|
554
|
+
* Gets the search engine instance
|
|
555
|
+
* @returns {Object}
|
|
621
556
|
*/
|
|
557
|
+
getSearchEngine: function getSearchEngine() {
|
|
558
|
+
return searchEngine;
|
|
559
|
+
},
|
|
560
|
+
/**
|
|
561
|
+
* Destroys the search engine and frees the resources
|
|
562
|
+
*/
|
|
563
|
+
destroy: function destroy() {
|
|
564
|
+
if (searchEngine) {
|
|
565
|
+
searchEngine.destroy();
|
|
566
|
+
}
|
|
567
|
+
if (controls.$searchButton) {
|
|
568
|
+
controls.$searchButton.remove();
|
|
569
|
+
}
|
|
570
|
+
if (controls.$searchBar) {
|
|
571
|
+
controls.$searchBar.remove();
|
|
572
|
+
}
|
|
573
|
+
controls = {};
|
|
574
|
+
config = null;
|
|
575
|
+
searchEngine = null;
|
|
576
|
+
broker = null;
|
|
577
|
+
|
|
578
|
+
/**
|
|
579
|
+
* Notifies the component is destroying
|
|
580
|
+
* @event destroy.findbar
|
|
581
|
+
*/
|
|
582
|
+
events.trigger('destroy.findbar');
|
|
583
|
+
events.off('.findbar');
|
|
584
|
+
events = null;
|
|
585
|
+
}
|
|
586
|
+
};
|
|
587
|
+
}
|
|
622
588
|
|
|
623
|
-
|
|
624
|
-
events.off('.findbar');
|
|
625
|
-
events = null;
|
|
626
|
-
}
|
|
627
|
-
};
|
|
628
|
-
}
|
|
629
|
-
|
|
630
|
-
return pdfjsFindBarFactory;
|
|
589
|
+
return pdfjsFindBarFactory;
|
|
631
590
|
|
|
632
591
|
});
|