@oat-sa/tao-core-ui 1.57.0 → 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.
Files changed (171) hide show
  1. package/dist/actionbar.js +386 -395
  2. package/dist/adder.js +21 -19
  3. package/dist/animable/absorbable/absorbable.js +204 -213
  4. package/dist/animable/absorbable/css/absorb.css +1 -0
  5. package/dist/animable/absorbable/css/absorb.css.map +1 -1
  6. package/dist/animable/pulsable/pulsable.js +168 -177
  7. package/dist/autocomplete/css/autocomplete.css +1 -0
  8. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  9. package/dist/autocomplete.js +68 -66
  10. package/dist/badge/badge.js +188 -197
  11. package/dist/badge/css/badge.css +1 -0
  12. package/dist/badge/css/badge.css.map +1 -1
  13. package/dist/breadcrumbs.js +275 -284
  14. package/dist/btngrouper.js +5 -5
  15. package/dist/bulkActionPopup.js +490 -495
  16. package/dist/button.js +283 -291
  17. package/dist/cascadingComboBox.js +249 -258
  18. package/dist/ckeditor/ckConfigurator.js +42 -20
  19. package/dist/ckeditor/dtdHandler.js +11 -9
  20. package/dist/class/selector.js +441 -450
  21. package/dist/component/resizable.js +1 -1
  22. package/dist/component/windowed.js +285 -294
  23. package/dist/component.js +419 -428
  24. package/dist/contextualPopup.js +417 -426
  25. package/dist/dashboard.js +300 -309
  26. package/dist/datalist.js +753 -762
  27. package/dist/datatable/filterStrategy/multiple.js +1 -1
  28. package/dist/datatable/filterStrategy/single.js +1 -1
  29. package/dist/datatable.js +1527 -1550
  30. package/dist/dateRange/dateRange.js +393 -402
  31. package/dist/datetime/picker.js +665 -672
  32. package/dist/deleter.js +368 -377
  33. package/dist/destination/selector.js +286 -295
  34. package/dist/dialog/alert.js +3 -3
  35. package/dist/dialog/confirm.js +1 -1
  36. package/dist/dialog/confirmDelete.js +216 -225
  37. package/dist/dialog.js +650 -654
  38. package/dist/disabler.js +8 -8
  39. package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +166 -175
  40. package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +518 -527
  41. package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +380 -389
  42. package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +539 -548
  43. package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +369 -378
  44. package/dist/documentViewer/providers/pdfViewer.js +184 -193
  45. package/dist/documentViewer.js +292 -301
  46. package/dist/dropdown.js +383 -392
  47. package/dist/durationer.js +5 -5
  48. package/dist/dynamicComponent.js +597 -598
  49. package/dist/feedback.js +356 -362
  50. package/dist/figure/FigureStateActive.js +117 -108
  51. package/dist/filesender.js +2 -2
  52. package/dist/filter.js +230 -239
  53. package/dist/form/dropdownForm.js +355 -357
  54. package/dist/form/form.js +919 -690
  55. package/dist/form/simpleForm.js +1 -1
  56. package/dist/form/validator/renderer.js +233 -235
  57. package/dist/form/validator/validator.js +257 -189
  58. package/dist/form/widget/definitions.js +1 -1
  59. package/dist/form/widget/providers/checkBox.js +254 -259
  60. package/dist/form/widget/providers/comboBox.js +187 -192
  61. package/dist/form/widget/providers/default.js +8 -9
  62. package/dist/form/widget/providers/hidden.js +170 -179
  63. package/dist/form/widget/providers/hiddenBox.js +262 -267
  64. package/dist/form/widget/providers/radioBox.js +216 -225
  65. package/dist/form/widget/providers/textArea.js +187 -196
  66. package/dist/form/widget/providers/textBox.js +2 -3
  67. package/dist/form/widget/widget.js +473 -475
  68. package/dist/formValidator/formValidator.js +1 -1
  69. package/dist/formValidator/highlighters/message.js +1 -1
  70. package/dist/generis/form/form.js +314 -323
  71. package/dist/generis/validator/validator.js +209 -218
  72. package/dist/generis/widget/checkBox/checkBox.js +218 -227
  73. package/dist/generis/widget/comboBox/comboBox.js +179 -188
  74. package/dist/generis/widget/hiddenBox/hiddenBox.js +220 -229
  75. package/dist/generis/widget/textBox/textBox.js +169 -178
  76. package/dist/generis/widget/widget.js +246 -255
  77. package/dist/groupedComboBox.js +222 -231
  78. package/dist/groupvalidator.js +2 -2
  79. package/dist/highlighter.js +967 -958
  80. package/dist/image/ImgStateActive/helper.js +7 -5
  81. package/dist/image/ImgStateActive/initHelper.js +49 -43
  82. package/dist/image/ImgStateActive/initMediaEditor.js +24 -20
  83. package/dist/image/ImgStateActive/mediaSizer.js +14 -12
  84. package/dist/image/ImgStateActive.js +72 -70
  85. package/dist/incrementer.js +6 -6
  86. package/dist/inplacer.js +6 -6
  87. package/dist/itemButtonList/css/item-button-list.css +1 -0
  88. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  89. package/dist/itemButtonList.js +439 -435
  90. package/dist/keyNavigation/navigableDomElement.js +51 -38
  91. package/dist/keyNavigation/navigator.js +85 -70
  92. package/dist/listbox.js +460 -469
  93. package/dist/liststyler.js +8 -8
  94. package/dist/loadingButton/loadingButton.js +209 -218
  95. package/dist/lock.js +476 -485
  96. package/dist/login/login.js +475 -484
  97. package/dist/maths/calculator/basicCalculator.js +235 -244
  98. package/dist/maths/calculator/calculatorComponent.js +3 -3
  99. package/dist/maths/calculator/core/board.js +772 -781
  100. package/dist/maths/calculator/core/expression.js +476 -485
  101. package/dist/maths/calculator/core/labels.js +228 -237
  102. package/dist/maths/calculator/core/tokenizer.js +1 -1
  103. package/dist/maths/calculator/core/tokens.js +163 -170
  104. package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +244 -253
  105. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +279 -288
  106. package/dist/maths/calculator/scientificCalculator.js +327 -336
  107. package/dist/mediaEditor/mediaEditorComponent.js +238 -245
  108. package/dist/mediaEditor/plugins/mediaAlignment/helper.js +7 -7
  109. package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +229 -235
  110. package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +580 -589
  111. package/dist/mediaplayer/players/html5.js +666 -675
  112. package/dist/mediaplayer/players/youtube.js +419 -424
  113. package/dist/mediaplayer/support.js +11 -10
  114. package/dist/mediaplayer/utils/reminder.js +14 -13
  115. package/dist/mediaplayer/utils/timeObserver.js +10 -11
  116. package/dist/mediaplayer/youtubeManager.js +164 -145
  117. package/dist/mediaplayer.js +1565 -1520
  118. package/dist/mediasizer.js +669 -678
  119. package/dist/modal.js +10 -17
  120. package/dist/pageSizeSelector.js +219 -228
  121. package/dist/pagination/providers/pages.js +280 -289
  122. package/dist/pagination/providers/simple.js +192 -201
  123. package/dist/previewer.js +30 -30
  124. package/dist/progressbar.js +4 -4
  125. package/dist/report.js +347 -356
  126. package/dist/resource/filters.js +271 -280
  127. package/dist/resource/list.js +1264 -1273
  128. package/dist/resource/selector.js +865 -874
  129. package/dist/resource/tree.js +1483 -1492
  130. package/dist/resourcemgr/fileBrowser.js +564 -569
  131. package/dist/resourcemgr/filePreview.js +16 -16
  132. package/dist/resourcemgr/fileSelector.js +515 -524
  133. package/dist/resourcemgr/util/updatePermissions.js +2 -2
  134. package/dist/resourcemgr.js +306 -315
  135. package/dist/searchModal/advancedSearch.js +796 -767
  136. package/dist/searchModal.js +597 -549
  137. package/dist/switch/switch.js +298 -307
  138. package/dist/tabs.js +598 -575
  139. package/dist/taskQueue/status.js +312 -321
  140. package/dist/taskQueue/table.js +375 -384
  141. package/dist/taskQueue/taskQueueModel.js +488 -472
  142. package/dist/taskQueueButton/taskable.js +264 -273
  143. package/dist/taskQueueButton/treeButton.js +189 -198
  144. package/dist/themeLoader.js +24 -23
  145. package/dist/themes.js +1 -1
  146. package/dist/toggler.js +3 -3
  147. package/dist/tooltip.js +295 -304
  148. package/dist/transformer.js +2 -2
  149. package/dist/tristateCheckboxGroup.js +311 -320
  150. package/dist/uploader.js +687 -696
  151. package/dist/validator/Report.js +1 -1
  152. package/dist/validator/Validator.js +3 -3
  153. package/dist/validator/validators.js +9 -9
  154. package/dist/validator.js +240 -230
  155. package/dist/waitForMedia.js +1 -1
  156. package/package.json +3 -3
  157. package/scss/ckeditor/skins/tao/scss/inc/_menu.scss +51 -27
  158. package/scss/ckeditor/skins/tao/scss/inc/_panel.scss +16 -5
  159. package/scss/ckeditor/skins/tao/scss/inc/_richcombo.scss +0 -2
  160. package/scss/ckeditor/skins/tao/scss/inc/_toolbar.scss +15 -3
  161. package/src/animable/absorbable/css/absorb.css +1 -0
  162. package/src/animable/absorbable/css/absorb.css.map +1 -1
  163. package/src/autocomplete/css/autocomplete.css +1 -0
  164. package/src/autocomplete/css/autocomplete.css.map +1 -1
  165. package/src/badge/css/badge.css +1 -0
  166. package/src/badge/css/badge.css.map +1 -1
  167. package/src/ckeditor/ckConfigurator.js +24 -1
  168. package/src/itemButtonList/css/item-button-list.css +1 -0
  169. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  170. package/scss/.DS_Store +0 -0
  171. package/src/.DS_Store +0 -0
