@oat-sa/tao-core-ui 1.58.1 → 1.58.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actionbar.js +386 -395
- package/dist/adder.js +21 -19
- package/dist/animable/absorbable/absorbable.js +204 -213
- package/dist/animable/absorbable/css/absorb.css +1 -0
- package/dist/animable/absorbable/css/absorb.css.map +1 -1
- package/dist/animable/pulsable/pulsable.js +168 -177
- package/dist/autocomplete/css/autocomplete.css +1 -0
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +68 -66
- package/dist/badge/badge.js +188 -197
- package/dist/badge/css/badge.css +1 -0
- package/dist/badge/css/badge.css.map +1 -1
- package/dist/breadcrumbs.js +275 -284
- package/dist/btngrouper.js +5 -5
- package/dist/bulkActionPopup.js +490 -495
- package/dist/button.js +283 -291
- package/dist/cascadingComboBox.js +249 -258
- package/dist/ckeditor/ckConfigurator.js +26 -19
- package/dist/ckeditor/dtdHandler.js +11 -9
- package/dist/class/selector.js +441 -450
- package/dist/component/resizable.js +1 -1
- package/dist/component/windowed.js +285 -294
- package/dist/component.js +419 -428
- package/dist/contextualPopup.js +417 -426
- package/dist/dashboard.js +300 -309
- package/dist/datalist.js +753 -762
- package/dist/datatable/filterStrategy/multiple.js +1 -1
- package/dist/datatable/filterStrategy/single.js +1 -1
- package/dist/datatable.js +1527 -1550
- package/dist/dateRange/dateRange.js +393 -402
- package/dist/datetime/picker.js +665 -672
- package/dist/deleter.js +368 -377
- package/dist/destination/selector.js +286 -295
- package/dist/dialog/alert.js +3 -3
- package/dist/dialog/confirm.js +1 -1
- package/dist/dialog/confirmDelete.js +216 -225
- package/dist/dialog.js +650 -654
- package/dist/disabler.js +8 -8
- package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +166 -175
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +518 -527
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +380 -389
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +539 -548
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +369 -378
- package/dist/documentViewer/providers/pdfViewer.js +184 -193
- package/dist/documentViewer.js +292 -301
- package/dist/dropdown.js +383 -392
- package/dist/durationer.js +5 -5
- package/dist/dynamicComponent.js +597 -598
- package/dist/feedback.js +356 -362
- package/dist/figure/FigureStateActive.js +117 -108
- package/dist/filesender.js +2 -2
- package/dist/filter.js +230 -239
- package/dist/form/dropdownForm.js +355 -357
- package/dist/form/form.js +919 -690
- package/dist/form/simpleForm.js +1 -1
- package/dist/form/validator/renderer.js +233 -235
- package/dist/form/validator/validator.js +257 -189
- package/dist/form/widget/definitions.js +1 -1
- package/dist/form/widget/providers/checkBox.js +254 -259
- package/dist/form/widget/providers/comboBox.js +187 -192
- package/dist/form/widget/providers/default.js +8 -9
- package/dist/form/widget/providers/hidden.js +170 -179
- package/dist/form/widget/providers/hiddenBox.js +262 -267
- package/dist/form/widget/providers/radioBox.js +216 -225
- package/dist/form/widget/providers/textArea.js +187 -196
- package/dist/form/widget/providers/textBox.js +2 -3
- package/dist/form/widget/widget.js +473 -475
- package/dist/formValidator/formValidator.js +1 -1
- package/dist/formValidator/highlighters/message.js +1 -1
- package/dist/generis/form/form.js +314 -323
- package/dist/generis/validator/validator.js +209 -218
- package/dist/generis/widget/checkBox/checkBox.js +218 -227
- package/dist/generis/widget/comboBox/comboBox.js +179 -188
- package/dist/generis/widget/hiddenBox/hiddenBox.js +220 -229
- package/dist/generis/widget/textBox/textBox.js +169 -178
- package/dist/generis/widget/widget.js +246 -255
- package/dist/groupedComboBox.js +222 -231
- package/dist/groupvalidator.js +2 -2
- package/dist/highlighter.js +967 -958
- package/dist/image/ImgStateActive/helper.js +7 -5
- package/dist/image/ImgStateActive/initHelper.js +49 -43
- package/dist/image/ImgStateActive/initMediaEditor.js +24 -20
- package/dist/image/ImgStateActive/mediaSizer.js +14 -12
- package/dist/image/ImgStateActive.js +72 -70
- package/dist/incrementer.js +6 -6
- package/dist/inplacer.js +6 -6
- package/dist/itemButtonList/css/item-button-list.css +1 -0
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +439 -435
- package/dist/keyNavigation/navigableDomElement.js +51 -38
- package/dist/keyNavigation/navigator.js +85 -70
- package/dist/listbox.js +460 -469
- package/dist/liststyler.js +8 -8
- package/dist/loadingButton/loadingButton.js +209 -218
- package/dist/lock.js +476 -485
- package/dist/login/login.js +475 -484
- package/dist/maths/calculator/basicCalculator.js +235 -244
- package/dist/maths/calculator/calculatorComponent.js +3 -3
- package/dist/maths/calculator/core/board.js +772 -781
- package/dist/maths/calculator/core/expression.js +476 -485
- package/dist/maths/calculator/core/labels.js +228 -237
- package/dist/maths/calculator/core/tokenizer.js +1 -1
- package/dist/maths/calculator/core/tokens.js +163 -170
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +244 -253
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +279 -288
- package/dist/maths/calculator/scientificCalculator.js +327 -336
- package/dist/mediaEditor/mediaEditorComponent.js +238 -245
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +7 -7
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +229 -235
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +580 -589
- package/dist/mediaplayer/players/html5.js +666 -675
- package/dist/mediaplayer/players/youtube.js +419 -424
- package/dist/mediaplayer/support.js +11 -10
- package/dist/mediaplayer/utils/reminder.js +14 -13
- package/dist/mediaplayer/utils/timeObserver.js +10 -11
- package/dist/mediaplayer/youtubeManager.js +164 -145
- package/dist/mediaplayer.js +1565 -1520
- package/dist/mediasizer.js +669 -678
- package/dist/modal.js +10 -17
- package/dist/pageSizeSelector.js +219 -228
- package/dist/pagination/providers/pages.js +280 -289
- package/dist/pagination/providers/simple.js +192 -201
- package/dist/previewer.js +30 -30
- package/dist/progressbar.js +4 -4
- package/dist/report.js +347 -356
- package/dist/resource/filters.js +271 -280
- package/dist/resource/list.js +1264 -1273
- package/dist/resource/selector.js +865 -874
- package/dist/resource/tree.js +1483 -1492
- package/dist/resourcemgr/fileBrowser.js +564 -569
- package/dist/resourcemgr/filePreview.js +16 -16
- package/dist/resourcemgr/fileSelector.js +515 -524
- package/dist/resourcemgr/util/updatePermissions.js +2 -2
- package/dist/resourcemgr.js +306 -315
- package/dist/searchModal/advancedSearch.js +796 -767
- package/dist/searchModal.js +114 -91
- package/dist/switch/switch.js +298 -307
- package/dist/tabs.js +598 -575
- package/dist/taskQueue/status.js +312 -321
- package/dist/taskQueue/table.js +375 -384
- package/dist/taskQueue/taskQueueModel.js +488 -472
- package/dist/taskQueueButton/taskable.js +264 -273
- package/dist/taskQueueButton/treeButton.js +189 -198
- package/dist/themeLoader.js +24 -23
- package/dist/themes.js +1 -1
- package/dist/toggler.js +3 -3
- package/dist/tooltip.js +295 -304
- package/dist/transformer.js +2 -2
- package/dist/tristateCheckboxGroup.js +311 -320
- package/dist/uploader.js +687 -696
- package/dist/validator/Report.js +1 -1
- package/dist/validator/Validator.js +3 -3
- package/dist/validator/validators.js +9 -9
- package/dist/validator.js +240 -230
- package/dist/waitForMedia.js +1 -1
- package/package.json +3 -3
- package/src/animable/absorbable/css/absorb.css +1 -0
- package/src/animable/absorbable/css/absorb.css.map +1 -1
- package/src/autocomplete/css/autocomplete.css +1 -0
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/badge/css/badge.css +1 -0
- package/src/badge/css/badge.css.map +1 -1
- package/src/ckeditor/ckConfigurator.js +4 -0
- package/src/itemButtonList/css/item-button-list.css +1 -0
- package/src/itemButtonList/css/item-button-list.css.map +1 -1
- package/src/.DS_Store +0 -0
- package/src/css/basic.css +0 -7826
- package/src/css/basic.css.map +0 -1
- package/src/css/ckeditor/skins/tao/css/dialog.css +0 -950
- package/src/css/ckeditor/skins/tao/css/dialog.css.map +0 -1
- package/src/css/ckeditor/skins/tao/css/editor.css +0 -1850
- package/src/css/ckeditor/skins/tao/css/editor.css.map +0 -1
- package/src/scss/.DS_Store +0 -0
- package/src/scss/basic.scss +0 -16
- package/src/scss/ckeditor/skins/tao/scss/dialog.scss +0 -763
- package/src/scss/ckeditor/skins/tao/scss/editor.scss +0 -111
- package/src/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +0 -59
- package/src/scss/ckeditor/skins/tao/scss/inc/_colorpanel.scss +0 -118
- package/src/scss/ckeditor/skins/tao/scss/inc/_elementspath.scss +0 -69
- package/src/scss/ckeditor/skins/tao/scss/inc/_mainui.scss +0 -194
- package/src/scss/ckeditor/skins/tao/scss/inc/_menu.scss +0 -181
- package/src/scss/ckeditor/skins/tao/scss/inc/_panel.scss +0 -200
- package/src/scss/ckeditor/skins/tao/scss/inc/_presets.scss +0 -32
- package/src/scss/ckeditor/skins/tao/scss/inc/_reset.scss +0 -101
- package/src/scss/ckeditor/skins/tao/scss/inc/_richcombo.scss +0 -213
- package/src/scss/ckeditor/skins/tao/scss/inc/_tao.scss +0 -59
- package/src/scss/ckeditor/skins/tao/scss/inc/_toolbar.scss +0 -301
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff.b64 +0 -1
- package/src/scss/font/tao/tao.eot +0 -0
- package/src/scss/font/tao/tao.svg +0 -235
- package/src/scss/font/tao/tao.ttf +0 -0
- package/src/scss/font/tao/tao.woff +0 -0
- package/src/scss/inc/_base.scss +0 -496
- package/src/scss/inc/_bootstrap.scss +0 -6
- package/src/scss/inc/_buttons.scss +0 -114
- package/src/scss/inc/_colors.scss +0 -88
- package/src/scss/inc/_feedback.scss +0 -150
- package/src/scss/inc/_flex-grid.scss +0 -15
- package/src/scss/inc/_fonts.scss +0 -4
- package/src/scss/inc/_forms.scss +0 -827
- package/src/scss/inc/_functions.scss +0 -283
- package/src/scss/inc/_grid.scss +0 -66
- package/src/scss/inc/_jquery.nouislider.scss +0 -254
- package/src/scss/inc/_normalize.scss +0 -528
- package/src/scss/inc/_report.scss +0 -68
- package/src/scss/inc/_secondary-properties.scss +0 -89
- package/src/scss/inc/_select2.scss +0 -634
- package/src/scss/inc/_toolbars.scss +0 -155
- package/src/scss/inc/_tooltip.scss +0 -312
- package/src/scss/inc/_variables.scss +0 -21
- package/src/scss/inc/base/_highlight.scss +0 -5
- package/src/scss/inc/base/_list-style.scss +0 -59
- package/src/scss/inc/base/_svg.scss +0 -3
- package/src/scss/inc/base/_table.scss +0 -63
- package/src/scss/inc/fonts/_source-sans-pro.scss +0 -29
- package/src/scss/inc/fonts/_tao-icon-classes.scss +0 -226
- package/src/scss/inc/fonts/_tao-icon-def.scss +0 -12
- package/src/scss/inc/fonts/_tao-icon-vars.scss +0 -240
package/dist/modal.js
CHANGED
|
@@ -64,7 +64,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
64
64
|
* @returns {jQueryElement} for chaining
|
|
65
65
|
* @fires modal#create.modal
|
|
66
66
|
*/
|
|
67
|
-
init: function (options) {
|
|
67
|
+
init: function init(options) {
|
|
68
68
|
//extend the options using defaults
|
|
69
69
|
options = $.extend(true, {}, defaults, options); // default animation duration
|
|
70
70
|
|
|
@@ -100,14 +100,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
100
100
|
|
|
101
101
|
|
|
102
102
|
if ($('.' + options.modalCloseClass, $modal).length === 0 && !options.disableClosing) {
|
|
103
|
-
$(
|
|
104
|
-
id="modal-close-btn"
|
|
105
|
-
class="${options.modalCloseClass}"
|
|
106
|
-
aria-label="${__('Close dialog')}"
|
|
107
|
-
data-control="close"
|
|
108
|
-
>
|
|
109
|
-
<span class="icon-close"></span>
|
|
110
|
-
</button>`).appendTo($modal);
|
|
103
|
+
$("<button\n id=\"modal-close-btn\"\n class=\"".concat(options.modalCloseClass, "\"\n aria-label=\"").concat(__('Close dialog'), "\"\n data-control=\"close\"\n >\n <span class=\"icon-close\"></span>\n </button>")).appendTo($modal);
|
|
111
104
|
}
|
|
112
105
|
|
|
113
106
|
if (!options.startClosed) {
|
|
@@ -128,7 +121,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
128
121
|
* @param {jQuery object} $element
|
|
129
122
|
* @fires modal#destroyed.modal
|
|
130
123
|
*/
|
|
131
|
-
_destroy: function ($element) {
|
|
124
|
+
_destroy: function _destroy($element) {
|
|
132
125
|
return $element.each(function () {
|
|
133
126
|
var $modal = $(this);
|
|
134
127
|
var options = $modal.data(dataNs);
|
|
@@ -149,7 +142,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
149
142
|
* @param {jQuery object} $element
|
|
150
143
|
* @returns {undefined}
|
|
151
144
|
*/
|
|
152
|
-
_bindEvents: function ($element) {
|
|
145
|
+
_bindEvents: function _bindEvents($element) {
|
|
153
146
|
var options = $element.data(dataNs);
|
|
154
147
|
|
|
155
148
|
if (options) {
|
|
@@ -188,7 +181,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
188
181
|
* @param {jQuery object} $element
|
|
189
182
|
* @returns {undefined}
|
|
190
183
|
*/
|
|
191
|
-
_unBindEvents: function ($element) {
|
|
184
|
+
_unBindEvents: function _unBindEvents($element) {
|
|
192
185
|
var options = $element.data(dataNs);
|
|
193
186
|
|
|
194
187
|
if (options && options.width === 'responsive') {
|
|
@@ -210,7 +203,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
210
203
|
* @returns {jQuery object}
|
|
211
204
|
* @fires modal#opened.modal
|
|
212
205
|
*/
|
|
213
|
-
_open: function ($element) {
|
|
206
|
+
_open: function _open($element) {
|
|
214
207
|
var modalHeight = $element.outerHeight(),
|
|
215
208
|
windowHeight = $(window).height(),
|
|
216
209
|
options = $element.data(dataNs),
|
|
@@ -221,7 +214,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
221
214
|
|
|
222
215
|
if (typeof options !== 'undefined') {
|
|
223
216
|
// Called when the modal is fully opened
|
|
224
|
-
onOpen = function () {
|
|
217
|
+
onOpen = function onOpen() {
|
|
225
218
|
$element.addClass('opened');
|
|
226
219
|
|
|
227
220
|
modal._bindEvents($element);
|
|
@@ -282,7 +275,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
282
275
|
* @param {jQuery object} $element
|
|
283
276
|
* @fires modal#closed.modal
|
|
284
277
|
*/
|
|
285
|
-
_close: function ($element) {
|
|
278
|
+
_close: function _close($element) {
|
|
286
279
|
closeModal($element, 'api');
|
|
287
280
|
},
|
|
288
281
|
|
|
@@ -291,7 +284,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
291
284
|
* @param {jQuery object} $element
|
|
292
285
|
* @returns {undefined}
|
|
293
286
|
*/
|
|
294
|
-
_resize: function ($element) {
|
|
287
|
+
_resize: function _resize($element) {
|
|
295
288
|
var options = $element.data(dataNs);
|
|
296
289
|
var windowWidth = parseInt($(window).width(), 10);
|
|
297
290
|
var css = {}; //calculate the final width and height
|
|
@@ -318,7 +311,7 @@ define(['jquery', 'i18n', 'core/pluginifier', 'core/dataattrhandler'], function
|
|
|
318
311
|
var options = $element.data(dataNs);
|
|
319
312
|
var $overlay = $('#' + options.modalOverlay);
|
|
320
313
|
|
|
321
|
-
var onClose = function () {
|
|
314
|
+
var onClose = function onClose() {
|
|
322
315
|
$element.removeClass('opened');
|
|
323
316
|
$element.css('display', 'none');
|
|
324
317
|
/**
|
package/dist/pageSizeSelector.js
CHANGED
|
@@ -1,256 +1,247 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'i18n', 'ui/component', 'handlebars', 'lib/dompurify/purify', 'select2'], function ($$1, _, __, component, Handlebars, DOMPurify, select2) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
6
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
7
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
8
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
9
|
+
|
|
10
|
+
function _typeof(obj) {
|
|
11
|
+
"@babel/helpers - typeof";
|
|
12
|
+
|
|
13
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
14
|
+
return typeof obj;
|
|
15
|
+
} : function (obj) {
|
|
16
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
17
|
+
}, _typeof(obj);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function Helpers0 (hb) {
|
|
21
|
+
//register a i18n helper
|
|
22
|
+
hb.registerHelper('__', function (key) {
|
|
23
|
+
return __(key);
|
|
24
|
+
});
|
|
10
25
|
/**
|
|
11
|
-
*
|
|
12
|
-
* modify it under the terms of the GNU General Public License
|
|
13
|
-
* as published by the Free Software Foundation; under version 2
|
|
14
|
-
* of the License (non-upgradable).
|
|
15
|
-
*
|
|
16
|
-
* This program is distributed in the hope that it will be useful,
|
|
17
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
18
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
19
|
-
* GNU General Public License for more details.
|
|
20
|
-
*
|
|
21
|
-
* You should have received a copy of the GNU General Public License
|
|
22
|
-
* along with this program; if not, write to the Free Software
|
|
23
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
24
|
-
*
|
|
25
|
-
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
26
|
-
*
|
|
26
|
+
* Register dompurify helper
|
|
27
27
|
*
|
|
28
|
+
* https://github.com/cure53/DOMPurify
|
|
29
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
30
|
+
* to make output safe for template systems
|
|
28
31
|
*/
|
|
29
|
-
function Helpers0 (hb) {
|
|
30
|
-
//register a i18n helper
|
|
31
|
-
hb.registerHelper('__', function (key) {
|
|
32
|
-
return __(key);
|
|
33
|
-
});
|
|
34
|
-
/**
|
|
35
|
-
* Register dompurify helper
|
|
36
|
-
*
|
|
37
|
-
* https://github.com/cure53/DOMPurify
|
|
38
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
39
|
-
* to make output safe for template systems
|
|
40
|
-
*/
|
|
41
32
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
55
|
-
var fragments = [];
|
|
56
|
-
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
57
|
-
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
58
|
-
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
33
|
+
hb.registerHelper('dompurify', function (context) {
|
|
34
|
+
return DOMPurify.sanitize(context);
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* Register join helper
|
|
38
|
+
*
|
|
39
|
+
* Example :
|
|
40
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
41
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
42
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
43
|
+
*/
|
|
59
44
|
|
|
60
|
-
|
|
61
|
-
|
|
45
|
+
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
46
|
+
var fragments = [];
|
|
47
|
+
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
48
|
+
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
49
|
+
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
62
50
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
value = value ? 'true' : 'false';
|
|
66
|
-
} else if (typeof value === 'object') {
|
|
67
|
-
value = _.values(value).join(' ');
|
|
68
|
-
}
|
|
69
|
-
} else {
|
|
70
|
-
value = '';
|
|
71
|
-
}
|
|
51
|
+
_.forIn(arr, function (value, key) {
|
|
52
|
+
var fragment = '';
|
|
72
53
|
|
|
73
|
-
|
|
74
|
-
|
|
54
|
+
if (value !== null || value !== undefined) {
|
|
55
|
+
if (typeof value === 'boolean') {
|
|
56
|
+
value = value ? 'true' : 'false';
|
|
57
|
+
} else if (_typeof(value) === 'object') {
|
|
58
|
+
value = _.values(value).join(' ');
|
|
75
59
|
}
|
|
76
|
-
|
|
77
|
-
fragment += wrapper + value + wrapper;
|
|
78
|
-
fragments.push(fragment);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
return fragments.join(fragmentGlue);
|
|
82
|
-
}); //register a classic "for loop" helper
|
|
83
|
-
//it also adds a local variable "i" as the index in each iteration loop
|
|
84
|
-
|
|
85
|
-
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
86
|
-
var ret = '';
|
|
87
|
-
startIndex = parseInt(startIndex);
|
|
88
|
-
stopIndex = parseInt(stopIndex);
|
|
89
|
-
increment = parseInt(increment);
|
|
90
|
-
|
|
91
|
-
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
92
|
-
ret += options.fn(_.extend({}, this, {
|
|
93
|
-
i: i
|
|
94
|
-
}));
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
return ret;
|
|
98
|
-
});
|
|
99
|
-
hb.registerHelper('equal', function (var1, var2, options) {
|
|
100
|
-
if (var1 == var2) {
|
|
101
|
-
return options.fn(this);
|
|
102
60
|
} else {
|
|
103
|
-
|
|
61
|
+
value = '';
|
|
104
62
|
}
|
|
105
|
-
}); // register a "get property" helper
|
|
106
|
-
// it gets the named property from the provided context
|
|
107
|
-
|
|
108
|
-
hb.registerHelper('property', function (name, context) {
|
|
109
|
-
return context[name] || '';
|
|
110
|
-
}); // register an 'includes' helper
|
|
111
|
-
// it checks if value is in array
|
|
112
63
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
return options.fn(this);
|
|
64
|
+
if (keyValueGlue !== undefined) {
|
|
65
|
+
fragment += key + keyValueGlue;
|
|
116
66
|
}
|
|
67
|
+
|
|
68
|
+
fragment += wrapper + value + wrapper;
|
|
69
|
+
fragments.push(fragment);
|
|
117
70
|
});
|
|
118
|
-
}
|
|
119
71
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}
|
|
124
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
125
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
126
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
127
|
-
var buffer = "", stack1, self=this, functionType="function", escapeExpression=this.escapeExpression;
|
|
72
|
+
return fragments.join(fragmentGlue);
|
|
73
|
+
}); //register a classic "for loop" helper
|
|
74
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
128
75
|
|
|
129
|
-
function
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
+ "\">\n ";
|
|
140
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
141
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
142
|
-
buffer += escapeExpression(stack1)
|
|
143
|
-
+ "\n </option>\n ";
|
|
144
|
-
return buffer;
|
|
145
|
-
}
|
|
146
|
-
function program2(depth0,data) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
return "selected";
|
|
76
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
77
|
+
var ret = '';
|
|
78
|
+
startIndex = parseInt(startIndex);
|
|
79
|
+
stopIndex = parseInt(stopIndex);
|
|
80
|
+
increment = parseInt(increment);
|
|
81
|
+
|
|
82
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
83
|
+
ret += options.fn(_.extend({}, this, {
|
|
84
|
+
i: i
|
|
85
|
+
}));
|
|
150
86
|
}
|
|
151
87
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
88
|
+
return ret;
|
|
89
|
+
});
|
|
90
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
91
|
+
if (var1 == var2) {
|
|
92
|
+
return options.fn(this);
|
|
93
|
+
} else {
|
|
94
|
+
return options.inverse(this);
|
|
95
|
+
}
|
|
96
|
+
}); // register a "get property" helper
|
|
97
|
+
// it gets the named property from the provided context
|
|
162
98
|
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
* of the License (non-upgradable).
|
|
168
|
-
*
|
|
169
|
-
* This program is distributed in the hope that it will be useful,
|
|
170
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
171
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
172
|
-
* GNU General Public License for more details.
|
|
173
|
-
*
|
|
174
|
-
* You should have received a copy of the GNU General Public License
|
|
175
|
-
* along with this program; if not, write to the Free Software
|
|
176
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
177
|
-
*
|
|
178
|
-
* Copyright (c) 2019 (original work) Open Assessment Technologies SA ;
|
|
179
|
-
*/
|
|
180
|
-
/**
|
|
181
|
-
* Default config values
|
|
182
|
-
* @type {Object}
|
|
183
|
-
*/
|
|
99
|
+
hb.registerHelper('property', function (name, context) {
|
|
100
|
+
return context[name] || '';
|
|
101
|
+
}); // register an 'includes' helper
|
|
102
|
+
// it checks if value is in array
|
|
184
103
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
} else {
|
|
224
|
-
option.selected = false;
|
|
225
|
-
}
|
|
226
|
-
}); // if there is no option with provided default size use first option as default
|
|
104
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
105
|
+
if (_.contains(haystack, needle)) {
|
|
106
|
+
return options.fn(this);
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
if (!Helpers0.__initialized) {
|
|
112
|
+
Helpers0(Handlebars);
|
|
113
|
+
Helpers0.__initialized = true;
|
|
114
|
+
}
|
|
115
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
116
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
117
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
118
|
+
var buffer = "", stack1, self=this, functionType="function", escapeExpression=this.escapeExpression;
|
|
119
|
+
|
|
120
|
+
function program1(depth0,data) {
|
|
121
|
+
|
|
122
|
+
var buffer = "", stack1, helper;
|
|
123
|
+
buffer += "\n <option ";
|
|
124
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.selected), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
|
|
125
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
126
|
+
buffer += " value=\"";
|
|
127
|
+
if (helper = helpers.value) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
128
|
+
else { helper = (depth0 && depth0.value); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
129
|
+
buffer += escapeExpression(stack1)
|
|
130
|
+
+ "\">\n ";
|
|
131
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
132
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
133
|
+
buffer += escapeExpression(stack1)
|
|
134
|
+
+ "\n </option>\n ";
|
|
135
|
+
return buffer;
|
|
136
|
+
}
|
|
137
|
+
function program2(depth0,data) {
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
return "selected";
|
|
141
|
+
}
|
|
227
142
|
|
|
228
|
-
|
|
229
|
-
|
|
143
|
+
buffer += "<div class=\"page-size-selector-container\">\n <select class=\"select2\">\n ";
|
|
144
|
+
stack1 = helpers.each.call(depth0, (depth0 && depth0.options), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
145
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
146
|
+
buffer += "\n </select>\n</div>\n";
|
|
147
|
+
return buffer;
|
|
148
|
+
});
|
|
149
|
+
function pageSizeSelectorTpl(data, options, asString) {
|
|
150
|
+
var html = Template(data, options);
|
|
151
|
+
return (asString || true) ? html : $(html);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
/**
|
|
155
|
+
* This program is free software; you can redistribute it and/or
|
|
156
|
+
* modify it under the terms of the GNU General Public License
|
|
157
|
+
* as published by the Free Software Foundation; under version 2
|
|
158
|
+
* of the License (non-upgradable).
|
|
159
|
+
*
|
|
160
|
+
* This program is distributed in the hope that it will be useful,
|
|
161
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
162
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
163
|
+
* GNU General Public License for more details.
|
|
164
|
+
*
|
|
165
|
+
* You should have received a copy of the GNU General Public License
|
|
166
|
+
* along with this program; if not, write to the Free Software
|
|
167
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
168
|
+
*
|
|
169
|
+
* Copyright (c) 2019 (original work) Open Assessment Technologies SA ;
|
|
170
|
+
*/
|
|
171
|
+
/**
|
|
172
|
+
* Default config values
|
|
173
|
+
* @type {Object}
|
|
174
|
+
*/
|
|
175
|
+
|
|
176
|
+
var defaults = {
|
|
177
|
+
defaultSize: 25,
|
|
178
|
+
options: [{
|
|
179
|
+
label: '25 ' + __('items per page'),
|
|
180
|
+
value: 25
|
|
181
|
+
}, {
|
|
182
|
+
label: '50 ' + __('items per page'),
|
|
183
|
+
value: 50
|
|
184
|
+
}, {
|
|
185
|
+
label: '75 ' + __('items per page'),
|
|
186
|
+
value: 75
|
|
187
|
+
}, {
|
|
188
|
+
label: '100 ' + __('items per page'),
|
|
189
|
+
value: 100
|
|
190
|
+
}, {
|
|
191
|
+
label: '200 ' + __('items per page'),
|
|
192
|
+
value: 200
|
|
193
|
+
}]
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Builds a select component with page size options
|
|
197
|
+
*
|
|
198
|
+
* @param {Object} config
|
|
199
|
+
* @param {Number} [config.defaultSize] - selected page size
|
|
200
|
+
* @param {Object} [config.items] - available options
|
|
201
|
+
* @returns {pageSizeSelector}
|
|
202
|
+
*/
|
|
203
|
+
|
|
204
|
+
var pageSizeSelectorFactory = function pageSizeSelectorFactory(config) {
|
|
205
|
+
var pageSizeSelectorSpecs = {
|
|
206
|
+
setSelectedOption: function setSelectedOption() {
|
|
207
|
+
var options = this.config.options;
|
|
208
|
+
var defaultSize = this.config.defaultSize;
|
|
209
|
+
var selectedOption;
|
|
210
|
+
options.forEach(function (option) {
|
|
211
|
+
if (option.value == defaultSize) {
|
|
212
|
+
selectedOption = option;
|
|
213
|
+
option.selected = true;
|
|
214
|
+
} else {
|
|
215
|
+
option.selected = false;
|
|
230
216
|
}
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
return component(pageSizeSelectorSpecs, defaults).setTemplate(pageSizeSelectorTpl).on('init', function () {
|
|
234
|
-
this.setSelectedOption();
|
|
235
|
-
}).on('render', function () {
|
|
236
|
-
var self = this;
|
|
237
|
-
var $component = this.getElement();
|
|
238
|
-
$$1('.select2', $component).select2({
|
|
239
|
-
dropdownCssClass: 'page-size-dropdown',
|
|
240
|
-
minimumResultsForSearch: Infinity
|
|
241
|
-
}).on('change', function (e) {
|
|
242
|
-
self.trigger('change', e.val);
|
|
243
|
-
});
|
|
244
|
-
}).after('render', function () {
|
|
245
|
-
var $component = this.getElement(); // Notify about the default value after render
|
|
217
|
+
}); // if there is no option with provided default size use first option as default
|
|
246
218
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
}).init(config);
|
|
219
|
+
if (!selectedOption) {
|
|
220
|
+
options[0].selected = true;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
252
223
|
};
|
|
224
|
+
return component(pageSizeSelectorSpecs, defaults).setTemplate(pageSizeSelectorTpl).on('init', function () {
|
|
225
|
+
this.setSelectedOption();
|
|
226
|
+
}).on('render', function () {
|
|
227
|
+
var self = this;
|
|
228
|
+
var $component = this.getElement();
|
|
229
|
+
$$1('.select2', $component).select2({
|
|
230
|
+
dropdownCssClass: 'page-size-dropdown',
|
|
231
|
+
minimumResultsForSearch: Infinity
|
|
232
|
+
}).on('change', function (e) {
|
|
233
|
+
self.trigger('change', e.val);
|
|
234
|
+
});
|
|
235
|
+
}).after('render', function () {
|
|
236
|
+
var $component = this.getElement(); // Notify about the default value after render
|
|
237
|
+
|
|
238
|
+
this.trigger('change', $$1('select', $component).val());
|
|
239
|
+
}).on('destroy', function () {
|
|
240
|
+
var $component = this.getElement();
|
|
241
|
+
$$1('.select2', $component).select2('destroy');
|
|
242
|
+
}).init(config);
|
|
243
|
+
};
|
|
253
244
|
|
|
254
|
-
|
|
245
|
+
return pageSizeSelectorFactory;
|
|
255
246
|
|
|
256
247
|
});
|