@oat-sa/tao-core-ui 1.58.1 → 1.58.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/actionbar.js +386 -395
- package/dist/adder.js +21 -19
- package/dist/animable/absorbable/absorbable.js +204 -213
- package/dist/animable/absorbable/css/absorb.css +1 -0
- package/dist/animable/absorbable/css/absorb.css.map +1 -1
- package/dist/animable/pulsable/pulsable.js +168 -177
- package/dist/autocomplete/css/autocomplete.css +1 -0
- package/dist/autocomplete/css/autocomplete.css.map +1 -1
- package/dist/autocomplete.js +68 -66
- package/dist/badge/badge.js +188 -197
- package/dist/badge/css/badge.css +1 -0
- package/dist/badge/css/badge.css.map +1 -1
- package/dist/breadcrumbs.js +275 -284
- package/dist/btngrouper.js +5 -5
- package/dist/bulkActionPopup.js +490 -495
- package/dist/button.js +283 -291
- package/dist/cascadingComboBox.js +249 -258
- package/dist/ckeditor/ckConfigurator.js +26 -19
- package/dist/ckeditor/dtdHandler.js +11 -9
- package/dist/class/selector.js +441 -450
- package/dist/component/resizable.js +1 -1
- package/dist/component/windowed.js +285 -294
- package/dist/component.js +419 -428
- package/dist/contextualPopup.js +417 -426
- package/dist/dashboard.js +300 -309
- package/dist/datalist.js +753 -762
- package/dist/datatable/filterStrategy/multiple.js +1 -1
- package/dist/datatable/filterStrategy/single.js +1 -1
- package/dist/datatable.js +1527 -1550
- package/dist/dateRange/dateRange.js +393 -402
- package/dist/datetime/picker.js +665 -672
- package/dist/deleter.js +368 -377
- package/dist/destination/selector.js +286 -295
- package/dist/dialog/alert.js +3 -3
- package/dist/dialog/confirm.js +1 -1
- package/dist/dialog/confirmDelete.js +216 -225
- package/dist/dialog.js +650 -654
- package/dist/disabler.js +8 -8
- package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +166 -175
- package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +518 -527
- package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +380 -389
- package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +539 -548
- package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +369 -378
- package/dist/documentViewer/providers/pdfViewer.js +184 -193
- package/dist/documentViewer.js +292 -301
- package/dist/dropdown.js +383 -392
- package/dist/durationer.js +5 -5
- package/dist/dynamicComponent.js +597 -598
- package/dist/feedback.js +356 -362
- package/dist/figure/FigureStateActive.js +117 -108
- package/dist/filesender.js +2 -2
- package/dist/filter.js +230 -239
- package/dist/form/dropdownForm.js +355 -357
- package/dist/form/form.js +919 -690
- package/dist/form/simpleForm.js +1 -1
- package/dist/form/validator/renderer.js +233 -235
- package/dist/form/validator/validator.js +257 -189
- package/dist/form/widget/definitions.js +1 -1
- package/dist/form/widget/providers/checkBox.js +254 -259
- package/dist/form/widget/providers/comboBox.js +187 -192
- package/dist/form/widget/providers/default.js +8 -9
- package/dist/form/widget/providers/hidden.js +170 -179
- package/dist/form/widget/providers/hiddenBox.js +262 -267
- package/dist/form/widget/providers/radioBox.js +216 -225
- package/dist/form/widget/providers/textArea.js +187 -196
- package/dist/form/widget/providers/textBox.js +2 -3
- package/dist/form/widget/widget.js +473 -475
- package/dist/formValidator/formValidator.js +1 -1
- package/dist/formValidator/highlighters/message.js +1 -1
- package/dist/generis/form/form.js +314 -323
- package/dist/generis/validator/validator.js +209 -218
- package/dist/generis/widget/checkBox/checkBox.js +218 -227
- package/dist/generis/widget/comboBox/comboBox.js +179 -188
- package/dist/generis/widget/hiddenBox/hiddenBox.js +220 -229
- package/dist/generis/widget/textBox/textBox.js +169 -178
- package/dist/generis/widget/widget.js +246 -255
- package/dist/groupedComboBox.js +222 -231
- package/dist/groupvalidator.js +2 -2
- package/dist/highlighter.js +967 -958
- package/dist/image/ImgStateActive/helper.js +7 -5
- package/dist/image/ImgStateActive/initHelper.js +49 -43
- package/dist/image/ImgStateActive/initMediaEditor.js +24 -20
- package/dist/image/ImgStateActive/mediaSizer.js +14 -12
- package/dist/image/ImgStateActive.js +72 -70
- package/dist/incrementer.js +6 -6
- package/dist/inplacer.js +6 -6
- package/dist/itemButtonList/css/item-button-list.css +1 -0
- package/dist/itemButtonList/css/item-button-list.css.map +1 -1
- package/dist/itemButtonList.js +439 -435
- package/dist/keyNavigation/navigableDomElement.js +51 -38
- package/dist/keyNavigation/navigator.js +85 -70
- package/dist/listbox.js +460 -469
- package/dist/liststyler.js +8 -8
- package/dist/loadingButton/loadingButton.js +209 -218
- package/dist/lock.js +476 -485
- package/dist/login/login.js +475 -484
- package/dist/maths/calculator/basicCalculator.js +235 -244
- package/dist/maths/calculator/calculatorComponent.js +3 -3
- package/dist/maths/calculator/core/board.js +772 -781
- package/dist/maths/calculator/core/expression.js +476 -485
- package/dist/maths/calculator/core/labels.js +228 -237
- package/dist/maths/calculator/core/tokenizer.js +1 -1
- package/dist/maths/calculator/core/tokens.js +163 -170
- package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +244 -253
- package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +279 -288
- package/dist/maths/calculator/scientificCalculator.js +327 -336
- package/dist/mediaEditor/mediaEditorComponent.js +238 -245
- package/dist/mediaEditor/plugins/mediaAlignment/helper.js +7 -7
- package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +229 -235
- package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +580 -589
- package/dist/mediaplayer/players/html5.js +666 -675
- package/dist/mediaplayer/players/youtube.js +419 -424
- package/dist/mediaplayer/support.js +11 -10
- package/dist/mediaplayer/utils/reminder.js +14 -13
- package/dist/mediaplayer/utils/timeObserver.js +10 -11
- package/dist/mediaplayer/youtubeManager.js +164 -145
- package/dist/mediaplayer.js +1565 -1520
- package/dist/mediasizer.js +669 -678
- package/dist/modal.js +10 -17
- package/dist/pageSizeSelector.js +219 -228
- package/dist/pagination/providers/pages.js +280 -289
- package/dist/pagination/providers/simple.js +192 -201
- package/dist/previewer.js +30 -30
- package/dist/progressbar.js +4 -4
- package/dist/report.js +347 -356
- package/dist/resource/filters.js +271 -280
- package/dist/resource/list.js +1264 -1273
- package/dist/resource/selector.js +865 -874
- package/dist/resource/tree.js +1483 -1492
- package/dist/resourcemgr/fileBrowser.js +564 -569
- package/dist/resourcemgr/filePreview.js +16 -16
- package/dist/resourcemgr/fileSelector.js +515 -524
- package/dist/resourcemgr/util/updatePermissions.js +2 -2
- package/dist/resourcemgr.js +306 -315
- package/dist/searchModal/advancedSearch.js +796 -767
- package/dist/searchModal.js +114 -91
- package/dist/switch/switch.js +298 -307
- package/dist/tabs.js +598 -575
- package/dist/taskQueue/status.js +312 -321
- package/dist/taskQueue/table.js +375 -384
- package/dist/taskQueue/taskQueueModel.js +488 -472
- package/dist/taskQueueButton/taskable.js +264 -273
- package/dist/taskQueueButton/treeButton.js +189 -198
- package/dist/themeLoader.js +24 -23
- package/dist/themes.js +1 -1
- package/dist/toggler.js +3 -3
- package/dist/tooltip.js +295 -304
- package/dist/transformer.js +2 -2
- package/dist/tristateCheckboxGroup.js +311 -320
- package/dist/uploader.js +687 -696
- package/dist/validator/Report.js +1 -1
- package/dist/validator/Validator.js +3 -3
- package/dist/validator/validators.js +9 -9
- package/dist/validator.js +240 -230
- package/dist/waitForMedia.js +1 -1
- package/package.json +3 -3
- package/src/animable/absorbable/css/absorb.css +1 -0
- package/src/animable/absorbable/css/absorb.css.map +1 -1
- package/src/autocomplete/css/autocomplete.css +1 -0
- package/src/autocomplete/css/autocomplete.css.map +1 -1
- package/src/badge/css/badge.css +1 -0
- package/src/badge/css/badge.css.map +1 -1
- package/src/ckeditor/ckConfigurator.js +4 -0
- package/src/itemButtonList/css/item-button-list.css +1 -0
- package/src/itemButtonList/css/item-button-list.css.map +1 -1
- package/src/.DS_Store +0 -0
- package/src/css/basic.css +0 -7826
- package/src/css/basic.css.map +0 -1
- package/src/css/ckeditor/skins/tao/css/dialog.css +0 -950
- package/src/css/ckeditor/skins/tao/css/dialog.css.map +0 -1
- package/src/css/ckeditor/skins/tao/css/editor.css +0 -1850
- package/src/css/ckeditor/skins/tao/css/editor.css.map +0 -1
- package/src/scss/.DS_Store +0 -0
- package/src/scss/basic.scss +0 -16
- package/src/scss/ckeditor/skins/tao/scss/dialog.scss +0 -763
- package/src/scss/ckeditor/skins/tao/scss/editor.scss +0 -111
- package/src/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +0 -59
- package/src/scss/ckeditor/skins/tao/scss/inc/_colorpanel.scss +0 -118
- package/src/scss/ckeditor/skins/tao/scss/inc/_elementspath.scss +0 -69
- package/src/scss/ckeditor/skins/tao/scss/inc/_mainui.scss +0 -194
- package/src/scss/ckeditor/skins/tao/scss/inc/_menu.scss +0 -181
- package/src/scss/ckeditor/skins/tao/scss/inc/_panel.scss +0 -200
- package/src/scss/ckeditor/skins/tao/scss/inc/_presets.scss +0 -32
- package/src/scss/ckeditor/skins/tao/scss/inc/_reset.scss +0 -101
- package/src/scss/ckeditor/skins/tao/scss/inc/_richcombo.scss +0 -213
- package/src/scss/ckeditor/skins/tao/scss/inc/_tao.scss +0 -59
- package/src/scss/ckeditor/skins/tao/scss/inc/_toolbar.scss +0 -301
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot.b64 +0 -1
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
- package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff.b64 +0 -1
- package/src/scss/font/tao/tao.eot +0 -0
- package/src/scss/font/tao/tao.svg +0 -235
- package/src/scss/font/tao/tao.ttf +0 -0
- package/src/scss/font/tao/tao.woff +0 -0
- package/src/scss/inc/_base.scss +0 -496
- package/src/scss/inc/_bootstrap.scss +0 -6
- package/src/scss/inc/_buttons.scss +0 -114
- package/src/scss/inc/_colors.scss +0 -88
- package/src/scss/inc/_feedback.scss +0 -150
- package/src/scss/inc/_flex-grid.scss +0 -15
- package/src/scss/inc/_fonts.scss +0 -4
- package/src/scss/inc/_forms.scss +0 -827
- package/src/scss/inc/_functions.scss +0 -283
- package/src/scss/inc/_grid.scss +0 -66
- package/src/scss/inc/_jquery.nouislider.scss +0 -254
- package/src/scss/inc/_normalize.scss +0 -528
- package/src/scss/inc/_report.scss +0 -68
- package/src/scss/inc/_secondary-properties.scss +0 -89
- package/src/scss/inc/_select2.scss +0 -634
- package/src/scss/inc/_toolbars.scss +0 -155
- package/src/scss/inc/_tooltip.scss +0 -312
- package/src/scss/inc/_variables.scss +0 -21
- package/src/scss/inc/base/_highlight.scss +0 -5
- package/src/scss/inc/base/_list-style.scss +0 -59
- package/src/scss/inc/base/_svg.scss +0 -3
- package/src/scss/inc/base/_table.scss +0 -63
- package/src/scss/inc/fonts/_source-sans-pro.scss +0 -29
- package/src/scss/inc/fonts/_tao-icon-classes.scss +0 -226
- package/src/scss/inc/fonts/_tao-icon-def.scss +0 -12
- package/src/scss/inc/fonts/_tao-icon-vars.scss +0 -240
package/dist/button.js
CHANGED
|
@@ -1,329 +1,321 @@
|
|
|
1
1
|
define(['ui/component', 'handlebars', 'i18n', 'lodash', 'lib/dompurify/purify'], function (componentFactory, Handlebars, __, _, DOMPurify) { 'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
componentFactory = componentFactory && Object.prototype.hasOwnProperty.call(componentFactory, 'default') ? componentFactory['default'] : componentFactory;
|
|
4
|
+
Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
|
|
5
|
+
__ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
|
|
6
|
+
_ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
|
|
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
|
+
* Register dompurify helper
|
|
25
26
|
*
|
|
27
|
+
* https://github.com/cure53/DOMPurify
|
|
28
|
+
* with config SAFE_FOR_TEMPLATES: true
|
|
29
|
+
* to make output safe for template systems
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
hb.registerHelper('dompurify', function (context) {
|
|
33
|
+
return DOMPurify.sanitize(context);
|
|
34
|
+
});
|
|
35
|
+
/**
|
|
36
|
+
* Register join helper
|
|
26
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*
|
|
27
42
|
*/
|
|
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
43
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
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
|
-
*/
|
|
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 : '"';
|
|
52
49
|
|
|
53
|
-
|
|
54
|
-
var
|
|
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
|
-
}
|
|
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
|
-
var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
|
|
124
|
-
this.compilerInfo = [4,'>= 1.0.0'];
|
|
125
|
-
helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
|
|
126
|
-
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
127
|
-
|
|
128
|
-
function program1(depth0,data) {
|
|
129
|
-
|
|
130
|
-
var buffer = "", stack1, helper;
|
|
131
|
-
buffer += "btn-";
|
|
132
|
-
if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
133
|
-
else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
134
|
-
buffer += escapeExpression(stack1);
|
|
135
|
-
return buffer;
|
|
81
|
+
for (var i = startIndex; i < stopIndex; i += increment) {
|
|
82
|
+
ret += options.fn(_.extend({}, this, {
|
|
83
|
+
i: i
|
|
84
|
+
}));
|
|
136
85
|
}
|
|
137
86
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
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);
|
|
142
94
|
}
|
|
95
|
+
}); // register a "get property" helper
|
|
96
|
+
// it gets the named property from the provided context
|
|
143
97
|
|
|
144
|
-
function
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
if (helper = helpers.cls) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
149
|
-
else { helper = (depth0 && depth0.cls); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
150
|
-
buffer += escapeExpression(stack1);
|
|
151
|
-
return buffer;
|
|
152
|
-
}
|
|
98
|
+
hb.registerHelper('property', function (name, context) {
|
|
99
|
+
return context[name] || '';
|
|
100
|
+
}); // register an 'includes' helper
|
|
101
|
+
// it checks if value is in array
|
|
153
102
|
|
|
154
|
-
function
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
buffer += " title=\"";
|
|
158
|
-
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
159
|
-
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
160
|
-
buffer += escapeExpression(stack1)
|
|
161
|
-
+ "\"";
|
|
162
|
-
return buffer;
|
|
103
|
+
hb.registerHelper('includes', function (haystack, needle, options) {
|
|
104
|
+
if (_.contains(haystack, needle)) {
|
|
105
|
+
return options.fn(this);
|
|
163
106
|
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
164
109
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
return buffer;
|
|
174
|
-
}
|
|
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); data = data || {};
|
|
117
|
+
var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this;
|
|
175
118
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
185
|
-
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
186
|
-
buffer += escapeExpression(stack1)
|
|
187
|
-
+ "\"";
|
|
188
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
189
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
190
|
-
buffer += ">\n ";
|
|
191
|
-
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
|
|
192
|
-
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
193
|
-
buffer += "\n <span class=\"label\">";
|
|
194
|
-
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
195
|
-
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
196
|
-
buffer += escapeExpression(stack1)
|
|
197
|
-
+ "</span>\n</button>\n";
|
|
198
|
-
return buffer;
|
|
199
|
-
});
|
|
200
|
-
function buttonTpl(data, options, asString) {
|
|
201
|
-
var html = Template(data, options);
|
|
202
|
-
return (asString || true) ? html : $(html);
|
|
119
|
+
function program1(depth0,data) {
|
|
120
|
+
|
|
121
|
+
var buffer = "", stack1, helper;
|
|
122
|
+
buffer += "btn-";
|
|
123
|
+
if (helper = helpers.type) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
124
|
+
else { helper = (depth0 && depth0.type); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
125
|
+
buffer += escapeExpression(stack1);
|
|
126
|
+
return buffer;
|
|
203
127
|
}
|
|
204
128
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
*
|
|
211
|
-
* This program is distributed in the hope that it will be useful,
|
|
212
|
-
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
213
|
-
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
214
|
-
* GNU General Public License for more details.
|
|
215
|
-
*
|
|
216
|
-
* You should have received a copy of the GNU General Public License
|
|
217
|
-
* along with this program; if not, write to the Free Software
|
|
218
|
-
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
219
|
-
*
|
|
220
|
-
* Copyright (c) 2017 (original work) Open Assessment Technologies SA ;
|
|
221
|
-
*/
|
|
222
|
-
/**
|
|
223
|
-
* Some default config
|
|
224
|
-
* @type {Object}
|
|
225
|
-
*/
|
|
129
|
+
function program3(depth0,data) {
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
return " small";
|
|
133
|
+
}
|
|
226
134
|
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
* @property {String} [type] - The type of button to build
|
|
237
|
-
* @property {Boolean} [small] - Whether build a small button (default: true)
|
|
238
|
-
* @property {String} [cls] - An additional CSS class name
|
|
239
|
-
*/
|
|
135
|
+
function program5(depth0,data) {
|
|
136
|
+
|
|
137
|
+
var buffer = "", stack1, helper;
|
|
138
|
+
buffer += " ";
|
|
139
|
+
if (helper = helpers.cls) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
140
|
+
else { helper = (depth0 && depth0.cls); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
141
|
+
buffer += escapeExpression(stack1);
|
|
142
|
+
return buffer;
|
|
143
|
+
}
|
|
240
144
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
* type: 'info'
|
|
252
|
-
* })
|
|
253
|
-
* .on('click', function() {
|
|
254
|
-
* // do something
|
|
255
|
-
* })
|
|
256
|
-
* .render(container);
|
|
257
|
-
*
|
|
258
|
-
* // button with handling of async action
|
|
259
|
-
* const button = buttonFactory({
|
|
260
|
-
* id: 'foo',
|
|
261
|
-
* label: 'Foo',
|
|
262
|
-
* title: 'Foo Bar',
|
|
263
|
-
* icon: 'globe',
|
|
264
|
-
* type: 'info'
|
|
265
|
-
* })
|
|
266
|
-
* .before('click', function(){
|
|
267
|
-
* this.disable();
|
|
268
|
-
* })
|
|
269
|
-
* .on('click', function() {
|
|
270
|
-
* return new Promise(resolve => {
|
|
271
|
-
* // do something
|
|
272
|
-
* resolve();
|
|
273
|
-
* });
|
|
274
|
-
* })
|
|
275
|
-
* .after('click', function(){
|
|
276
|
-
* this.enable();
|
|
277
|
-
* })
|
|
278
|
-
* .render(container);
|
|
279
|
-
*
|
|
280
|
-
* @param {buttonConfig} config
|
|
281
|
-
* @param {String} config.id - The identifier of the button
|
|
282
|
-
* @param {String} config.label - The caption of the button
|
|
283
|
-
* @param {String} [config.title] - An optional tooltip for the button
|
|
284
|
-
* @param {String} [config.icon] - An optional icon for the button
|
|
285
|
-
* @param {String} [config.type] - The type of button to build
|
|
286
|
-
* @param {Boolean} [config.small] - Whether build a small button (default: true)
|
|
287
|
-
* @param {String} [config.cls] - An additional CSS class name
|
|
288
|
-
* @returns {button}
|
|
289
|
-
* @fires click - When the button is clicked
|
|
290
|
-
* @fires ready - When the button is ready to work
|
|
291
|
-
*/
|
|
145
|
+
function program7(depth0,data) {
|
|
146
|
+
|
|
147
|
+
var buffer = "", stack1, helper;
|
|
148
|
+
buffer += " title=\"";
|
|
149
|
+
if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
150
|
+
else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
151
|
+
buffer += escapeExpression(stack1)
|
|
152
|
+
+ "\"";
|
|
153
|
+
return buffer;
|
|
154
|
+
}
|
|
292
155
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
156
|
+
function program9(depth0,data) {
|
|
157
|
+
|
|
158
|
+
var buffer = "", stack1, helper;
|
|
159
|
+
buffer += "<span class=\"icon icon-";
|
|
160
|
+
if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
161
|
+
else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
162
|
+
buffer += escapeExpression(stack1)
|
|
163
|
+
+ "\"></span>";
|
|
164
|
+
return buffer;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
buffer += "<button class=\"";
|
|
168
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.type), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
|
|
169
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
170
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.small), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
|
|
171
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
172
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.cls), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
|
|
173
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
174
|
+
buffer += "\" data-control=\"";
|
|
175
|
+
if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
176
|
+
else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
177
|
+
buffer += escapeExpression(stack1)
|
|
178
|
+
+ "\"";
|
|
179
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
|
|
180
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
181
|
+
buffer += ">\n ";
|
|
182
|
+
stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
|
|
183
|
+
if(stack1 || stack1 === 0) { buffer += stack1; }
|
|
184
|
+
buffer += "\n <span class=\"label\">";
|
|
185
|
+
if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
|
|
186
|
+
else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
|
|
187
|
+
buffer += escapeExpression(stack1)
|
|
188
|
+
+ "</span>\n</button>\n";
|
|
189
|
+
return buffer;
|
|
190
|
+
});
|
|
191
|
+
function buttonTpl(data, options, asString) {
|
|
192
|
+
var html = Template(data, options);
|
|
193
|
+
return (asString || true) ? html : $(html);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/**
|
|
197
|
+
* This program is free software; you can redistribute it and/or
|
|
198
|
+
* modify it under the terms of the GNU General Public License
|
|
199
|
+
* as published by the Free Software Foundation; under version 2
|
|
200
|
+
* of the License (non-upgradable).
|
|
201
|
+
*
|
|
202
|
+
* This program is distributed in the hope that it will be useful,
|
|
203
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
204
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
205
|
+
* GNU General Public License for more details.
|
|
206
|
+
*
|
|
207
|
+
* You should have received a copy of the GNU General Public License
|
|
208
|
+
* along with this program; if not, write to the Free Software
|
|
209
|
+
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
210
|
+
*
|
|
211
|
+
* Copyright (c) 2017 (original work) Open Assessment Technologies SA ;
|
|
212
|
+
*/
|
|
213
|
+
/**
|
|
214
|
+
* Some default config
|
|
215
|
+
* @type {Object}
|
|
216
|
+
*/
|
|
302
217
|
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
218
|
+
var defaults = {
|
|
219
|
+
small: true
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* @typedef {Object} buttonConfig Defines the config entries available to setup a button
|
|
223
|
+
* @property {String} id - The identifier of the button
|
|
224
|
+
* @property {String} label - The caption of the button
|
|
225
|
+
* @property {String} [title] - An optional tooltip for the button
|
|
226
|
+
* @property {String} [icon] - An optional icon for the button
|
|
227
|
+
* @property {String} [type] - The type of button to build
|
|
228
|
+
* @property {Boolean} [small] - Whether build a small button (default: true)
|
|
229
|
+
* @property {String} [cls] - An additional CSS class name
|
|
230
|
+
*/
|
|
231
|
+
|
|
232
|
+
/**
|
|
233
|
+
* Builds a simple button component.
|
|
234
|
+
*
|
|
235
|
+
* @example
|
|
236
|
+
* // button with simple action
|
|
237
|
+
* const button = buttonFactory({
|
|
238
|
+
* id: 'foo',
|
|
239
|
+
* label: 'Foo',
|
|
240
|
+
* title: 'Foo Bar',
|
|
241
|
+
* icon: 'globe',
|
|
242
|
+
* type: 'info'
|
|
243
|
+
* })
|
|
244
|
+
* .on('click', function() {
|
|
245
|
+
* // do something
|
|
246
|
+
* })
|
|
247
|
+
* .render(container);
|
|
248
|
+
*
|
|
249
|
+
* // button with handling of async action
|
|
250
|
+
* const button = buttonFactory({
|
|
251
|
+
* id: 'foo',
|
|
252
|
+
* label: 'Foo',
|
|
253
|
+
* title: 'Foo Bar',
|
|
254
|
+
* icon: 'globe',
|
|
255
|
+
* type: 'info'
|
|
256
|
+
* })
|
|
257
|
+
* .before('click', function(){
|
|
258
|
+
* this.disable();
|
|
259
|
+
* })
|
|
260
|
+
* .on('click', function() {
|
|
261
|
+
* return new Promise(resolve => {
|
|
262
|
+
* // do something
|
|
263
|
+
* resolve();
|
|
264
|
+
* });
|
|
265
|
+
* })
|
|
266
|
+
* .after('click', function(){
|
|
267
|
+
* this.enable();
|
|
268
|
+
* })
|
|
269
|
+
* .render(container);
|
|
270
|
+
*
|
|
271
|
+
* @param {buttonConfig} config
|
|
272
|
+
* @param {String} config.id - The identifier of the button
|
|
273
|
+
* @param {String} config.label - The caption of the button
|
|
274
|
+
* @param {String} [config.title] - An optional tooltip for the button
|
|
275
|
+
* @param {String} [config.icon] - An optional icon for the button
|
|
276
|
+
* @param {String} [config.type] - The type of button to build
|
|
277
|
+
* @param {Boolean} [config.small] - Whether build a small button (default: true)
|
|
278
|
+
* @param {String} [config.cls] - An additional CSS class name
|
|
279
|
+
* @returns {button}
|
|
280
|
+
* @fires click - When the button is clicked
|
|
281
|
+
* @fires ready - When the button is ready to work
|
|
282
|
+
*/
|
|
283
|
+
|
|
284
|
+
function buttonFactory(config) {
|
|
285
|
+
return componentFactory({
|
|
286
|
+
/**
|
|
287
|
+
* Gets the identifier of the button
|
|
288
|
+
* @returns {String}
|
|
289
|
+
*/
|
|
290
|
+
getId: function getId() {
|
|
291
|
+
return this.getConfig().id;
|
|
292
|
+
}
|
|
293
|
+
}, defaults).setTemplate(buttonTpl) // renders the component
|
|
294
|
+
.on('render', function onButtonRender() {
|
|
295
|
+
var _this = this;
|
|
296
|
+
|
|
297
|
+
this.getElement().on('click', function (e) {
|
|
298
|
+
e.preventDefault();
|
|
314
299
|
/**
|
|
315
|
-
* @event
|
|
300
|
+
* @event click
|
|
301
|
+
* @param {String} buttonId
|
|
316
302
|
*/
|
|
317
303
|
|
|
318
|
-
|
|
319
|
-
})
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
}
|
|
304
|
+
_this.trigger('click', _this.getId());
|
|
305
|
+
});
|
|
306
|
+
/**
|
|
307
|
+
* @event ready
|
|
308
|
+
*/
|
|
309
|
+
|
|
310
|
+
this.trigger('ready');
|
|
311
|
+
}) // take care of the disable state
|
|
312
|
+
.on('disable', function onButtonDisable() {
|
|
313
|
+
this.getElement().prop('disabled', true);
|
|
314
|
+
}).on('enable', function onButtonEnable() {
|
|
315
|
+
this.getElement().prop('disabled', false);
|
|
316
|
+
}).init(config);
|
|
317
|
+
}
|
|
326
318
|
|
|
327
|
-
|
|
319
|
+
return buttonFactory;
|
|
328
320
|
|
|
329
321
|
});
|