@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,291 +1,286 @@
|
|
|
1
1
|
define(['jquery', 'lodash', 'i18n', 'handlebars', 'lib/dompurify/purify'], function ($$1, _, __, Handlebars, DOMPurify) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
$$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
|
|
4
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
5
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
6
|
+
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
|
-
|
|
41
|
-
hb.registerHelper('dompurify', function (context) {
|
|
42
|
-
return DOMPurify.sanitize(context);
|
|
43
|
-
});
|
|
44
|
-
/**
|
|
45
|
-
* Register join helper
|
|
46
|
-
*
|
|
47
|
-
* Example :
|
|
48
|
-
* var values = {a:v1, b:v2, c:v3};
|
|
49
|
-
* Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
|
|
50
|
-
* Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
|
|
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 : '"';
|
|
58
|
-
|
|
59
|
-
_.forIn(arr, function (value, key) {
|
|
60
|
-
var fragment = '';
|
|
61
|
-
|
|
62
|
-
if (value !== null || value !== undefined) {
|
|
63
|
-
if (typeof value === 'boolean') {
|
|
64
|
-
value = value ? 'true' : 'false';
|
|
65
|
-
} else if (typeof value === 'object') {
|
|
66
|
-
value = _.values(value).join(' ');
|
|
67
|
-
}
|
|
68
|
-
} else {
|
|
69
|
-
value = '';
|
|
70
|
-
}
|
|
71
31
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
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
|
+
*/
|
|
75
43
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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 : '"';
|
|
79
49
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
//it also adds a local variable "i" as the index in each iteration loop
|
|
50
|
+
_.forIn(arr, function (value, key) {
|
|
51
|
+
var fragment = '';
|
|
83
52
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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(' ');
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
value = '';
|
|
61
|
+
}
|
|
89
62
|
|
|
90
|
-
|
|
91
|
-
|
|
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
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
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, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
|
|
127
|
-
|
|
128
|
-
function program1(depth0,data,depth1) {
|
|
129
|
-
|
|
130
|
-
var buffer = "", stack1, helper, options;
|
|
131
|
-
buffer += "\n <div class=\"option\">\n <label>\n <input\n class=\"widget-input-inline\"\n type=\"checkbox\"\n name=\""
|
|
132
|
-
+ escapeExpression(((stack1 = (depth0 && depth0.uri)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
133
|
-
+ "\"\n value=\""
|
|
134
|
-
+ escapeExpression(((stack1 = (depth0 && depth0.uri)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
135
|
-
+ "\"\n ";
|
|
136
|
-
stack1 = (helper = helpers.includes || (depth1 && depth1.includes),options={hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data},helper ? helper.call(depth0, (depth1 && depth1.value), (depth0 && depth0.uri), options) : helperMissing.call(depth0, "includes", (depth1 && depth1.value), (depth0 && depth0.uri), options));
|
|
137
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
138
|
-
buffer += ">\n <span class=\"icon-checkbox\"></span>\n "
|
|
139
|
-
+ escapeExpression(((stack1 = (depth0 && depth0.label)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
140
|
-
+ "\n </label>\n </div>\n ";
|
|
141
|
-
return buffer;
|
|
81
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
82
|
+
ret += options.fn(_.extend({}, this, {
|
|
83
|
+
i: i
|
|
84
|
+
}));
|
|
142
85
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
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);
|
|
147
94
|
}
|
|
95
|
+
}); // register a "get property" helper
|
|
96
|
+
// it gets the named property from the provided context
|
|
148
97
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
if(
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
98
|
+
hb.registerHelper('property', function (name, context) {
|
|
99
|
+
return context[name] || '';
|
|
100
|
+
}); // register an 'includes' helper
|
|
101
|
+
// it checks if value is in array
|
|
102
|
+
|
|
103
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
104
|
+
if (_.contains(haystack, needle)) {
|
|
105
|
+
return options.fn(this);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
|
|
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, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
|
|
118
|
+
|
|
119
|
+
function program1(depth0,data,depth1) {
|
|
120
|
+
|
|
121
|
+
var buffer = "", stack1, helper, options;
|
|
122
|
+
buffer += "\n <div class=\"option\">\n <label>\n <input\n class=\"widget-input-inline\"\n type=\"checkbox\"\n name=\""
|
|
123
|
+
+ escapeExpression(((stack1 = (depth0 && depth0.uri)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
124
|
+
+ "\"\n value=\""
|
|
125
|
+
+ escapeExpression(((stack1 = (depth0 && depth0.uri)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
126
|
+
+ "\"\n ";
|
|
127
|
+
stack1 = (helper = helpers.includes || (depth1 && depth1.includes),options={hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data},helper ? helper.call(depth0, (depth1 && depth1.value), (depth0 && depth0.uri), options) : helperMissing.call(depth0, "includes", (depth1 && depth1.value), (depth0 && depth0.uri), options));
|
|
128
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
129
|
+
buffer += ">\n <span class=\"icon-checkbox\"></span>\n "
|
|
130
|
+
+ escapeExpression(((stack1 = (depth0 && depth0.label)),typeof stack1 === functionType ? stack1.apply(depth0) : stack1))
|
|
131
|
+
+ "\n </label>\n </div>\n ";
|
|
132
|
+
return buffer;
|
|
165
133
|
}
|
|
134
|
+
function program2(depth0,data) {
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
return "\n checked=\"true\"\n ";
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
buffer += "<div class=\"form-widget ";
|
|
141
|
+
if (helper = helpers.widgetType) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
142
|
+
else { helper = (depth0 && depth0.widgetType); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
143
|
+
buffer += escapeExpression(stack1)
|
|
144
|
+
+ "\">\n <div class=\"widget-label\">\n ";
|
|
145
|
+
stack1 = self.invokePartial(partials['ui-form-widget-label'], 'ui-form-widget-label', depth0, helpers, partials, data);
|
|
146
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
147
|
+
buffer += "\n </div>\n <div class=\"widget-field\">\n <div class=\"check-box-input\">\n ";
|
|
148
|
+
stack1 = helpers.each.call(depth0, (depth0 && depth0.range), {hash:{},inverse:self.noop,fn:self.programWithDepth(1, program1, data, depth0),data:data});
|
|
149
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
150
|
+
buffer += "\n </div>\n </div>\n</div>\n";
|
|
151
|
+
return buffer;
|
|
152
|
+
});
|
|
153
|
+
function checkBoxTpl(data, options, asString) {
|
|
154
|
+
var html = Template(data, options);
|
|
155
|
+
return (asString || true) ? html : $(html);
|
|
156
|
+
}
|
|
166
157
|
|
|
158
|
+
/**
|
|
159
|
+
* This program is free software; you can redistribute it and/or
|
|
160
|
+
* modify it under the terms of the GNU General Public License
|
|
161
|
+
* as published by the Free Software Foundation; under version 2
|
|
162
|
+
* of the License (non-upgradable).
|
|
163
|
+
*
|
|
164
|
+
* This program is distributed in the hope that it will be useful,
|
|
165
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
166
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
167
|
+
* GNU General Public License for more details.
|
|
168
|
+
*
|
|
169
|
+
* You should have received a copy of the GNU General Public License
|
|
170
|
+
* along with this program; if not, write to the Free Software
|
|
171
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
172
|
+
*
|
|
173
|
+
* Copyright (c) 2019 Open Assessment Technologies SA ;
|
|
174
|
+
*/
|
|
175
|
+
/**
|
|
176
|
+
* Defines the provider for a checkBox widget.
|
|
177
|
+
*
|
|
178
|
+
* @example
|
|
179
|
+
* import widgetCheckBoxProvider from 'ui/form/widget/providers/checkBox';
|
|
180
|
+
* widgetFactory.registerProvider('checkBox', widgetCheckBoxProvider);
|
|
181
|
+
* const widget = widgetFactory(container, {
|
|
182
|
+
* widget: 'checkBox'
|
|
183
|
+
* uri: 'cb',
|
|
184
|
+
* label: 'All good?',
|
|
185
|
+
* range: [{
|
|
186
|
+
* uri: 'yes',
|
|
187
|
+
* label: 'Yes'
|
|
188
|
+
* }, {
|
|
189
|
+
* uri: 'no',
|
|
190
|
+
* label: 'No'
|
|
191
|
+
* }]
|
|
192
|
+
* });
|
|
193
|
+
*/
|
|
194
|
+
|
|
195
|
+
var widgetCheckBoxProvider = {
|
|
167
196
|
/**
|
|
168
|
-
*
|
|
169
|
-
*
|
|
170
|
-
* as published by the Free Software Foundation; under version 2
|
|
171
|
-
* of the License (non-upgradable).
|
|
172
|
-
*
|
|
173
|
-
* This program is distributed in the hope that it will be useful,
|
|
174
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
175
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
176
|
-
* GNU General Public License for more details.
|
|
177
|
-
*
|
|
178
|
-
* You should have received a copy of the GNU General Public License
|
|
179
|
-
* along with this program; if not, write to the Free Software
|
|
180
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
181
|
-
*
|
|
182
|
-
* Copyright (c) 2019 Open Assessment Technologies SA ;
|
|
197
|
+
* Initialize the widget.
|
|
198
|
+
* @param {widgetConfig} config
|
|
183
199
|
*/
|
|
200
|
+
init: function init(config) {
|
|
201
|
+
// the type will be reflected to the HTML markup
|
|
202
|
+
config.widgetType = 'check-box'; // the value must be an array
|
|
203
|
+
|
|
204
|
+
if (config.value && !_.isArray(config.value)) {
|
|
205
|
+
config.value = [config.value];
|
|
206
|
+
} else {
|
|
207
|
+
config.value = config.value || [];
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
|
|
184
211
|
/**
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
* @example
|
|
188
|
-
* import widgetCheckBoxProvider from 'ui/form/widget/providers/checkBox';
|
|
189
|
-
* widgetFactory.registerProvider('checkBox', widgetCheckBoxProvider);
|
|
190
|
-
* const widget = widgetFactory(container, {
|
|
191
|
-
* widget: 'checkBox'
|
|
192
|
-
* uri: 'cb',
|
|
193
|
-
* label: 'All good?',
|
|
194
|
-
* range: [{
|
|
195
|
-
* uri: 'yes',
|
|
196
|
-
* label: 'Yes'
|
|
197
|
-
* }, {
|
|
198
|
-
* uri: 'no',
|
|
199
|
-
* label: 'No'
|
|
200
|
-
* }]
|
|
201
|
-
* });
|
|
212
|
+
* Resets the widget to the default validators
|
|
202
213
|
*/
|
|
214
|
+
setDefaultValidators: function setDefaultValidators() {
|
|
215
|
+
// set default validator if the field is required
|
|
216
|
+
if (this.getConfig().required) {
|
|
217
|
+
this.getValidator().addValidation({
|
|
218
|
+
id: 'required',
|
|
219
|
+
message: __('This field is required'),
|
|
220
|
+
predicate: function predicate(value) {
|
|
221
|
+
return value.length > 0;
|
|
222
|
+
},
|
|
223
|
+
precedence: 1
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
},
|
|
203
227
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
// the type will be reflected to the HTML markup
|
|
211
|
-
config.widgetType = 'check-box'; // the value must be an array
|
|
212
|
-
|
|
213
|
-
if (config.value && !_.isArray(config.value)) {
|
|
214
|
-
config.value = [config.value];
|
|
215
|
-
} else {
|
|
216
|
-
config.value = config.value || [];
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Resets the widget to the default validators
|
|
222
|
-
*/
|
|
223
|
-
setDefaultValidators() {
|
|
224
|
-
// set default validator if the field is required
|
|
225
|
-
if (this.getConfig().required) {
|
|
226
|
-
this.getValidator().addValidation({
|
|
227
|
-
id: 'required',
|
|
228
|
-
message: __('This field is required'),
|
|
229
|
-
predicate: value => value.length > 0,
|
|
230
|
-
precedence: 1
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Gets the value of the widget, which will be either an empty array or a list of URI from the range
|
|
237
|
-
* @returns {String[]}
|
|
238
|
-
*/
|
|
239
|
-
getValue() {
|
|
240
|
-
let value = this.getConfig().value || [];
|
|
241
|
-
|
|
242
|
-
if (this.is('rendered')) {
|
|
243
|
-
value = [];
|
|
244
|
-
this.getElement().find('.option input:checked').map(function mapElement() {
|
|
245
|
-
value.push($$1(this).val());
|
|
246
|
-
});
|
|
247
|
-
}
|
|
228
|
+
/**
|
|
229
|
+
* Gets the value of the widget, which will be either an empty array or a list of URI from the range
|
|
230
|
+
* @returns {String[]}
|
|
231
|
+
*/
|
|
232
|
+
getValue: function getValue() {
|
|
233
|
+
var value = this.getConfig().value || [];
|
|
248
234
|
|
|
249
|
-
|
|
250
|
-
|
|
235
|
+
if (this.is('rendered')) {
|
|
236
|
+
value = [];
|
|
237
|
+
this.getElement().find('.option input:checked').map(function mapElement() {
|
|
238
|
+
value.push($$1(this).val());
|
|
239
|
+
});
|
|
240
|
+
}
|
|
251
241
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
* @param {String[]} value
|
|
255
|
-
*/
|
|
256
|
-
setValue(value) {
|
|
257
|
-
if (this.is('rendered')) {
|
|
258
|
-
this.getWidgetElement().prop('checked', false);
|
|
242
|
+
return value;
|
|
243
|
+
},
|
|
259
244
|
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
245
|
+
/**
|
|
246
|
+
* Sets the value of the widget, which can be either an empty array or a list of URI from the range
|
|
247
|
+
* @param {String[]} value
|
|
248
|
+
*/
|
|
249
|
+
setValue: function setValue(value) {
|
|
250
|
+
var _this = this;
|
|
251
|
+
|
|
252
|
+
if (this.is('rendered')) {
|
|
253
|
+
this.getWidgetElement().prop('checked', false);
|
|
254
|
+
|
|
255
|
+
_.forEach(value, function (v) {
|
|
256
|
+
_this.getElement().find("input[name=\"".concat(v, "\"]")).prop('checked', true);
|
|
257
|
+
});
|
|
258
|
+
}
|
|
259
|
+
},
|
|
260
|
+
|
|
261
|
+
/**
|
|
262
|
+
* Resets the widget to its default value
|
|
263
|
+
* @returns {widgetForm}
|
|
264
|
+
*/
|
|
265
|
+
reset: function reset() {
|
|
266
|
+
this.setValue([]);
|
|
267
|
+
return this;
|
|
268
|
+
},
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Gets access to the actual form element
|
|
272
|
+
* @returns {jQuery|null}
|
|
273
|
+
*/
|
|
274
|
+
getWidgetElement: function getWidgetElement() {
|
|
275
|
+
return this.getElement().find('.option input');
|
|
276
|
+
},
|
|
277
|
+
|
|
278
|
+
/**
|
|
279
|
+
* Expose the template to the factory and it will apply it
|
|
280
|
+
*/
|
|
281
|
+
template: checkBoxTpl
|
|
282
|
+
};
|
|
283
|
+
|
|
284
|
+
return widgetCheckBoxProvider;
|
|
290
285
|
|
|
291
286
|
});
|