@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,268 +1,259 @@
|
|
|
1
1
|
define(['lodash', 'i18n', 'ui/generis/widget/widget', 'handlebars', 'lib/dompurify/purify'], function (_, __, widgetFactory, Handlebars, DOMPurify) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
4
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
5
|
+
widgetFactory = widgetFactory && Object.prototype.hasOwnProperty.call(widgetFactory, 'default') ? widgetFactory['default'] : widgetFactory;
|
|
6
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
7
|
+
DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
|
|
8
8
|
|
|
9
|
+
function _typeof(obj) {
|
|
10
|
+
"@babel/helpers - typeof";
|
|
11
|
+
|
|
12
|
+
return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
|
|
13
|
+
return typeof obj;
|
|
14
|
+
} : function (obj) {
|
|
15
|
+
return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
|
|
16
|
+
}, _typeof(obj);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function Helpers0 (hb) {
|
|
20
|
+
//register a i18n helper
|
|
21
|
+
hb.registerHelper('__', function (key) {
|
|
22
|
+
return __(key);
|
|
23
|
+
});
|
|
9
24
|
/**
|
|
10
|
-
*
|
|
11
|
-
* modify it under the terms of the GNU General Public License
|
|
12
|
-
* as published by the Free Software Foundation; under version 2
|
|
13
|
-
* of the License (non-upgradable).
|
|
14
|
-
*
|
|
15
|
-
* This program is distributed in the hope that it will be useful,
|
|
16
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
17
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
18
|
-
* GNU General Public License for more details.
|
|
19
|
-
*
|
|
20
|
-
* You should have received a copy of the GNU General Public License
|
|
21
|
-
* along with this program; if not, write to the Free Software
|
|
22
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
23
|
-
*
|
|
24
|
-
* Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
|
|
25
|
-
*
|
|
25
|
+
* Register dompurify helper
|
|
26
26
|
*
|
|
27
|
+
* https://github.com/cure53/DOMPurify
|
|
28
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
29
|
+
* to make output safe for template systems
|
|
27
30
|
*/
|
|
28
|
-
function Helpers0 (hb) {
|
|
29
|
-
//register a i18n helper
|
|
30
|
-
hb.registerHelper('__', function (key) {
|
|
31
|
-
return __(key);
|
|
32
|
-
});
|
|
33
|
-
/**
|
|
34
|
-
* Register dompurify helper
|
|
35
|
-
*
|
|
36
|
-
* https://github.com/cure53/DOMPurify
|
|
37
|
-
* with config SAFE_FOR_TEMPLATES: true
|
|
38
|
-
* to make output safe for template systems
|
|
39
|
-
*/
|
|
40
31
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
54
|
-
var fragments = [];
|
|
55
|
-
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
56
|
-
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
57
|
-
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
32
|
+
hb.registerHelper('dompurify', function (context) {
|
|
33
|
+
return DOMPurify.sanitize(context);
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Register join helper
|
|
37
|
+
*
|
|
38
|
+
* Example :
|
|
39
|
+
* var values = {a:v1, b:v2, c:v3};
|
|
40
|
+
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
41
|
+
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
42
|
+
*/
|
|
58
43
|
|
|
59
|
-
|
|
60
|
-
|
|
44
|
+
hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
|
|
45
|
+
var fragments = [];
|
|
46
|
+
keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
|
|
47
|
+
fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
|
|
48
|
+
wrapper = typeof wrapper === 'string' ? wrapper : '"';
|
|
61
49
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
value = value ? 'true' : 'false';
|
|
65
|
-
} else if (typeof value === 'object') {
|
|
66
|
-
value = _.values(value).join(' ');
|
|
67
|
-
}
|
|
68
|
-
} else {
|
|
69
|
-
value = '';
|
|
70
|
-
}
|
|
50
|
+
_.forIn(arr, function (value, key) {
|
|
51
|
+
var fragment = '';
|
|
71
52
|
|
|
72
|
-
|
|
73
|
-
|
|
53
|
+
if (value !== null || value !== undefined) {
|
|
54
|
+
if (typeof value === 'boolean') {
|
|
55
|
+
value = value ? 'true' : 'false';
|
|
56
|
+
} else if (_typeof(value) === 'object') {
|
|
57
|
+
value = _.values(value).join(' ');
|
|
74
58
|
}
|
|
59
|
+
} else {
|
|
60
|
+
value = '';
|
|
61
|
+
}
|
|
75
62
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
return fragments.join(fragmentGlue);
|
|
81
|
-
}); //register a classic "for loop" helper
|
|
82
|
-
//it also adds a local variable "i" as the index in each iteration loop
|
|
83
|
-
|
|
84
|
-
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
85
|
-
var ret = '';
|
|
86
|
-
startIndex = parseInt(startIndex);
|
|
87
|
-
stopIndex = parseInt(stopIndex);
|
|
88
|
-
increment = parseInt(increment);
|
|
89
|
-
|
|
90
|
-
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
91
|
-
ret += options.fn(_.extend({}, this, {
|
|
92
|
-
i: i
|
|
93
|
-
}));
|
|
63
|
+
if (keyValueGlue !== undefined) {
|
|
64
|
+
fragment += key + keyValueGlue;
|
|
94
65
|
}
|
|
95
66
|
|
|
96
|
-
|
|
67
|
+
fragment += wrapper + value + wrapper;
|
|
68
|
+
fragments.push(fragment);
|
|
97
69
|
});
|
|
98
|
-
hb.registerHelper('equal', function (var1, var2, options) {
|
|
99
|
-
if (var1 == var2) {
|
|
100
|
-
return options.fn(this);
|
|
101
|
-
} else {
|
|
102
|
-
return options.inverse(this);
|
|
103
|
-
}
|
|
104
|
-
}); // register a "get property" helper
|
|
105
|
-
// it gets the named property from the provided context
|
|
106
70
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
// it checks if value is in array
|
|
71
|
+
return fragments.join(fragmentGlue);
|
|
72
|
+
}); //register a classic "for loop" helper
|
|
73
|
+
//it also adds a local variable "i" as the index in each iteration loop
|
|
111
74
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}
|
|
75
|
+
hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
|
|
76
|
+
var ret = '';
|
|
77
|
+
startIndex = parseInt(startIndex);
|
|
78
|
+
stopIndex = parseInt(stopIndex);
|
|
79
|
+
increment = parseInt(increment);
|
|
118
80
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
125
|
-
helpers = this.merge(helpers, Handlebars.helpers); partials = this.merge(partials, Handlebars.partials); data = data || {};
|
|
126
|
-
var buffer = "", stack1, helper, self=this, functionType="function", escapeExpression=this.escapeExpression;
|
|
81
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
82
|
+
ret += options.fn(_.extend({}, this, {
|
|
83
|
+
i: i
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
127
86
|
|
|
87
|
+
return ret;
|
|
88
|
+
});
|
|
89
|
+
hb.registerHelper('equal', function (var1, var2, options) {
|
|
90
|
+
if (var1 == var2) {
|
|
91
|
+
return options.fn(this);
|
|
92
|
+
} else {
|
|
93
|
+
return options.inverse(this);
|
|
94
|
+
}
|
|
95
|
+
}); // register a "get property" helper
|
|
96
|
+
// it gets the named property from the provided context
|
|
128
97
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
if (helper = helpers.uri) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
134
|
-
else { helper = (depth0 && depth0.uri); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
135
|
-
buffer += escapeExpression(stack1)
|
|
136
|
-
+ "\" type=\"password\">\n </div>\n</div>\n\n<div class=\"ui-generis-widget hidden-box confirmation\">\n <div class=\"left\">\n ";
|
|
137
|
-
stack1 = self.invokePartial(partials['ui-generis-widget-label'], 'ui-generis-widget-label', (depth0 && depth0.confirmation), helpers, partials, data);
|
|
138
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
139
|
-
buffer += "\n </div>\n <div class=\"right\">\n <input name=\""
|
|
140
|
-
+ escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.confirmation)),stack1 == null || stack1 === false ? stack1 : stack1.uri)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
141
|
-
+ "\" type=\"password\">\n </div>\n</div>";
|
|
142
|
-
return buffer;
|
|
143
|
-
});
|
|
144
|
-
function tpl(data, options, asString) {
|
|
145
|
-
var html = Template(data, options);
|
|
146
|
-
return (asString || true) ? html : $(html);
|
|
147
|
-
}
|
|
98
|
+
hb.registerHelper('property', function (name, context) {
|
|
99
|
+
return context[name] || '';
|
|
100
|
+
}); // register an 'includes' helper
|
|
101
|
+
// it checks if value is in array
|
|
148
102
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
* This program is distributed in the hope that it will be useful,
|
|
156
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
157
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
158
|
-
* GNU General Public License for more details.
|
|
159
|
-
*
|
|
160
|
-
* You should have received a copy of the GNU General Public License
|
|
161
|
-
* along with this program; if not, write to the Free Software
|
|
162
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
163
|
-
*
|
|
164
|
-
* Copyright (c) 2017 (original work) Open Assessment Technologies SA;
|
|
165
|
-
*/
|
|
166
|
-
/**
|
|
167
|
-
* The factory
|
|
168
|
-
* @param {Object[]} [options.validator]
|
|
169
|
-
* @param {Object} [config.confirmation]
|
|
170
|
-
* @param {String} config.label
|
|
171
|
-
* @param {String} [confgi.required = false]
|
|
172
|
-
* @param {String} config.uri
|
|
173
|
-
* @param {String} [config.value]
|
|
174
|
-
* @returns {ui/component}
|
|
175
|
-
*/
|
|
103
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
104
|
+
if (_.contains(haystack, needle)) {
|
|
105
|
+
return options.fn(this);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
176
109
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
* @returns {Object}
|
|
186
|
-
*/
|
|
187
|
-
get: function get() {
|
|
188
|
-
var $el;
|
|
189
|
-
var ret = {
|
|
190
|
-
value: this.config.value,
|
|
191
|
-
confirmation: this.config.confirmation.value
|
|
192
|
-
};
|
|
110
|
+
if (!Helpers0.__initialized) {
|
|
111
|
+
Helpers0(Handlebars);
|
|
112
|
+
Helpers0.__initialized = true;
|
|
113
|
+
}
|
|
114
|
+
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
115
|
+
this.compilerInfo = [4,'>= 1.0.0'];
|
|
116
|
+
helpers = this.merge(helpers, Handlebars.helpers); partials = this.merge(partials, Handlebars.partials); data = data || {};
|
|
117
|
+
var buffer = "", stack1, helper, self=this, functionType="function", escapeExpression=this.escapeExpression;
|
|
193
118
|
|
|
194
|
-
if (this.is('rendered')) {
|
|
195
|
-
$el = this.getElement();
|
|
196
|
-
ret.value = $el.find('[name="' + this.config.uri + '"]').val();
|
|
197
|
-
ret.confirmation = $el.find('[name="' + this.config.confirmation.uri + '"]').val();
|
|
198
|
-
}
|
|
199
119
|
|
|
200
|
-
|
|
201
|
-
|
|
120
|
+
buffer += "<div class=\"ui-generis-widget hidden-box\">\n <div class=\"left\">\n ";
|
|
121
|
+
stack1 = self.invokePartial(partials['ui-generis-widget-label'], 'ui-generis-widget-label', depth0, helpers, partials, data);
|
|
122
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
123
|
+
buffer += "\n </div>\n <div class=\"right\">\n <input name=\"";
|
|
124
|
+
if (helper = helpers.uri) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
125
|
+
else { helper = (depth0 && depth0.uri); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
126
|
+
buffer += escapeExpression(stack1)
|
|
127
|
+
+ "\" type=\"password\">\n </div>\n</div>\n\n<div class=\"ui-generis-widget hidden-box confirmation\">\n <div class=\"left\">\n ";
|
|
128
|
+
stack1 = self.invokePartial(partials['ui-generis-widget-label'], 'ui-generis-widget-label', (depth0 && depth0.confirmation), helpers, partials, data);
|
|
129
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
130
|
+
buffer += "\n </div>\n <div class=\"right\">\n <input name=\""
|
|
131
|
+
+ escapeExpression(((stack1 = ((stack1 = (depth0 && depth0.confirmation)),stack1 == null || stack1 === false ? stack1 : stack1.uri)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
132
|
+
+ "\" type=\"password\">\n </div>\n</div>";
|
|
133
|
+
return buffer;
|
|
134
|
+
});
|
|
135
|
+
function tpl(data, options, asString) {
|
|
136
|
+
var html = Template(data, options);
|
|
137
|
+
return (asString || true) ? html : $(html);
|
|
138
|
+
}
|
|
202
139
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
140
|
+
/**
|
|
141
|
+
* This program is free software; you can redistribute it and/or
|
|
142
|
+
* modify it under the terms of the GNU General Public License
|
|
143
|
+
* as published by the Free Software Foundation; under version 2
|
|
144
|
+
* of the License (non-upgradable).
|
|
145
|
+
*
|
|
146
|
+
* This program is distributed in the hope that it will be useful,
|
|
147
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
148
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
149
|
+
* GNU General Public License for more details.
|
|
150
|
+
*
|
|
151
|
+
* You should have received a copy of the GNU General Public License
|
|
152
|
+
* along with this program; if not, write to the Free Software
|
|
153
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
154
|
+
*
|
|
155
|
+
* Copyright (c) 2017 (original work) Open Assessment Technologies SA;
|
|
156
|
+
*/
|
|
157
|
+
/**
|
|
158
|
+
* The factory
|
|
159
|
+
* @param {Object[]} [options.validator]
|
|
160
|
+
* @param {Object} [config.confirmation]
|
|
161
|
+
* @param {String} config.label
|
|
162
|
+
* @param {String} [confgi.required = false]
|
|
163
|
+
* @param {String} config.uri
|
|
164
|
+
* @param {String} [config.value]
|
|
165
|
+
* @returns {ui/component}
|
|
166
|
+
*/
|
|
211
167
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
168
|
+
function factory(options, config) {
|
|
169
|
+
var validator = options.validator || [];
|
|
170
|
+
var widget;
|
|
171
|
+
widget = widgetFactory({
|
|
172
|
+
validator: validator
|
|
173
|
+
}, {
|
|
174
|
+
/**
|
|
175
|
+
* Overrides get method
|
|
176
|
+
* @returns {Object}
|
|
177
|
+
*/
|
|
178
|
+
get: function get() {
|
|
179
|
+
var $el;
|
|
180
|
+
var ret = {
|
|
181
|
+
value: this.config.value,
|
|
182
|
+
confirmation: this.config.confirmation.value
|
|
183
|
+
};
|
|
217
184
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
}
|
|
185
|
+
if (this.is('rendered')) {
|
|
186
|
+
$el = this.getElement();
|
|
187
|
+
ret.value = $el.find('[name="' + this.config.uri + '"]').val();
|
|
188
|
+
ret.confirmation = $el.find('[name="' + this.config.confirmation.uri + '"]').val();
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return ret;
|
|
192
|
+
},
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Overrides set method
|
|
196
|
+
* @param {String} value
|
|
197
|
+
* @returns {Object}
|
|
198
|
+
*/
|
|
199
|
+
set: function set(value) {
|
|
200
|
+
var $el;
|
|
201
|
+
this.config.value = this.config.confirmation.value = value;
|
|
223
202
|
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
serialize: function serialize() {
|
|
229
|
-
return {
|
|
230
|
-
name: this.config.uri,
|
|
231
|
-
value: this.get().value
|
|
232
|
-
};
|
|
203
|
+
if (this.is('rendered')) {
|
|
204
|
+
$el = this.getElement();
|
|
205
|
+
$el.find('[name="' + this.config.uri + '"]').val(value);
|
|
206
|
+
$el.find('[name="' + this.config.confirmation.uri + '"]').val(value);
|
|
233
207
|
}
|
|
234
|
-
}).setTemplate(tpl).init({
|
|
235
|
-
confirmation: {
|
|
236
|
-
label: __('%s Confirmation', config.label),
|
|
237
|
-
uri: config.uri + '_confirmation',
|
|
238
|
-
value: config.value || ''
|
|
239
|
-
},
|
|
240
|
-
label: config.label,
|
|
241
|
-
required: config.required || false,
|
|
242
|
-
uri: config.uri,
|
|
243
|
-
value: config.value || ''
|
|
244
|
-
}); // Validations
|
|
245
208
|
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
209
|
+
return {
|
|
210
|
+
value: this.config.value,
|
|
211
|
+
confirmation: this.config.confirmation.value
|
|
212
|
+
};
|
|
213
|
+
},
|
|
214
|
+
|
|
215
|
+
/**
|
|
216
|
+
* Overrides serialize method
|
|
217
|
+
* @returns {Object}
|
|
218
|
+
*/
|
|
219
|
+
serialize: function serialize() {
|
|
220
|
+
return {
|
|
221
|
+
name: this.config.uri,
|
|
222
|
+
value: this.get().value
|
|
223
|
+
};
|
|
254
224
|
}
|
|
225
|
+
}).setTemplate(tpl).init({
|
|
226
|
+
confirmation: {
|
|
227
|
+
label: __('%s Confirmation', config.label),
|
|
228
|
+
uri: config.uri + '_confirmation',
|
|
229
|
+
value: config.value || ''
|
|
230
|
+
},
|
|
231
|
+
label: config.label,
|
|
232
|
+
required: config.required || false,
|
|
233
|
+
uri: config.uri,
|
|
234
|
+
value: config.value || ''
|
|
235
|
+
}); // Validations
|
|
255
236
|
|
|
237
|
+
if (widget.config.required) {
|
|
256
238
|
widget.validator.addValidation({
|
|
257
|
-
message: __('
|
|
258
|
-
predicate: function (value) {
|
|
259
|
-
return value.value
|
|
239
|
+
message: __('This field is required'),
|
|
240
|
+
predicate: function predicate(value) {
|
|
241
|
+
return /\S+/.test(value.value);
|
|
260
242
|
},
|
|
261
|
-
precedence:
|
|
243
|
+
precedence: 1
|
|
262
244
|
});
|
|
263
|
-
return widget;
|
|
264
245
|
}
|
|
265
246
|
|
|
266
|
-
|
|
247
|
+
widget.validator.addValidation({
|
|
248
|
+
message: __('Fields must match'),
|
|
249
|
+
predicate: function predicate(value) {
|
|
250
|
+
return value.value === value.confirmation;
|
|
251
|
+
},
|
|
252
|
+
precedence: 2
|
|
253
|
+
});
|
|
254
|
+
return widget;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
return factory;
|
|
267
258
|
|
|
268
259
|
});
|