package/dist/actionbar.js CHANGED
@@ -1,456 +1,447 @@
1
1
  define(['jquery', 'lodash', 'ui/component', 'handlebars', 'i18n', 'lib/dompurify/purify'], function ($$1, _, component, Handlebars, __, DOMPurify) { 'use strict';
2
2
 
3
- $$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
4
- _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
5
- component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
6
- Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
7
- __ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
8
- DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
9
-
3
+ $$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
4
+ _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
5
+ component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
6
+ Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
7
+ __ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
8
+ DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
9
+
10
+ function _typeof(obj) {
11
+ "@babel/helpers - typeof";
12
+
13
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
14
+ return typeof obj;
15
+ } : function (obj) {
16
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
17
+ }, _typeof(obj);
18
+ }
19
+
20
+ function Helpers0 (hb) {
21
+ //register a i18n helper
22
+ hb.registerHelper('__', function (key) {
23
+ return __(key);
24
+ });
10
25
  /**
11
- * This program is free software; you can redistribute it and/or
12
- * modify it under the terms of the GNU General Public License
13
- * as published by the Free Software Foundation; under version 2
14
- * of the License (non-upgradable).
15
- *
16
- * This program is distributed in the hope that it will be useful,
17
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
18
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
- * GNU General Public License for more details.
20
- *
21
- * You should have received a copy of the GNU General Public License
22
- * along with this program; if not, write to the Free Software
23
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
24
- *
25
- * Copyright (c) 2013-2019 (original work) Open Assessment Technologies SA (under the project TAO-PRODUCT);
26
- *
26
+ * Register dompurify helper
27
27
  *
28
+ * https://github.com/cure53/DOMPurify
29
+ * with config SAFE_FOR_TEMPLATES: true
30
+ * to make output safe for template systems
28
31
  */
29
- function Helpers0 (hb) {
30
- //register a i18n helper
31
- hb.registerHelper('__', function (key) {
32
- return __(key);
33
- });
34
- /**
35
- * Register dompurify helper
36
- *
37
- * https://github.com/cure53/DOMPurify
38
- * with config SAFE_FOR_TEMPLATES: true
39
- * to make output safe for template systems
40
- */
41
-
42
- hb.registerHelper('dompurify', function (context) {
43
- return DOMPurify.sanitize(context);
44
- });
45
- /**
46
- * Register join helper
47
- *
48
- * Example :
49
- * var values = {a:v1, b:v2, c:v3};
50
- * Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
51
- * Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
52
- */
53
-
54
- hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
55
- var fragments = [];
56
- keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
57
- fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
58
- wrapper = typeof wrapper === 'string' ? wrapper : '"';
59
-
60
- _.forIn(arr, function (value, key) {
61
- var fragment = '';
62
-
63
- if (value !== null || value !== undefined) {
64
- if (typeof value === 'boolean') {
65
- value = value ? 'true' : 'false';
66
- } else if (typeof value === 'object') {
67
- value = _.values(value).join(' ');
68
- }
69
- } else {
70
- value = '';
71
- }
72
32
 
73
- if (keyValueGlue !== undefined) {
74
- fragment += key + keyValueGlue;
75
- }
33
+ hb.registerHelper('dompurify', function (context) {
34
+ return DOMPurify.sanitize(context);
35
+ });
36
+ /**
37
+ * Register join helper
38
+ *
39
+ * Example :
40
+ * var values = {a:v1, b:v2, c:v3};
41
+ * Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
42
+ * Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
43
+ */
76
44
 
77
- fragment += wrapper + value + wrapper;
78
- fragments.push(fragment);
79
- });
45
+ hb.registerHelper('join', function (arr, keyValueGlue, fragmentGlue, wrapper) {
46
+ var fragments = [];
47
+ keyValueGlue = typeof keyValueGlue === 'string' ? keyValueGlue : undefined;
48
+ fragmentGlue = typeof fragmentGlue === 'string' ? fragmentGlue : ' ';
49
+ wrapper = typeof wrapper === 'string' ? wrapper : '"';
80
50
 
81
- return fragments.join(fragmentGlue);
82
- }); //register a classic "for loop" helper
83
- //it also adds a local variable "i" as the index in each iteration loop
51
+ _.forIn(arr, function (value, key) {
52
+ var fragment = '';
84
53
 
85
- hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
86
- var ret = '';
87
- startIndex = parseInt(startIndex);
88
- stopIndex = parseInt(stopIndex);
89
- increment = parseInt(increment);
54
+ if (value !== null || value !== undefined) {
55
+ if (typeof value === 'boolean') {
56
+ value = value ? 'true' : 'false';
57
+ } else if (_typeof(value) === 'object') {
58
+ value = _.values(value).join(' ');
59
+ }
60
+ } else {
61
+ value = '';
62
+ }
90
63
 
91
- for (var i = startIndex; i < stopIndex; i += increment) {
92
- ret += options.fn(_.extend({}, this, {
93
- i: i
94
- }));
64
+ if (keyValueGlue !== undefined) {
65
+ fragment += key + keyValueGlue;
95
66
  }
96
67
 
97
- return ret;
68
+ fragment += wrapper + value + wrapper;
69
+ fragments.push(fragment);
98
70
  });
99
- hb.registerHelper('equal', function (var1, var2, options) {
100
- if (var1 == var2) {
101
- return options.fn(this);
102
- } else {
103
- return options.inverse(this);
104
- }
105
- }); // register a "get property" helper
106
- // it gets the named property from the provided context
107
71
 
108
- hb.registerHelper('property', function (name, context) {
109
- return context[name] || '';
110
- }); // register an 'includes' helper
111
- // it checks if value is in array
72
+ return fragments.join(fragmentGlue);
73
+ }); //register a classic "for loop" helper
74
+ //it also adds a local variable "i" as the index in each iteration loop
112
75
 
113
- hb.registerHelper('includes', function (haystack, needle, options) {
114
- if (_.contains(haystack, needle)) {
115
- return options.fn(this);
116
- }
117
- });
118
- }
76
+ hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
77
+ var ret = '';
78
+ startIndex = parseInt(startIndex);
79
+ stopIndex = parseInt(stopIndex);
80
+ increment = parseInt(increment);
119
81
 
120
- if (!Helpers0.__initialized) {
121
- Helpers0(Handlebars);
122
- Helpers0.__initialized = true;
123
- }
124
- var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
125
- this.compilerInfo = [4,'>= 1.0.0'];
126
- helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
127
- var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
128
-
129
- function program1(depth0,data) {
130
-
131
-
132
- return "vertical-action-bar";
82
+ for (var i = startIndex; i < stopIndex; i += increment) {
83
+ ret += options.fn(_.extend({}, this, {
84
+ i: i
85
+ }));
133
86
  }
134
87
 
135
- function program3(depth0,data) {
136
-
137
-
138
- return "horizontal-action-bar";
88
+ return ret;
89
+ });
90
+ hb.registerHelper('equal', function (var1, var2, options) {
91
+ if (var1 == var2) {
92
+ return options.fn(this);
93
+ } else {
94
+ return options.inverse(this);
139
95
  }
96
+ }); // register a "get property" helper
97
+ // it gets the named property from the provided context
140
98
 
141
- function program5(depth0,data) {
142
-
143
- var buffer = "", stack1, helper;
144
- buffer += "\n <button class=\"btn-info small ";
145
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.conditional), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
146
- if(stack1 || stack1 === 0) { buffer += stack1; }
147
- buffer += "\" data-control=\"";
148
- if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
149
- else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
150
- buffer += escapeExpression(stack1)
151
- + "\" ";
152
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
153
- if(stack1 || stack1 === 0) { buffer += stack1; }
154
- buffer += ">\n ";
155
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});
156
- if(stack1 || stack1 === 0) { buffer += stack1; }
157
- buffer += "\n ";
158
- if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
159
- else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
160
- buffer += escapeExpression(stack1)
161
- + "\n </button>\n ";
162
- return buffer;
163
- }
164
- function program6(depth0,data) {
165
-
166
-
167
- return " conditional hidden";
168
- }
99
+ hb.registerHelper('property', function (name, context) {
100
+ return context[name] || '';
101
+ }); // register an 'includes' helper
102
+ // it checks if value is in array
169
103
 
