@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,260 +1,254 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify/purify', 'css!ui/mediaEditor/plugins/mediaAlignment/style.css'], function ($$1, _, component, Handlebars, __, DOMPurify, style_css) { '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
|
+
component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
|
|
6
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
7
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
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
|
-
|
|
42
|
-
hb.registerHelper('dompurify', function (context) {
|
|
43
|
-
return DOMPurify.sanitize(context);
|
|
44
|
-
});
|
|
45
|
-
/**
|
|
46
|
-
* Register join helper
|
|
47
|
-
*
|
|
48
|
-
* Example :
|
|
49
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
50
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
51
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
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 : '"';
|
|
59
|
-
|
|
60
|
-
_.forIn(arr, function (value, key) {
|
|
61
|
-
var fragment = '';
|
|
62
|
-
|
|
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 = '';
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
if (keyValueGlue !== undefined) {
|
|
74
|
-
fragment += key + keyValueGlue;
|
|
75
|
-
}
|
|
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
|
-
} else {
|
|
103
|
-
return options.inverse(this);
|
|
104
|
-
}
|
|
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
|
-
|
|
113
|
-
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
114
|
-
if (_.contains(haystack, needle)) {
|
|
115
|
-
return options.fn(this);
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
if (!Helpers0.__initialized) {
|
|
121
|
-
Helpers0(Handlebars);
|
|
122
|
-
Helpers0.__initialized = true;
|
|
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 = "", helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
buffer += "<div class=\"media-alignment\">\n <fieldset>\n <legend class=\"media-sizer-panel-label\">"
|
|
131
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Position", options) : helperMissing.call(depth0, "__", "Position", options)))
|
|
132
|
-
+ "</legend>\n <label class=\"smaller-prompt\">\n <input type=\"radio\" name=\"wrap-inline\"/>\n <span class=\"icon-radio\"></span>\n <span class=\"icon-wrap-inline\"></span>\n "
|
|
133
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Inline", options) : helperMissing.call(depth0, "__", "Inline", options)))
|
|
134
|
-
+ "\n </label>\n <br>\n <label class=\"smaller-prompt\">\n <input type=\"radio\" name=\"wrap-left\"/>\n <span class=\"icon-radio\"></span>\n <span class=\"icon-wrap-left\"></span>\n "
|
|
135
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Wrap image left", options) : helperMissing.call(depth0, "__", "Wrap image left", options)))
|
|
136
|
-
+ "\n </label>\n <br>\n <label class=\"smaller-prompt\">\n <input type=\"radio\" name=\"wrap-right\"/>\n <span class=\"icon-radio\"></span>\n <span class=\"icon-wrap-right\"></span>\n "
|
|
137
|
-
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Wrap image right", options) : helperMissing.call(depth0, "__", "Wrap image right", options)))
|
|
138
|
-
+ "\n </label>\n </fieldset>\n</div>\n";
|
|
139
|
-
return buffer;
|
|
140
|
-
});
|
|
141
|
-
function tpl(data, options, asString) {
|
|
142
|
-
var html = Template(data, options);
|
|
143
|
-
return (asString || true) ? html : $(html);
|
|
144
|
-
}
|
|
145
32
|
|
|
33
|
+
hb.registerHelper('dompurify', function (context) {
|
|
34
|
+
return DOMPurify.sanitize(context);
|
|
35
|
+
});
|
|
146
36
|
/**
|
|
147
|
-
*
|
|
148
|
-
* modify it under the terms of the GNU General Public License
|
|
149
|
-
* as published by the Free Software Foundation; under version 2
|
|
150
|
-
* of the License (non-upgradable).
|
|
37
|
+
* Register join helper
|
|
151
38
|
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
156
|
-
*
|
|
157
|
-
* You should have received a copy of the GNU General Public License
|
|
158
|
-
* along with this program; if not, write to the Free Software
|
|
159
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
160
|
-
*
|
|
161
|
-
* Copyright (c) 2021-2022 (original work) Open Assessment Technologies SA;
|
|
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*
|
|
162
43
|
*/
|
|
163
|
-
const FLOAT_LEFT_CLASS = 'wrap-left';
|
|
164
|
-
const FLOAT_RIGHT_CLASS = 'wrap-right';
|
|
165
44
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
*
|
|
172
|
-
* This program is distributed in the hope that it will be useful,
|
|
173
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
174
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
175
|
-
* GNU General Public License for more details.
|
|
176
|
-
*
|
|
177
|
-
* You should have received a copy of the GNU General Public License
|
|
178
|
-
* along with this program; if not, write to the Free Software
|
|
179
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
180
|
-
*
|
|
181
|
-
* Copyright (c) 2021 (original work) Open Assessment Technologies SA;
|
|
182
|
-
*
|
|
183
|
-
* @author Juan Luis Gutierrez Dos Santos <juanluis.gutierrezdossantos@taotesting.com>
|
|
184
|
-
*/
|
|
185
|
-
/**
|
|
186
|
-
* Creates mediaAlignment component
|
|
187
|
-
* @param $container
|
|
188
|
-
* @param media
|
|
189
|
-
* @fires "changed" - on State changed
|
|
190
|
-
* return {component|*}
|
|
191
|
-
*/
|
|
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 : '"';
|
|
192
50
|
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
const mediaAlignmentComponent = component({
|
|
196
|
-
/**
|
|
197
|
-
* Apply configurations to the view
|
|
198
|
-
*/
|
|
199
|
-
update(conf) {
|
|
200
|
-
$template.find('input:checked').prop('checked', false);
|
|
201
|
-
|
|
202
|
-
switch (conf) {
|
|
203
|
-
case 'wrap-right':
|
|
204
|
-
conf = 'right';
|
|
205
|
-
$template.find('input[name="wrap-right"]').prop('checked', true);
|
|
206
|
-
break;
|
|
207
|
-
|
|
208
|
-
case 'wrap-left':
|
|
209
|
-
conf = 'left';
|
|
210
|
-
$template.find('input[name="wrap-left"]').prop('checked', true);
|
|
211
|
-
break;
|
|
212
|
-
|
|
213
|
-
default:
|
|
214
|
-
conf = 'default';
|
|
215
|
-
$template.find('input[name="wrap-inline"]').prop('checked', true);
|
|
216
|
-
break;
|
|
217
|
-
}
|
|
51
|
+
_.forIn(arr, function (value, key) {
|
|
52
|
+
var fragment = '';
|
|
218
53
|
|
|
219
|
-
|
|
220
|
-
|
|
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(' ');
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
value = '';
|
|
221
62
|
}
|
|
222
63
|
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
this.render($container);
|
|
226
|
-
}).on('render', function () {
|
|
227
|
-
$template = $$1(tpl());
|
|
228
|
-
$template.appendTo($container);
|
|
229
|
-
let container = media.$node[0].parentNode;
|
|
230
|
-
|
|
231
|
-
if (media.$node.parents('figure').length) {
|
|
232
|
-
// if figure parent exists then need to use figure container
|
|
233
|
-
container = media.$node.parents('figure')[0].parentNode;
|
|
64
|
+
if (keyValueGlue !== undefined) {
|
|
65
|
+
fragment += key + keyValueGlue;
|
|
234
66
|
}
|
|
235
67
|
|
|
236
|
-
|
|
68
|
+
fragment += wrapper + value + wrapper;
|
|
69
|
+
fragments.push(fragment);
|
|
70
|
+
});
|
|
237
71
|
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
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
|
|
75
|
+
|
|
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
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
|
|
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
|
|
98
|
+
|
|
99
|
+
hb.registerHelper('property', function (name, context) {
|
|
100
|
+
return context[name] || '';
|
|
101
|
+
}); // register an 'includes' helper
|
|
102
|
+
// it checks if value is in array
|
|
103
|
+
|
|
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 = "", helper, options, helperMissing=helpers.helperMissing, escapeExpression=this.escapeExpression;
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
buffer += "<div class=\"media-alignment\">\n <fieldset>\n <legend class=\"media-sizer-panel-label\">"
|
|
122
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Position", options) : helperMissing.call(depth0, "__", "Position", options)))
|
|
123
|
+
+ "</legend>\n <label class=\"smaller-prompt\">\n <input type=\"radio\" name=\"wrap-inline\"/>\n <span class=\"icon-radio\"></span>\n <span class=\"icon-wrap-inline\"></span>\n "
|
|
124
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Inline", options) : helperMissing.call(depth0, "__", "Inline", options)))
|
|
125
|
+
+ "\n </label>\n <br>\n <label class=\"smaller-prompt\">\n <input type=\"radio\" name=\"wrap-left\"/>\n <span class=\"icon-radio\"></span>\n <span class=\"icon-wrap-left\"></span>\n "
|
|
126
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Wrap image left", options) : helperMissing.call(depth0, "__", "Wrap image left", options)))
|
|
127
|
+
+ "\n </label>\n <br>\n <label class=\"smaller-prompt\">\n <input type=\"radio\" name=\"wrap-right\"/>\n <span class=\"icon-radio\"></span>\n <span class=\"icon-wrap-right\"></span>\n "
|
|
128
|
+
+ escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Wrap image right", options) : helperMissing.call(depth0, "__", "Wrap image right", options)))
|
|
129
|
+
+ "\n </label>\n </fieldset>\n</div>\n";
|
|
130
|
+
return buffer;
|
|
131
|
+
});
|
|
132
|
+
function tpl(data, options, asString) {
|
|
133
|
+
var html = Template(data, options);
|
|
134
|
+
return (asString || true) ? html : $(html);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* This program is free software; you can redistribute it and/or
|
|
139
|
+
* modify it under the terms of the GNU General Public License
|
|
140
|
+
* as published by the Free Software Foundation; under version 2
|
|
141
|
+
* of the License (non-upgradable).
|
|
142
|
+
*
|
|
143
|
+
* This program is distributed in the hope that it will be useful,
|
|
144
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
145
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
146
|
+
* GNU General Public License for more details.
|
|
147
|
+
*
|
|
148
|
+
* You should have received a copy of the GNU General Public License
|
|
149
|
+
* along with this program; if not, write to the Free Software
|
|
150
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
151
|
+
*
|
|
152
|
+
* Copyright (c) 2021-2022 (original work) Open Assessment Technologies SA;
|
|
153
|
+
*/
|
|
154
|
+
var FLOAT_LEFT_CLASS = 'wrap-left';
|
|
155
|
+
var FLOAT_RIGHT_CLASS = 'wrap-right';
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* This program is free software; you can redistribute it and/or
|
|
159
|
+
* modify it under the terms of the GNU General Public License
|
|
160
|
+
* as published by the Free Software Foundation; under version 2
|
|
161
|
+
* of the License (non-upgradable).
|
|
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 Juan Luis Gutierrez Dos Santos <juanluis.gutierrezdossantos@taotesting.com>
|
|
175
|
+
*/
|
|
176
|
+
/**
|
|
177
|
+
* Creates mediaAlignment component
|
|
178
|
+
* @param $container
|
|
179
|
+
* @param media
|
|
180
|
+
* @fires "changed" - on State changed
|
|
181
|
+
* return {component|*}
|
|
182
|
+
*/
|
|
183
|
+
|
|
184
|
+
function mediaAlignmentFactory($container, media) {
|
|
185
|
+
var $template;
|
|
186
|
+
var mediaAlignmentComponent = component({
|
|
187
|
+
/**
|
|
188
|
+
* Apply configurations to the view
|
|
189
|
+
*/
|
|
190
|
+
update: function update(conf) {
|
|
191
|
+
$template.find('input:checked').prop('checked', false);
|
|
192
|
+
|
|
193
|
+
switch (conf) {
|
|
194
|
+
case 'wrap-right':
|
|
195
|
+
conf = 'right';
|
|
196
|
+
$template.find('input[name="wrap-right"]').prop('checked', true);
|
|
197
|
+
break;
|
|
198
|
+
|
|
199
|
+
case 'wrap-left':
|
|
200
|
+
conf = 'left';
|
|
201
|
+
$template.find('input[name="wrap-left"]').prop('checked', true);
|
|
202
|
+
break;
|
|
203
|
+
|
|
204
|
+
default:
|
|
205
|
+
conf = 'default';
|
|
206
|
+
$template.find('input[name="wrap-inline"]').prop('checked', true);
|
|
207
|
+
break;
|
|
244
208
|
}
|
|
245
209
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
210
|
+
media.align = conf;
|
|
211
|
+
this.trigger('change', media);
|
|
212
|
+
}
|
|
213
|
+
});
|
|
214
|
+
mediaAlignmentComponent.on('init', function () {
|
|
215
|
+
this.render($container);
|
|
216
|
+
}).on('render', function () {
|
|
217
|
+
var _this = this;
|
|
218
|
+
|
|
219
|
+
$template = $$1(tpl());
|
|
220
|
+
$template.appendTo($container);
|
|
221
|
+
var container = media.$node[0].parentNode;
|
|
222
|
+
|
|
223
|
+
if (media.$node.parents('figure').length) {
|
|
224
|
+
// if figure parent exists then need to use figure container
|
|
225
|
+
container = media.$node.parents('figure')[0].parentNode;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
var classListTag = container.classList;
|
|
229
|
+
|
|
230
|
+
if (classListTag.contains(FLOAT_RIGHT_CLASS)) {
|
|
231
|
+
this.update('wrap-right');
|
|
232
|
+
} else if (classListTag.contains(FLOAT_LEFT_CLASS)) {
|
|
233
|
+
this.update('wrap-left');
|
|
234
|
+
} else {
|
|
235
|
+
this.update('wrap-inline');
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
$template.on('click', function (event) {
|
|
239
|
+
event.target.name && _this.update(event.target.name);
|
|
251
240
|
});
|
|
241
|
+
}).on('destroy', function () {
|
|
242
|
+
$template.remove();
|
|
243
|
+
});
|
|
252
244
|
|
|
253
|
-
|
|
245
|
+
_.defer(function () {
|
|
246
|
+
return mediaAlignmentComponent.init();
|
|
247
|
+
});
|
|
254
248
|
|
|
255
|
-
|
|
256
|
-
|
|
249
|
+
return mediaAlignmentComponent;
|
|
250
|
+
}
|
|
257
251
|
|
|
258
|
-
|
|
252
|
+
return mediaAlignmentFactory;
|
|
259
253
|
|
|
260
254
|
});
|