@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
|
@@ -1,284 +1,277 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'ui/component', 'ui/mediaEditor/plugins/mediaDimension/mediaDimensionComponent', 'ui/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent', 'handlebars', 'i18n', 'lib/dompurify/purify'], function ($$1, _, component, mediaDimensionComponent, mediaAlignmentComponent, Handlebars, __, DOMPurify) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
6
|
+
mediaDimensionComponent = mediaDimensionComponent && Object.prototype.hasOwnProperty.call(mediaDimensionComponent, 'default') ? mediaDimensionComponent['default'] : mediaDimensionComponent;
|
|
7
|
+
mediaAlignmentComponent = mediaAlignmentComponent && Object.prototype.hasOwnProperty.call(mediaAlignmentComponent, 'default') ? mediaAlignmentComponent['default'] : mediaAlignmentComponent;
|
|
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
|
+
function _typeof(obj) {
|
|
13
|
+
"@babel/helpers - typeof";
|
|
14
|
+
|
|
15
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
16
|
+
return typeof obj;
|
|
17
|
+
} : function (obj) {
|
|
18
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
19
|
+
}, _typeof(obj);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function Helpers0 (hb) {
|
|
23
|
+
//register a i18n helper
|
|
24
|
+
hb.registerHelper('__', function (key) {
|
|
25
|
+
return __(key);
|
|
26
|
+
});
|
|
12
27
|
/**
|
|
13
|
-
*
|
|
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
|
-
*
|
|
28
|
+
* Register dompurify helper
|
|
29
29
|
*
|
|
30
|
+
* https://github.com/cure53/DOMPurify
|
|
31
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
32
|
+
* to make output safe for template systems
|
|
30
33
|
*/
|
|
31
|
-
function Helpers0 (hb) {
|
|
32
|
-
//register a i18n helper
|
|
33
|
-
hb.registerHelper('__', function (key) {
|
|
34
|
-
return __(key);
|
|
35
|
-
});
|
|
36
|
-
/**
|
|
37
|
-
* Register dompurify helper
|
|
38
|
-
*
|
|
39
|
-
* https://github.com/cure53/DOMPurify
|
|
40
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
41
|
-
* to make output safe for template systems
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
|
-
hb.registerHelper('dompurify', function (context) {
|
|
45
|
-
return DOMPurify.sanitize(context);
|
|
46
|
-
});
|
|
47
|
-
/**
|
|
48
|
-
* Register join helper
|
|
49
|
-
*
|
|
50
|
-
* Example :
|
|
51
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
52
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
53
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
54
|
-
*/
|
|
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
|
-
|
|
62
|
-
_.forIn(arr, function (value, key) {
|
|
63
|
-
var fragment = '';
|
|
64
|
-
|
|
65
|
-
if (value !== null || value !== undefined) {
|
|
66
|
-
if (typeof value === 'boolean') {
|
|
67
|
-
value = value ? 'true' : 'false';
|
|
68
|
-
} else if (typeof value === 'object') {
|
|
69
|
-
value = _.values(value).join(' ');
|
|
70
|
-
}
|
|
71
|
-
} else {
|
|
72
|
-
value = '';
|
|
73
|
-
}
|
|
74
34
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
35
|
+
hb.registerHelper('dompurify', function (context) {
|
|
36
|
+
return DOMPurify.sanitize(context);
|
|
37
|
+
});
|
|
38
|
+
/**
|
|
39
|
+
* Register join helper
|
|
40
|
+
*
|
|
41
|
+
* Example :
|
|
42
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
43
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
44
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
45
|
+
*/
|
|
78
46
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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 : '"';
|
|
82
52
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
//it also adds a local variable "i" as the index in each iteration loop
|
|
53
|
+
_.forIn(arr, function (value, key) {
|
|
54
|
+
var fragment = '';
|
|
86
55
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
56
|
+
if (value !== null || value !== undefined) {
|
|
57
|
+
if (typeof value === 'boolean') {
|
|
58
|
+
value = value ? 'true' : 'false';
|
|
59
|
+
} else if (_typeof(value) === 'object') {
|
|
60
|
+
value = _.values(value).join(' ');
|
|
61
|
+
}
|
|
62
|
+
} else {
|
|
63
|
+
value = '';
|
|
64
|
+
}
|
|
92
65
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
i: i
|
|
96
|
-
}));
|
|
66
|
+
if (keyValueGlue !== undefined) {
|
|
67
|
+
fragment += key + keyValueGlue;
|
|
97
68
|
}
|
|
98
69
|
|
|
99
|
-
|
|
70
|
+
fragment += wrapper + value + wrapper;
|
|
71
|
+
fragments.push(fragment);
|
|
100
72
|
});
|
|
101
|
-
hb.registerHelper('equal', function (var1, var2, options) {
|
|
102
|
-
if (var1 == var2) {
|
|
103
|
-
return options.fn(this);
|
|
104
|
-
} else {
|
|
105
|
-
return options.inverse(this);
|
|
106
|
-
}
|
|
107
|
-
}); // register a "get property" helper
|
|
108
|
-
// it gets the named property from the provided context
|
|
109
73
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
// it checks if value is in array
|
|
74
|
+
return fragments.join(fragmentGlue);
|
|
75
|
+
}); //register a classic "for loop" helper
|
|
76
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
114
77
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
78
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
79
|
+
var ret = '';
|
|
80
|
+
startIndex = parseInt(startIndex);
|
|
81
|
+
stopIndex = parseInt(stopIndex);
|
|
82
|
+
increment = parseInt(increment);
|
|
121
83
|
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
127
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
128
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
129
|
-
var buffer = "", stack1, self=this;
|
|
130
|
-
|
|
131
|
-
function program1(depth0,data) {
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
return "<div class=\"media-dimension\"></div>";
|
|
84
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
85
|
+
ret += options.fn(_.extend({}, this, {
|
|
86
|
+
i: i
|
|
87
|
+
}));
|
|
135
88
|
}
|
|
136
89
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
90
|
+
return ret;
|
|
91
|
+
});
|
|
92
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
93
|
+
if (var1 == var2) {
|
|
94
|
+
return options.fn(this);
|
|
95
|
+
} else {
|
|
96
|
+
return options.inverse(this);
|
|
141
97
|
}
|
|
98
|
+
}); // register a "get property" helper
|
|
99
|
+
// it gets the named property from the provided context
|
|
142
100
|
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
101
|
+
hb.registerHelper('property', function (name, context) {
|
|
102
|
+
return context[name] || '';
|
|
103
|
+
}); // register an 'includes' helper
|
|
104
|
+
// it checks if value is in array
|
|
105
|
+
|
|
106
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
107
|
+
if (_.contains(haystack, needle)) {
|
|
108
|
+
return options.fn(this);
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
if (!Helpers0.__initialized) {
|
|
114
|
+
Helpers0(Handlebars);
|
|
115
|
+
Helpers0.__initialized = true;
|
|
116
|
+
}
|
|
117
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
118
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
119
|
+
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
120
|
+
var buffer = "", stack1, self=this;
|
|
121
|
+
|
|
122
|
+
function program1(depth0,data) {
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
return "<div class=\"media-dimension\"></div>";
|
|
155
126
|
}
|
|
156
127
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
*
|
|
163
|
-
* This program is distributed in the hope that it will be useful,
|
|
164
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
165
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
166
|
-
* GNU General Public License for more details.
|
|
167
|
-
*
|
|
168
|
-
* You should have received a copy of the GNU General Public License
|
|
169
|
-
* along with this program; if not, write to the Free Software
|
|
170
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
171
|
-
*
|
|
172
|
-
* Copyright (c) 2021 (original work) Open Assessment Technologies SA;
|
|
173
|
-
*
|
|
174
|
-
* @author Oleksander Zagovorychev <zagovorichev@gmail.com>
|
|
175
|
-
*/
|
|
176
|
-
/**
|
|
177
|
-
* @typedef {Object} mediaObject
|
|
178
|
-
* @property $node
|
|
179
|
-
* @property $container
|
|
180
|
-
* @property type
|
|
181
|
-
* @property src
|
|
182
|
-
* @property width
|
|
183
|
-
* @property height
|
|
184
|
-
*/
|
|
128
|
+
function program3(depth0,data) {
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
return "<div class=\"media-align\"></div>";
|
|
132
|
+
}
|
|
185
133
|
|
|
134
|
+
buffer += "<div class=\"media-editor\">\n ";
|
|
135
|
+
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.mediaDimension)),stack1 == null || stack1 === false ? stack1 : stack1.active), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
136
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
137
|
+
buffer += "\n ";
|
|
138
|
+
stack1 = helpers['if'].call(depth0, ((stack1 = (depth0 && depth0.mediaAlignment)),stack1 == null || stack1 === false ? stack1 : stack1.active), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
139
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
140
|
+
buffer += "\n</div>\n";
|
|
141
|
+
return buffer;
|
|
142
|
+
});
|
|
143
|
+
function tpl(data, options, asString) {
|
|
144
|
+
var html = Template(data, options);
|
|
145
|
+
return (asString || true) ? html : $(html);
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* This program is free software; you can redistribute it and/or
|
|
150
|
+
* modify it under the terms of the GNU General Public License
|
|
151
|
+
* as published by the Free Software Foundation; under version 2
|
|
152
|
+
* of the License (non-upgradable).
|
|
153
|
+
*
|
|
154
|
+
* This program is distributed in the hope that it will be useful,
|
|
155
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
156
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
157
|
+
* GNU General Public License for more details.
|
|
158
|
+
*
|
|
159
|
+
* You should have received a copy of the GNU General Public License
|
|
160
|
+
* along with this program; if not, write to the Free Software
|
|
161
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
162
|
+
*
|
|
163
|
+
* Copyright (c) 2021 (original work) Open Assessment Technologies SA;
|
|
164
|
+
*
|
|
165
|
+
* @author Oleksander Zagovorychev <zagovorichev@gmail.com>
|
|
166
|
+
*/
|
|
167
|
+
/**
|
|
168
|
+
* @typedef {Object} mediaObject
|
|
169
|
+
* @property $node
|
|
170
|
+
* @property $container
|
|
171
|
+
* @property type
|
|
172
|
+
* @property src
|
|
173
|
+
* @property width
|
|
174
|
+
* @property height
|
|
175
|
+
*/
|
|
176
|
+
|
|
177
|
+
/**
|
|
178
|
+
* @typedef {Object} mediaEditorConfig
|
|
179
|
+
* @property mediaDimension {{active: boolean}}
|
|
180
|
+
* @property mediaAlignment {{active: boolean}}
|
|
181
|
+
*/
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* target - jQuery element with media $()
|
|
185
|
+
* container - container to which an target is attached
|
|
186
|
+
*
|
|
187
|
+
* @type mediaEditorConfig
|
|
188
|
+
* @private
|
|
189
|
+
*/
|
|
190
|
+
|
|
191
|
+
var defaultConfig = {
|
|
192
|
+
mediaDimension: {
|
|
193
|
+
active: false
|
|
194
|
+
},
|
|
195
|
+
mediaAlignment: {
|
|
196
|
+
active: false
|
|
197
|
+
}
|
|
198
|
+
};
|
|
199
|
+
/**
|
|
200
|
+
* Creates media editor
|
|
201
|
+
*
|
|
202
|
+
* @param {Object} $container - jQuery pointer
|
|
203
|
+
* @param {mediaObject} media
|
|
204
|
+
* @param {mediaEditorConfig} config
|
|
205
|
+
* @returns {component|*}
|
|
206
|
+
*/
|
|
207
|
+
|
|
208
|
+
function mediaEditorFactory($container, media, config) {
|
|
186
209
|
/**
|
|
187
|
-
*
|
|
188
|
-
* @
|
|
189
|
-
* @property mediaAlignment {{active: boolean}}
|
|
210
|
+
* Active Plugins
|
|
211
|
+
* @type {Array}
|
|
190
212
|
*/
|
|
191
|
-
|
|
213
|
+
var plugins = [];
|
|
192
214
|
/**
|
|
193
|
-
*
|
|
194
|
-
* container - container to which an target is attached
|
|
195
|
-
*
|
|
196
|
-
* @type mediaEditorConfig
|
|
197
|
-
* @private
|
|
215
|
+
* Current component
|
|
198
216
|
*/
|
|
199
217
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
mediaAlignment: {
|
|
205
|
-
active: false
|
|
218
|
+
var mediaEditorComponent = component({}, defaultConfig);
|
|
219
|
+
mediaEditorComponent.setTemplate(tpl).on('init', function () {
|
|
220
|
+
if (!media || !media.$node || !media.$node.length) {
|
|
221
|
+
throw new Error('mediaEditorComponent requires media.$node');
|
|
206
222
|
}
|
|
207
|
-
};
|
|
208
|
-
/**
|
|
209
|
-
* Creates media editor
|
|
210
|
-
*
|
|
211
|
-
* @param {Object} $container - jQuery pointer
|
|
212
|
-
* @param {mediaObject} media
|
|
213
|
-
* @param {mediaEditorConfig} config
|
|
214
|
-
* @returns {component|*}
|
|
215
|
-
*/
|
|
216
223
|
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
* @type {Array}
|
|
221
|
-
*/
|
|
222
|
-
const plugins = [];
|
|
223
|
-
/**
|
|
224
|
-
* Current component
|
|
225
|
-
*/
|
|
226
|
-
|
|
227
|
-
const mediaEditorComponent = component({}, defaultConfig);
|
|
228
|
-
mediaEditorComponent.setTemplate(tpl).on('init', function () {
|
|
229
|
-
if (!media || !media.$node || !media.$node.length) {
|
|
230
|
-
throw new Error('mediaEditorComponent requires media.$node');
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
if (!media || !media.$container || !media.$container.length) {
|
|
234
|
-
throw new Error('mediaEditorComponent requires media.$container');
|
|
235
|
-
}
|
|
224
|
+
if (!media || !media.$container || !media.$container.length) {
|
|
225
|
+
throw new Error('mediaEditorComponent requires media.$container');
|
|
226
|
+
}
|
|
236
227
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
});
|
|
262
|
-
plugins.push(dimensionPlugin);
|
|
263
|
-
}
|
|
228
|
+
this.render($container);
|
|
229
|
+
}).on('render', function () {
|
|
230
|
+
var _this = this;
|
|
231
|
+
|
|
232
|
+
var $dimensionTools = $$1('.media-dimension', this.getTemplate());
|
|
233
|
+
var $alignmentTools = $$1('.media-align', this.getTemplate());
|
|
234
|
+
var dimensionPlugin;
|
|
235
|
+
var alignmentPlugin;
|
|
236
|
+
|
|
237
|
+
if (this.getConfig().mediaDimension.active) {
|
|
238
|
+
dimensionPlugin = mediaDimensionComponent($dimensionTools, media, {
|
|
239
|
+
responsive: media.responsive,
|
|
240
|
+
showResponsiveToggle: this.getConfig().mediaDimension.showResponsiveToggle
|
|
241
|
+
}).on('change', function (conf) {
|
|
242
|
+
media.responsive = conf.responsive;
|
|
243
|
+
|
|
244
|
+
if (conf.responsive) {
|
|
245
|
+
// percent
|
|
246
|
+
media.width = conf.sizeProps['%'].current.width;
|
|
247
|
+
media.height = null;
|
|
248
|
+
} else {
|
|
249
|
+
media.width = conf.sizeProps.px.current.width;
|
|
250
|
+
media.height = conf.sizeProps.px.current.height;
|
|
251
|
+
}
|
|
264
252
|
|
|
265
|
-
|
|
266
|
-
alignmentPlugin = mediaAlignmentComponent($alignmentTools, media).spread(this, 'change');
|
|
267
|
-
plugins.push(alignmentPlugin);
|
|
268
|
-
}
|
|
269
|
-
}).on('destroy', function () {
|
|
270
|
-
_.forEach(plugins, function (plugin) {
|
|
271
|
-
plugin.destroy();
|
|
253
|
+
_this.trigger('change', media);
|
|
272
254
|
});
|
|
273
|
-
|
|
255
|
+
plugins.push(dimensionPlugin);
|
|
256
|
+
}
|
|
274
257
|
|
|
275
|
-
|
|
276
|
-
|
|
258
|
+
if (this.getConfig().mediaAlignment.active) {
|
|
259
|
+
alignmentPlugin = mediaAlignmentComponent($alignmentTools, media).spread(this, 'change');
|
|
260
|
+
plugins.push(alignmentPlugin);
|
|
261
|
+
}
|
|
262
|
+
}).on('destroy', function () {
|
|
263
|
+
_.forEach(plugins, function (plugin) {
|
|
264
|
+
plugin.destroy();
|
|
277
265
|
});
|
|
266
|
+
});
|
|
278
267
|
|
|
279
|
-
|
|
280
|
-
|
|
268
|
+
_.defer(function () {
|
|
269
|
+
mediaEditorComponent.init(config);
|
|
270
|
+
});
|
|
271
|
+
|
|
272
|
+
return mediaEditorComponent;
|
|
273
|
+
}
|
|
281
274
|
|
|
282
|
-
|
|
275
|
+
return mediaEditorFactory;
|
|
283
276
|
|
|
284
277
|
});
|
|
@@ -17,16 +17,16 @@ define(['exports'], function (exports) { 'use strict';
|
|
|
17
17
|
*
|
|
18
18
|
* Copyright (c) 2021-2022 (original work) Open Assessment Technologies SA;
|
|
19
19
|
*/
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
var FLOAT_LEFT_CLASS = 'wrap-left';
|
|
21
|
+
var FLOAT_RIGHT_CLASS = 'wrap-right';
|
|
22
|
+
var positionFloat = function positionFloat(widget, position) {
|
|
23
23
|
if (!position) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
widget.$container.removeClass(
|
|
28
|
-
widget.$original.removeClass(
|
|
29
|
-
|
|
27
|
+
widget.$container.removeClass("".concat(FLOAT_LEFT_CLASS, " ").concat(FLOAT_RIGHT_CLASS));
|
|
28
|
+
widget.$original.removeClass("".concat(FLOAT_LEFT_CLASS, " ").concat(FLOAT_RIGHT_CLASS));
|
|
29
|
+
var className;
|
|
30
30
|
|
|
31
31
|
switch (position) {
|
|
32
32
|
case 'right':
|
|
@@ -52,7 +52,7 @@ define(['exports'], function (exports) { 'use strict';
|
|
|
52
52
|
|
|
53
53
|
widget.$original.trigger('contentChange.qti-widget');
|
|
54
54
|
};
|
|
55
|
-
|
|
55
|
+
var initAlignment = function initAlignment(widget) {
|
|
56
56
|
if (widget.element.hasClass(FLOAT_LEFT_CLASS)) {
|
|
57
57
|
return positionFloat(widget, 'left');
|
|
58
58
|
}
|