170
- function program8(depth0,data) {
171
-
172
- var buffer = "", stack1, helper;
173
- buffer += " title=\"";
174
- if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
175
- else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
176
- buffer += escapeExpression(stack1)
177
- + "\"";
178
- return buffer;
104
+ hb.registerHelper('includes', function (haystack, needle, options) {
105
+ if (_.contains(haystack, needle)) {
106
+ return options.fn(this);
179
107
  }
108
+ });
109
+ }
110
+
111
+ if (!Helpers0.__initialized) {
112
+ Helpers0(Handlebars);
113
+ Helpers0.__initialized = true;
114
+ }
115
+ var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
116
+ this.compilerInfo = [4,'>= 1.0.0'];
117
+ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
118
+ var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
119
+
120
+ function program1(depth0,data) {
121
+
122
+
123
+ return "vertical-action-bar";
124
+ }
180
125
 
181
- function program10(depth0,data) {
182
-
183
- var buffer = "", stack1, helper;
184
- buffer += "<span class=\"icon icon-";
185
- if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
186
- else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
187
- buffer += escapeExpression(stack1)
188
- + "\"></span>";
189
- return buffer;
190
- }
126
+ function program3(depth0,data) {
127
+
128
+
129
+ return "horizontal-action-bar";
130
+ }
191
131
 
192
- buffer += "<aside class=\"action-bar ";
193
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.vertical), {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
194
- if(stack1 || stack1 === 0) { buffer += stack1; }
195
- buffer += " clearfix\">\n ";
196
- stack1 = helpers.each.call(depth0, (depth0 && depth0.buttons), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
197
- if(stack1 || stack1 === 0) { buffer += stack1; }
198
- buffer += "\n</aside>\n";
199
- return buffer;
200
- });
201
- function mainTpl(data, options, asString) {
202
- var html = Template(data, options);
203
- return (asString || true) ? html : $(html);
132
+ function program5(depth0,data) {
133
+
134
+ var buffer = "", stack1, helper;
135
+ buffer += "\n <button class=\"btn-info small ";
136
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.conditional), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
137
+ if(stack1 || stack1 === 0) { buffer += stack1; }
138
+ buffer += "\" data-control=\"";
139
+ if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
140
+ else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
141
+ buffer += escapeExpression(stack1)
142
+ + "\" ";
143
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
144
+ if(stack1 || stack1 === 0) { buffer += stack1; }
145
+ buffer += ">\n ";
146
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(10, program10, data),data:data});
147
+ if(stack1 || stack1 === 0) { buffer += stack1; }
148
+ buffer += "\n ";
149
+ if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
150
+ else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
151
+ buffer += escapeExpression(stack1)
152
+ + "\n </button>\n ";
153
+ return buffer;
154
+ }
155
+ function program6(depth0,data) {
156
+
157
+
158
+ return " conditional hidden";
159
+ }
160
+
161
+ function program8(depth0,data) {
162
+
163
+ var buffer = "", stack1, helper;
164
+ buffer += " title=\"";
165
+ if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
166
+ else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
167
+ buffer += escapeExpression(stack1)
168
+ + "\"";
169
+ return buffer;
204
170
  }
205
171
 
172
+ function program10(depth0,data) {
173
+
174
+ var buffer = "", stack1, helper;
175
+ buffer += "<span class=\"icon icon-";
176
+ if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
177
+ else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
178
+ buffer += escapeExpression(stack1)
179
+ + "\"></span>";
180
+ return buffer;
181
+ }
182
+
183
+ buffer += "<aside class=\"action-bar ";
184
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.vertical), {hash:{},inverse:self.program(3, program3, data),fn:self.program(1, program1, data),data:data});
185
+ if(stack1 || stack1 === 0) { buffer += stack1; }
186
+ buffer += " clearfix\">\n ";
187
+ stack1 = helpers.each.call(depth0, (depth0 && depth0.buttons), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
188
+ if(stack1 || stack1 === 0) { buffer += stack1; }
189
+ buffer += "\n</aside>\n";
190
+ return buffer;
191
+ });
192
+ function mainTpl(data, options, asString) {
193
+ var html = Template(data, options);
194
+ return (asString || true) ? html : $(html);
195
+ }
196
+
197
+ /**
198
+ * This program is free software; you can redistribute it and/or
199
+ * modify it under the terms of the GNU General Public License
200
+ * as published by the Free Software Foundation; under version 2
201
+ * of the License (non-upgradable).
202
+ *
203
+ * This program is distributed in the hope that it will be useful,
204
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
205
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
206
+ * GNU General Public License for more details.
207
+ *
208
+ * You should have received a copy of the GNU General Public License
209
+ * along with this program; if not, write to the Free Software
210
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
211
+ *
212
+ * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;
213
+ */
214
+ /**
215
+ * Defines an action bar
216
+ * @type {Object}
217
+ */
218
+
219
+ var actionbar = {
206
220
  /**
207
- * This program is free software; you can redistribute it and/or
208
- * modify it under the terms of the GNU General Public License
209
- * as published by the Free Software Foundation; under version 2
210
- * of the License (non-upgradable).
211
- *
212
- * This program is distributed in the hope that it will be useful,
213
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
214
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
215
- * GNU General Public License for more details.
216
- *
217
- * You should have received a copy of the GNU General Public License
218
- * along with this program; if not, write to the Free Software
219
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
220
- *
221
- * Copyright (c) 2016 (original work) Open Assessment Technologies SA ;
221
+ * Gets the definition of a button
222
+ * @param {String} id - The identifier of the button
223
+ * @returns {Object|undefined}
222
224
  */
225
+ getButton: function getButton(id) {
226
+ if (this.is('rendered')) {
227
+ return this.buttons[id];
228
+ }
229
+ },
230
+
223
231
  /**
224
- * Defines an action bar
225
- * @type {Object}
232
+ * Gets the DOM element of a button
233
+ * @param {String} id - The identifier of the button
234
+ * @returns {jQuery|undefined}
226
235
  */
236
+ getButtonElement: function getButtonElement(id) {
237
+ if (this.is('rendered')) {
238
+ return this.controls.$buttons[id];
239
+ }
240
+ },
227
241
 
228
- var actionbar = {
229
- /**
230
- * Gets the definition of a button
231
- * @param {String} id - The identifier of the button
232
- * @returns {Object|undefined}
233
- */
234
- getButton: function getButton(id) {
235
- if (this.is('rendered')) {
236
- return this.buttons[id];
237
- }
238
- },
239
-
240
- /**
241
- * Gets the DOM element of a button
242
- * @param {String} id - The identifier of the button
243
- * @returns {jQuery|undefined}
244
- */
245
- getButtonElement: function getButtonElement(id) {
246
- if (this.is('rendered')) {
247
- return this.controls.$buttons[id];
248
- }
249
- },
250
-
251
- /**
252
- * Shows a button
253
- * @param {String} id - The identifier of the button
254
- * @returns {actionbar}
255
- */
256
- showButton: function showButton(id) {
257
- var $btn = this.getButtonElement(id);
258
-
259
- if ($btn) {
260
- $btn.removeClass('hidden');
261
- }
242
+ /**
243
+ * Shows a button
244
+ * @param {String} id - The identifier of the button
245
+ * @returns {actionbar}
246
+ */
247
+ showButton: function showButton(id) {
248
+ var $btn = this.getButtonElement(id);
262
249
 
263
- return this;
264
- },
250
+ if ($btn) {
251
+ $btn.removeClass('hidden');
252
+ }
265
253
 
266
- /**
267
- * Hides a button
268
- * @param {String} id - The identifier of the button
269
- * @returns {actionbar}
270
- */
271
- hideButton: function hideButton(id) {
272
- var $btn = this.getButtonElement(id);
254
+ return this;
255
+ },
273
256
 
274
- if ($btn) {
275
- $btn.addClass('hidden');
276
- }
257
+ /**
258
+ * Hides a button
259
+ * @param {String} id - The identifier of the button
260
+ * @returns {actionbar}
261
+ */
262
+ hideButton: function hideButton(id) {
263
+ var $btn = this.getButtonElement(id);
277
264
 
278
- return this;
279
- },
280
-
281
- /**
282
- * Toggles a button according to a condition
283
- * @param {String} id - The identifier of the button
284
- * @param {Boolean} condition - If the condition is `true` the button will be displayed
285
- * @returns {actionbar}
286
- */
287
- toggleButton: function toggleButton(id, condition) {
288
- var $btn = this.getButtonElement(id);
289
-
290
- if ($btn) {
291
- if (undefined !== condition) {
292
- condition = !condition;
293
- }
265
+ if ($btn) {
266
+ $btn.addClass('hidden');
267
+ }
294
268
 
295
- $btn.toggleClass('hidden', condition);
296
- }
269
+ return this;
270
+ },
297
271
 
298
- return this;
299
- },
272
+ /**
273
+ * Toggles a button according to a condition
274
+ * @param {String} id - The identifier of the button
275
+ * @param {Boolean} condition - If the condition is `true` the button will be displayed
276
+ * @returns {actionbar}
277
+ */
278
+ toggleButton: function toggleButton(id, condition) {
279
+ var $btn = this.getButtonElement(id);
300
280
 
301
- /**
302
- * Shows the conditional buttons
303
- * @returns {actionbar}
304
- */
305
- showConditionals: function showConditionals() {
306
- if (this.is('rendered')) {
307
- this.controls.$conditional.removeClass('hidden');
281
+ if ($btn) {
282
+ if (undefined !== condition) {
283
+ condition = !condition;
308
284
  }
309
285
 
310
- return this;
311
- },
312
-
313
- /**
314
- * Hides the conditional buttons
315
- * @returns {actionbar}
316
- */
317
- hideConditionals: function hideConditionals() {
318
- if (this.is('rendered')) {
319
- this.controls.$conditional.addClass('hidden');
320
- }
286
+ $btn.toggleClass('hidden', condition);
287
+ }
321
288
 
322
- return this;
323
- },
324
-
325
- /**
326
- * Toggles the conditional buttons according to a condition
327
- * @param {Boolean} condition - If the condition is `true` the conditional buttons will be displayed
328
- * @returns {actionbar}
329
- */
330
- toggleConditionals: function toggleConditionals(condition) {
331
- if (this.is('rendered')) {
332
- if (undefined !== condition) {
333
- condition = !condition;
334
- }
289
+ return this;
290
+ },
335
291
 
336
- this.controls.$conditional.toggleClass('hidden', condition);
337
- }
292
+ /**
293
+ * Shows the conditional buttons
294
+ * @returns {actionbar}
295
+ */
296
+ showConditionals: function showConditionals() {
297
+ if (this.is('rendered')) {
298
+ this.controls.$conditional.removeClass('hidden');
299
+ }
338
300
 
339
- return this;
340
- },
301
+ return this;
302
+ },
341
303
 
342
- /**
343
- * Shows all the buttons
344
- * @returns {actionbar}
345
- */
346
- showAll: function showAll() {
347
- if (this.is('rendered')) {
348
- this.controls.$all.removeClass('hidden');
349
- }
304
+ /**
305
+ * Hides the conditional buttons
306
+ * @returns {actionbar}
307
+ */
308
+ hideConditionals: function hideConditionals() {
309
+ if (this.is('rendered')) {
310
+ this.controls.$conditional.addClass('hidden');
311
+ }
350
312
 
351
- return this;
352
- },
313
+ return this;
314
+ },
353
315
 
354
- /**
355
- * Hides all the buttons
356
- * @returns {actionbar}
357
- */
358
- hideAll: function hideAll() {
359
- if (this.is('rendered')) {
360
- this.controls.$all.addClass('hidden');
316
+ /**
317
+ * Toggles the conditional buttons according to a condition
318
+ * @param {Boolean} condition - If the condition is `true` the conditional buttons will be displayed
319
+ * @returns {actionbar}
320
+ */
321
+ toggleConditionals: function toggleConditionals(condition) {
322
+ if (this.is('rendered')) {
323
+ if (undefined !== condition) {
324
+ condition = !condition;
361
325
  }
362
326
 
363
- return this;
364
- },
365
-
366
- /**
367
- * Toggles all the buttons according to a condition
368
- * @param {Boolean} condition - If the condition is `true` the buttons will be displayed
369
- * @returns {actionbar}
370
- */
371
- toggleAll: function toggleAll(condition) {
372
- if (this.is('rendered')) {
373
- if (undefined !== condition) {
374
- condition = !condition;
375
- }
327
+ this.controls.$conditional.toggleClass('hidden', condition);
328
+ }
376
329
 
377
- this.controls.$all.toggleClass('hidden', condition);
378
- }
330
+ return this;
331
+ },
379
332
 
380
- return this;
333
+ /**
334
+ * Shows all the buttons
335
+ * @returns {actionbar}
336
+ */
337
+ showAll: function showAll() {
338
+ if (this.is('rendered')) {
339
+ this.controls.$all.removeClass('hidden');
381
340
  }
382
- };
341
+
342
+ return this;
343
+ },
344
+
383
345
  /**
384
- * Builds an instance of the actionbar component
385
- * @param {Object} config
386
- * @param {Array} config.buttons - The list of buttons to display.
387
- * @param {String} config.buttons.id - The id of the button
388
- * @param {String} config.buttons.label - The text displayed in the button
389
- * @param {String} config.buttons.icon - An optional icon displayed in the button
390
- * @param {String} config.buttons.title - An optional tooltip displayed on the button
391
- * @param {Boolean} config.buttons.conditional - The button is hidden by default and must be displayed later
392
- * @param {Function} config.buttons.action - An action called when the button is clicked
393
- * @param {Boolean} [config.vertical] - Displays the action bar vertically
346
+ * Hides all the buttons
394
347
  * @returns {actionbar}
395
- *
396
- * @event init - Emitted when the component is initialized
397
- * @event destroy - Emitted when the component is destroying
398
- * @event render - Emitted when the component is rendered
399
- * @event button - Emitted when a button is clicked
400
- * @event show - Emitted when the component is shown
401
- * @event hide - Emitted when the component is hidden
402
- * @event enable - Emitted when the component is enabled
403
- * @event disable - Emitted when the component is disabled
404
- * @event template - Emitted when the template is changed
405
348
  */
349
+ hideAll: function hideAll() {
350
+ if (this.is('rendered')) {
351
+ this.controls.$all.addClass('hidden');
352
+ }
406
353
 
407
- function actionbarFactory(config) {
408
- return component(actionbar).setTemplate(mainTpl) // uninstalls the component
409
- .on('destroy', function () {
410
- this.buttons = null;
411
- this.controls = null;
412
- }) // renders the component
413
- .on('render', function () {
414
- var self = this;
415
- var $component = this.getElement(); // vertical or horizontal ?
416
-
417
- this.setState('horizontal', $component.hasClass('horizontal-action-bar'));
418
- this.setState('vertical', $component.hasClass('vertical-action-bar')); // get access to all needed placeholders
419
-
420
- this.buttons = {};
421
- this.controls = {
422
- $buttons: {},
423
- $conditional: $component.find('button.conditional'),
424
- $all: $component.find('button')
425
- };
426
-
427
- _.forEach(this.config.buttons, function (button) {
428
- self.buttons[button.id] = button;
429
- self.controls.$buttons[button.id] = $component.find('[data-control="' + button.id + '"]');
430
- }); // click on a button
431
-
432
-
433
- this.$component.on('click', 'button', function (e) {
434
- var $this = $$1(this);
435
- var buttonId = $this.closest('button').data('control');
436
- var button = self.getButton(buttonId);
437
- e.preventDefault();
438
-
439
- if (button && button.action) {
440
- button.action.call(self, buttonId, button);
441
- }
442
- /**
443
- * @event actionbar#button
444
- * @param {String} buttonId
445
- * @param {Object} button
446
- */
354
+ return this;
355
+ },
447
356
 
357
+ /**
358
+ * Toggles all the buttons according to a condition
359
+ * @param {Boolean} condition - If the condition is `true` the buttons will be displayed
360
+ * @returns {actionbar}
361
+ */
362
+ toggleAll: function toggleAll(condition) {
363
+ if (this.is('rendered')) {
364
+ if (undefined !== condition) {
365
+ condition = !condition;
366
+ }
448
367
 
449
- self.trigger('button', buttonId, button);
450
- });
451
- }).init(config);
368
+ this.controls.$all.toggleClass('hidden', condition);
369
+ }
370
+
371
+ return this;
452
372
  }
373
+ };
374
+ /**
375
+ * Builds an instance of the actionbar component
376
+ * @param {Object} config
377
+ * @param {Array} config.buttons - The list of buttons to display.
378
+ * @param {String} config.buttons.id - The id of the button
379
+ * @param {String} config.buttons.label - The text displayed in the button
380
+ * @param {String} config.buttons.icon - An optional icon displayed in the button
381
+ * @param {String} config.buttons.title - An optional tooltip displayed on the button
382
+ * @param {Boolean} config.buttons.conditional - The button is hidden by default and must be displayed later
383
+ * @param {Function} config.buttons.action - An action called when the button is clicked
384
+ * @param {Boolean} [config.vertical] - Displays the action bar vertically
385
+ * @returns {actionbar}
386
+ *
387
+ * @event init - Emitted when the component is initialized
388
+ * @event destroy - Emitted when the component is destroying
389
+ * @event render - Emitted when the component is rendered
390
+ * @event button - Emitted when a button is clicked
391
+ * @event show - Emitted when the component is shown
392
+ * @event hide - Emitted when the component is hidden
393
+ * @event enable - Emitted when the component is enabled
394
+ * @event disable - Emitted when the component is disabled
395
+ * @event template - Emitted when the template is changed
396
+ */
397
+
398
+ function actionbarFactory(config) {
399
+ return component(actionbar).setTemplate(mainTpl) // uninstalls the component
400
+ .on('destroy', function () {
401
+ this.buttons = null;
402
+ this.controls = null;
403
+ }) // renders the component
404
+ .on('render', function () {
405
+ var self = this;
406
+ var $component = this.getElement(); // vertical or horizontal ?
407
+
408
+ this.setState('horizontal', $component.hasClass('horizontal-action-bar'));
409
+ this.setState('vertical', $component.hasClass('vertical-action-bar')); // get access to all needed placeholders
410
+
411
+ this.buttons = {};
412
+ this.controls = {
413
+ $buttons: {},
414
+ $conditional: $component.find('button.conditional'),
415
+ $all: $component.find('button')
416
+ };
417
+
418
+ _.forEach(this.config.buttons, function (button) {
419
+ self.buttons[button.id] = button;
420
+ self.controls.$buttons[button.id] = $component.find('[data-control="' + button.id + '"]');
421
+ }); // click on a button
422
+
423
+
424
+ this.$component.on('click', 'button', function (e) {
425
+ var $this = $$1(this);
426
+ var buttonId = $this.closest('button').data('control');
427
+ var button = self.getButton(buttonId);
428
+ e.preventDefault();
429
+
430
+ if (button && button.action) {
431
+ button.action.call(self, buttonId, button);
432
+ }
433
+ /**
434
+ * @event actionbar#button
435
+ * @param {String} buttonId
436
+ * @param {Object} button
437
+ */
438
+
439
+
440
+ self.trigger('button', buttonId, button);
441
+ });
442
+ }).init(config);
443
+ }
453
444
 
454
- return actionbarFactory;
445
+ return actionbarFactory;
455
446
 
456
447
  });