@oat-sa/tao-core-ui 1.55.0 → 1.57.0

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 (321) hide show
  1. package/dist/actionbar.js +395 -386
  2. package/dist/adder.js +19 -21
  3. package/dist/animable/absorbable/absorbable.js +213 -204
  4. package/dist/animable/absorbable/css/absorb.css +0 -1
  5. package/dist/animable/absorbable/css/absorb.css.map +1 -0
  6. package/dist/animable/pulsable/css/pulse.css.map +1 -0
  7. package/dist/animable/pulsable/pulsable.js +177 -168
  8. package/dist/autocomplete/css/autocomplete.css +0 -1
  9. package/dist/autocomplete/css/autocomplete.css.map +1 -0
  10. package/dist/autocomplete.js +66 -68
  11. package/dist/badge/badge.js +197 -188
  12. package/dist/badge/css/badge.css +0 -1
  13. package/dist/badge/css/badge.css.map +1 -0
  14. package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -0
  15. package/dist/breadcrumbs.js +284 -275
  16. package/dist/btngrouper.js +5 -5
  17. package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -0
  18. package/dist/bulkActionPopup.js +495 -490
  19. package/dist/button.js +291 -283
  20. package/dist/calculator/css/calculator.css.map +1 -0
  21. package/dist/cascadingComboBox.js +258 -249
  22. package/dist/ckeditor/ckConfigurator.js +27 -19
  23. package/dist/ckeditor/dtdHandler.js +9 -11
  24. package/dist/class/css/selector.css.map +1 -0
  25. package/dist/class/selector.js +450 -441
  26. package/dist/component/css/components.css.map +1 -0
  27. package/dist/component/css/windowComponent.css.map +1 -0
  28. package/dist/component/draggable.js +6 -0
  29. package/dist/component/resizable.js +7 -1
  30. package/dist/component/windowed.js +294 -285
  31. package/dist/component.js +428 -419
  32. package/dist/contextualPopup/css/contextualPopup.css.map +1 -0
  33. package/dist/contextualPopup.js +426 -417
  34. package/dist/dashboard/css/dashboard.css.map +1 -0
  35. package/dist/dashboard.js +309 -300
  36. package/dist/datalist/css/datalist.css.map +1 -0
  37. package/dist/datalist.js +762 -753
  38. package/dist/datatable/css/datatable.css.map +1 -0
  39. package/dist/datatable/filterStrategy/multiple.js +1 -1
  40. package/dist/datatable/filterStrategy/single.js +1 -1
  41. package/dist/datatable.js +1550 -1527
  42. package/dist/dateRange/css/dateRange.css.map +1 -0
  43. package/dist/dateRange/dateRange.js +402 -393
  44. package/dist/datetime/css/picker.css.map +1 -0
  45. package/dist/datetime/picker.js +672 -665
  46. package/dist/deleter.js +377 -368
  47. package/dist/destination/css/selector.css.map +1 -0
  48. package/dist/destination/selector.js +295 -286
  49. package/dist/dialog/alert.js +3 -3
  50. package/dist/dialog/confirm.js +1 -1
  51. package/dist/dialog/confirmDelete.js +225 -216
  52. package/dist/dialog.js +654 -650
  53. package/dist/disabler.js +8 -8
  54. package/dist/documentViewer/css/documentViewer.css.map +1 -0
  55. package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +175 -166
  56. package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +527 -518
  57. package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +389 -380
  58. package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +548 -539
  59. package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +378 -369
  60. package/dist/documentViewer/providers/pdfViewer.js +193 -184
  61. package/dist/documentViewer.js +301 -292
  62. package/dist/dropdown/css/dropdown.css.map +1 -0
  63. package/dist/dropdown.js +392 -383
  64. package/dist/durationer.js +5 -5
  65. package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -0
  66. package/dist/dynamicComponent.js +598 -597
  67. package/dist/feedback.js +362 -356
  68. package/dist/figure/FigureStateActive.js +661 -0
  69. package/dist/filesender.js +2 -2
  70. package/dist/filter.js +239 -230
  71. package/dist/form/css/dropdownForm.css.map +1 -0
  72. package/dist/form/css/form.css.map +1 -0
  73. package/dist/form/dropdownForm.js +357 -355
  74. package/dist/form/form.js +690 -919
  75. package/dist/form/simpleForm.js +1 -1
  76. package/dist/form/validator/css/validator.css.map +1 -0
  77. package/dist/form/validator/renderer.js +235 -233
  78. package/dist/form/validator/validator.js +189 -257
  79. package/dist/form/widget/css/widget.css.map +1 -0
  80. package/dist/form/widget/definitions.js +1 -1
  81. package/dist/form/widget/providers/checkBox.js +259 -254
  82. package/dist/form/widget/providers/comboBox.js +192 -187
  83. package/dist/form/widget/providers/default.js +9 -8
  84. package/dist/form/widget/providers/hidden.js +179 -170
  85. package/dist/form/widget/providers/hiddenBox.js +267 -262
  86. package/dist/form/widget/providers/radioBox.js +225 -216
  87. package/dist/form/widget/providers/textArea.js +196 -187
  88. package/dist/form/widget/providers/textBox.js +3 -2
  89. package/dist/form/widget/widget.js +475 -473
  90. package/dist/formValidator/formValidator.js +1 -1
  91. package/dist/formValidator/highlighters/message.js +1 -1
  92. package/dist/generis/form/css/form.css.map +1 -0
  93. package/dist/generis/form/form.js +323 -314
  94. package/dist/generis/validator/css/validator.css.map +1 -0
  95. package/dist/generis/validator/validator.js +218 -209
  96. package/dist/generis/widget/checkBox/checkBox.js +227 -218
  97. package/dist/generis/widget/comboBox/comboBox.js +188 -179
  98. package/dist/generis/widget/css/widget.css.map +1 -0
  99. package/dist/generis/widget/hiddenBox/hiddenBox.js +229 -220
  100. package/dist/generis/widget/textBox/textBox.js +178 -169
  101. package/dist/generis/widget/widget.js +255 -246
  102. package/dist/groupedComboBox.js +231 -222
  103. package/dist/groupvalidator.js +2 -2
  104. package/dist/highlighter.js +958 -967
  105. package/dist/image/ImgStateActive/helper.js +41 -0
  106. package/dist/image/ImgStateActive/initHelper.js +81 -31
  107. package/dist/image/ImgStateActive/initMediaEditor.js +58 -13
  108. package/dist/image/ImgStateActive/mediaSizer.js +50 -7
  109. package/dist/image/ImgStateActive.js +108 -54
  110. package/dist/incrementer.js +6 -6
  111. package/dist/inplacer.js +6 -6
  112. package/dist/itemButtonList/css/item-button-list.css +0 -1
  113. package/dist/itemButtonList/css/item-button-list.css.map +1 -0
  114. package/dist/itemButtonList.js +435 -439
  115. package/dist/keyNavigation/navigableDomElement.js +38 -51
  116. package/dist/keyNavigation/navigator.js +70 -85
  117. package/dist/listbox/css/listbox.css.map +1 -0
  118. package/dist/listbox.js +469 -460
  119. package/dist/liststyler.js +8 -8
  120. package/dist/loadingButton/css/button.css.map +1 -0
  121. package/dist/loadingButton/loadingButton.js +218 -209
  122. package/dist/lock.js +485 -476
  123. package/dist/login/login.js +484 -475
  124. package/dist/maths/calculator/basicCalculator.js +244 -235
  125. package/dist/maths/calculator/calculatorComponent.js +3 -3
  126. package/dist/maths/calculator/core/board.js +781 -772
  127. package/dist/maths/calculator/core/expression.js +485 -476
  128. package/dist/maths/calculator/core/labels.js +237 -228
  129. package/dist/maths/calculator/core/tokenizer.js +1 -1
  130. package/dist/maths/calculator/core/tokens.js +170 -163
  131. package/dist/maths/calculator/css/calculator.css.map +1 -0
  132. package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +253 -244
  133. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +288 -279
  134. package/dist/maths/calculator/scientificCalculator.js +336 -327
  135. package/dist/mediaEditor/mediaEditorComponent.js +245 -238
  136. package/dist/mediaEditor/plugins/mediaAlignment/helper.js +14 -9
  137. package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +235 -222
  138. package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +589 -580
  139. package/dist/mediaplayer/css/player.css.map +1 -0
  140. package/dist/mediaplayer/players/html5.js +675 -666
  141. package/dist/mediaplayer/players/youtube.js +424 -419
  142. package/dist/mediaplayer/support.js +10 -11
  143. package/dist/mediaplayer/utils/reminder.js +13 -14
  144. package/dist/mediaplayer/utils/timeObserver.js +11 -10
  145. package/dist/mediaplayer/youtubeManager.js +145 -164
  146. package/dist/mediaplayer.js +1519 -1564
  147. package/dist/mediasizer.js +678 -669
  148. package/dist/modal.js +17 -10
  149. package/dist/pageSizeSelector.js +228 -219
  150. package/dist/pagination/css/pagination.css.map +1 -0
  151. package/dist/pagination/providers/pages.js +289 -280
  152. package/dist/pagination/providers/simple.js +201 -192
  153. package/dist/previewer.js +30 -30
  154. package/dist/progressbar.js +4 -4
  155. package/dist/report.js +356 -347
  156. package/dist/resource/css/selector.css.map +1 -0
  157. package/dist/resource/filters.js +280 -271
  158. package/dist/resource/list.js +1273 -1264
  159. package/dist/resource/selector.js +874 -865
  160. package/dist/resource/tree.js +1491 -1482
  161. package/dist/resourcemgr/css/resourcemgr.css.map +1 -0
  162. package/dist/resourcemgr/fileBrowser.js +569 -564
  163. package/dist/resourcemgr/filePreview.js +16 -16
  164. package/dist/resourcemgr/fileSelector.js +524 -515
  165. package/dist/resourcemgr/util/updatePermissions.js +2 -2
  166. package/dist/resourcemgr.js +315 -306
  167. package/dist/searchModal/advancedSearch.js +767 -796
  168. package/dist/searchModal/css/advancedSearch.css.map +1 -0
  169. package/dist/searchModal/css/searchModal.css.map +1 -0
  170. package/dist/searchModal.js +549 -597
  171. package/dist/switch/css/switch.css.map +1 -0
  172. package/dist/switch/switch.js +307 -298
  173. package/dist/tabs/css/tabs.css.map +1 -0
  174. package/dist/tabs.js +575 -598
  175. package/dist/taskQueue/css/taskQueue.css.map +1 -0
  176. package/dist/taskQueue/status.js +321 -312
  177. package/dist/taskQueue/table.js +384 -375
  178. package/dist/taskQueue/taskQueueModel.js +472 -488
  179. package/dist/taskQueueButton/css/taskable.css.map +1 -0
  180. package/dist/taskQueueButton/css/treeButton.css.map +1 -0
  181. package/dist/taskQueueButton/taskable.js +273 -264
  182. package/dist/taskQueueButton/treeButton.js +198 -189
  183. package/dist/themeLoader.js +23 -24
  184. package/dist/themes.js +1 -1
  185. package/dist/toggler.js +3 -3
  186. package/dist/tooltip.js +304 -295
  187. package/dist/transformer.js +2 -2
  188. package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -0
  189. package/dist/tristateCheckboxGroup.js +320 -311
  190. package/dist/uploader.js +696 -687
  191. package/dist/validator/Report.js +1 -1
  192. package/dist/validator/Validator.js +3 -3
  193. package/dist/validator/validators.js +9 -9
  194. package/dist/validator.js +230 -240
  195. package/dist/waitForMedia.js +1 -1
  196. package/dist/waitingDialog/css/waitingDialog.css.map +1 -0
  197. package/package.json +3 -3
  198. package/{src/scss → scss}/.DS_Store +0 -0
  199. package/src/.DS_Store +0 -0
  200. package/src/animable/absorbable/css/absorb.css +0 -1
  201. package/src/animable/absorbable/css/absorb.css.map +1 -0
  202. package/src/animable/pulsable/css/pulse.css.map +1 -0
  203. package/src/autocomplete/css/autocomplete.css +0 -1
  204. package/src/autocomplete/css/autocomplete.css.map +1 -0
  205. package/src/badge/css/badge.css +0 -1
  206. package/src/badge/css/badge.css.map +1 -0
  207. package/src/breadcrumbs/css/breadcrumbs.css.map +1 -0
  208. package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -0
  209. package/src/calculator/css/calculator.css.map +1 -0
  210. package/src/ckeditor/ckConfigurator.js +6 -0
  211. package/src/class/css/selector.css.map +1 -0
  212. package/src/component/css/components.css.map +1 -0
  213. package/src/component/css/windowComponent.css.map +1 -0
  214. package/src/component/draggable.js +5 -0
  215. package/src/component/resizable.js +5 -0
  216. package/src/contextualPopup/css/contextualPopup.css.map +1 -0
  217. package/src/dashboard/css/dashboard.css.map +1 -0
  218. package/src/datalist/css/datalist.css.map +1 -0
  219. package/src/datatable/css/datatable.css.map +1 -0
  220. package/src/dateRange/css/dateRange.css.map +1 -0
  221. package/src/datetime/css/picker.css.map +1 -0
  222. package/src/destination/css/selector.css.map +1 -0
  223. package/src/documentViewer/css/documentViewer.css.map +1 -0
  224. package/src/dropdown/css/dropdown.css.map +1 -0
  225. package/src/dynamicComponent/css/dynamicComponent.css.map +1 -0
  226. package/src/figure/FigureStateActive.js +174 -0
  227. package/src/figure/figcaption.tpl +1 -0
  228. package/src/form/css/dropdownForm.css.map +1 -0
  229. package/src/form/css/form.css.map +1 -0
  230. package/src/form/validator/css/validator.css.map +1 -0
  231. package/src/form/widget/css/widget.css.map +1 -0
  232. package/src/generis/form/css/form.css.map +1 -0
  233. package/src/generis/validator/css/validator.css.map +1 -0
  234. package/src/generis/widget/css/widget.css.map +1 -0
  235. package/src/image/ImgStateActive/helper.js +36 -0
  236. package/src/image/ImgStateActive/initHelper.js +9 -7
  237. package/src/image/ImgStateActive/initMediaEditor.js +3 -2
  238. package/src/image/ImgStateActive/mediaSizer.js +13 -3
  239. package/src/itemButtonList/css/item-button-list.css +0 -1
  240. package/src/itemButtonList/css/item-button-list.css.map +1 -0
  241. package/src/listbox/css/listbox.css.map +1 -0
  242. package/src/loadingButton/css/button.css.map +1 -0
  243. package/src/maths/calculator/css/calculator.css.map +1 -0
  244. package/src/mediaEditor/plugins/mediaAlignment/helper.js +12 -8
  245. package/src/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +75 -72
  246. package/src/mediaplayer/css/player.css.map +1 -0
  247. package/src/pagination/css/pagination.css.map +1 -0
  248. package/src/resource/css/selector.css.map +1 -0
  249. package/src/resourcemgr/css/resourcemgr.css.map +1 -0
  250. package/src/searchModal/css/advancedSearch.css.map +1 -0
  251. package/src/searchModal/css/searchModal.css.map +1 -0
  252. package/src/switch/css/switch.css.map +1 -0
  253. package/src/tabs/css/tabs.css.map +1 -0
  254. package/src/taskQueue/css/taskQueue.css.map +1 -0
  255. package/src/taskQueueButton/css/taskable.css.map +1 -0
  256. package/src/taskQueueButton/css/treeButton.css.map +1 -0
  257. package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -0
  258. package/src/waitingDialog/css/waitingDialog.css.map +1 -0
  259. package/src/css/basic.css +0 -7764
  260. package/src/css/ckeditor/skins/tao/css/dialog.css +0 -950
  261. package/src/css/ckeditor/skins/tao/css/editor.css +0 -1850
  262. package/src/scss/basic.scss +0 -16
  263. package/src/scss/ckeditor/skins/tao/scss/dialog.scss +0 -763
  264. package/src/scss/ckeditor/skins/tao/scss/editor.scss +0 -111
  265. package/src/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +0 -59
  266. package/src/scss/ckeditor/skins/tao/scss/inc/_colorpanel.scss +0 -118
  267. package/src/scss/ckeditor/skins/tao/scss/inc/_elementspath.scss +0 -69
  268. package/src/scss/ckeditor/skins/tao/scss/inc/_mainui.scss +0 -194
  269. package/src/scss/ckeditor/skins/tao/scss/inc/_menu.scss +0 -181
  270. package/src/scss/ckeditor/skins/tao/scss/inc/_panel.scss +0 -200
  271. package/src/scss/ckeditor/skins/tao/scss/inc/_presets.scss +0 -32
  272. package/src/scss/ckeditor/skins/tao/scss/inc/_reset.scss +0 -101
  273. package/src/scss/ckeditor/skins/tao/scss/inc/_richcombo.scss +0 -213
  274. package/src/scss/ckeditor/skins/tao/scss/inc/_tao.scss +0 -59
  275. package/src/scss/ckeditor/skins/tao/scss/inc/_toolbar.scss +0 -301
  276. package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot +0 -0
  277. package/src/scss/font/source-sans-pro/source-sans-pro-italic.eot.b64 +0 -1
  278. package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff +0 -0
  279. package/src/scss/font/source-sans-pro/source-sans-pro-italic.woff.b64 +0 -1
  280. package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot +0 -0
  281. package/src/scss/font/source-sans-pro/source-sans-pro-regular.eot.b64 +0 -1
  282. package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff +0 -0
  283. package/src/scss/font/source-sans-pro/source-sans-pro-regular.woff.b64 +0 -1
  284. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot +0 -0
  285. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.eot.b64 +0 -1
  286. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff +0 -0
  287. package/src/scss/font/source-sans-pro/source-sans-pro-semibold-italic.woff.b64 +0 -1
  288. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot +0 -0
  289. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.eot.b64 +0 -1
  290. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff +0 -0
  291. package/src/scss/font/source-sans-pro/source-sans-pro-semibold.woff.b64 +0 -1
  292. package/src/scss/font/tao/tao.eot +0 -0
  293. package/src/scss/font/tao/tao.svg +0 -235
  294. package/src/scss/font/tao/tao.ttf +0 -0
  295. package/src/scss/font/tao/tao.woff +0 -0
  296. package/src/scss/inc/_base.scss +0 -496
  297. package/src/scss/inc/_bootstrap.scss +0 -6
  298. package/src/scss/inc/_buttons.scss +0 -114
  299. package/src/scss/inc/_colors.scss +0 -88
  300. package/src/scss/inc/_feedback.scss +0 -150
  301. package/src/scss/inc/_flex-grid.scss +0 -15
  302. package/src/scss/inc/_fonts.scss +0 -4
  303. package/src/scss/inc/_forms.scss +0 -827
  304. package/src/scss/inc/_functions.scss +0 -283
  305. package/src/scss/inc/_grid.scss +0 -66
  306. package/src/scss/inc/_jquery.nouislider.scss +0 -254
  307. package/src/scss/inc/_normalize.scss +0 -528
  308. package/src/scss/inc/_report.scss +0 -68
  309. package/src/scss/inc/_secondary-properties.scss +0 -89
  310. package/src/scss/inc/_select2.scss +0 -634
  311. package/src/scss/inc/_toolbars.scss +0 -155
  312. package/src/scss/inc/_tooltip.scss +0 -312
  313. package/src/scss/inc/_variables.scss +0 -21
  314. package/src/scss/inc/base/_highlight.scss +0 -5
  315. package/src/scss/inc/base/_list-style.scss +0 -59
  316. package/src/scss/inc/base/_svg.scss +0 -3
  317. package/src/scss/inc/base/_table.scss +0 -63
  318. package/src/scss/inc/fonts/_source-sans-pro.scss +0 -29
  319. package/src/scss/inc/fonts/_tao-icon-classes.scss +0 -226
  320. package/src/scss/inc/fonts/_tao-icon-def.scss +0 -12
  321. package/src/scss/inc/fonts/_tao-icon-vars.scss +0 -240
package/dist/actionbar.js CHANGED
@@ -1,447 +1,456 @@
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
-
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
- });
25
- /**
26
- * Register dompurify helper
27
- *
28
- * https://github.com/cure53/DOMPurify
29
- * with config SAFE_FOR_TEMPLATES: true
30
- * to make output safe for template systems
31
- */
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;
32
9
 
33
- hb.registerHelper('dompurify', function (context) {
34
- return DOMPurify.sanitize(context);
35
- });
36
10
  /**
37
- * Register join helper
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
+ *
38
27
  *
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
28
  */
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
+ }
44
72
 
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 : '"';
73
+ if (keyValueGlue !== undefined) {
74
+ fragment += key + keyValueGlue;
75
+ }
50
76
 
51
- _.forIn(arr, function (value, key) {
52
- var fragment = '';
77
+ fragment += wrapper + value + wrapper;
78
+ fragments.push(fragment);
79
+ });
53
80
 
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
- }
81
+ return fragments.join(fragmentGlue);
82
+ }); //register a classic "for loop" helper
83
+ //it also adds a local variable "i" as the index in each iteration loop
84
+
85
+ hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
86
+ var ret = '';
87
+ startIndex = parseInt(startIndex);
88
+ stopIndex = parseInt(stopIndex);
89
+ increment = parseInt(increment);
63
90
 
64
- if (keyValueGlue !== undefined) {
65
- fragment += key + keyValueGlue;
91
+ for (var i = startIndex; i < stopIndex; i += increment) {
92
+ ret += options.fn(_.extend({}, this, {
93
+ i: i
94
+ }));
66
95
  }
67
96
 
68
- fragment += wrapper + value + wrapper;
69
- fragments.push(fragment);
97
+ return ret;
70
98
  });
99
+ hb.registerHelper('equal', function (var1, var2, options) {
100
+ if (var1 == var2) {
101
+ return options.fn(this);
102
+ } else {
103
+ return options.inverse(this);
104
+ }
105
+ }); // register a "get property" helper
106
+ // it gets the named property from the provided context
71
107
 
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
108
+ hb.registerHelper('property', function (name, context) {
109
+ return context[name] || '';
110
+ }); // register an 'includes' helper
111
+ // it checks if value is in array
75
112
 
76
- hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
77
- var ret = '';
78
- startIndex = parseInt(startIndex);
79
- stopIndex = parseInt(stopIndex);
80
- increment = parseInt(increment);
113
+ hb.registerHelper('includes', function (haystack, needle, options) {
114
+ if (_.contains(haystack, needle)) {
115
+ return options.fn(this);
116
+ }
117
+ });
118
+ }
81
119
 
82
- for (var i = startIndex; i < stopIndex; i += increment) {
83
- ret += options.fn(_.extend({}, this, {
84
- i: i
85
- }));
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";
86
133
  }
87
134
 
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);
135
+ function program3(depth0,data) {
136
+
137
+
138
+ return "horizontal-action-bar";
95
139
  }
96
- }); // register a "get property" helper
97
- // it gets the named property from the provided context
98
140
 
99
- hb.registerHelper('property', function (name, context) {
100
- return context[name] || '';
101
- }); // register an 'includes' helper
102
- // it checks if value is in array
103
-
104
- hb.registerHelper('includes', function (haystack, needle, options) {
105
- if (_.contains(haystack, needle)) {
106
- return options.fn(this);
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";
107
168
  }
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
- }
125
-
126
- function program3(depth0,data) {
127
-
128
-
129
- return "horizontal-action-bar";
130
- }
131
169
 
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
- }
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;
179
+ }
160
180
 
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;
170
- }
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
+ }
171
191
 
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;
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);
181
204
  }
182
205
 
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 = {
220
206
  /**
221
- * Gets the definition of a button
222
- * @param {String} id - The identifier of the button
223
- * @returns {Object|undefined}
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 ;
224
222
  */
225
- getButton: function getButton(id) {
226
- if (this.is('rendered')) {
227
- return this.buttons[id];
228
- }
229
- },
230
-
231
223
  /**
232
- * Gets the DOM element of a button
233
- * @param {String} id - The identifier of the button
234
- * @returns {jQuery|undefined}
224
+ * Defines an action bar
225
+ * @type {Object}
235
226
  */
236
- getButtonElement: function getButtonElement(id) {
237
- if (this.is('rendered')) {
238
- return this.controls.$buttons[id];
239
- }
240
- },
241
227
 
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);
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
+ }
249
262
 
250
- if ($btn) {
251
- $btn.removeClass('hidden');
252
- }
263
+ return this;
264
+ },
253
265
 
254
- return this;
255
- },
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);
256
273
 
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);
274
+ if ($btn) {
275
+ $btn.addClass('hidden');
276
+ }
264
277
 
265
- if ($btn) {
266
- $btn.addClass('hidden');
267
- }
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
+ }
268
294
 
269
- return this;
270
- },
295
+ $btn.toggleClass('hidden', condition);
296
+ }
271
297
 
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);
298
+ return this;
299
+ },
280
300
 
281
- if ($btn) {
282
- if (undefined !== condition) {
283
- condition = !condition;
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');
284
308
  }
285
309
 
286
- $btn.toggleClass('hidden', condition);
287
- }
288
-
289
- return this;
290
- },
310
+ return this;
311
+ },
291
312
 
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
- }
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
+ }
300
321
 
301
- return this;
302
- },
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
+ }
303
335
 
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
- }
336
+ this.controls.$conditional.toggleClass('hidden', condition);
337
+ }
312
338
 
313
- return this;
314
- },
339
+ return this;
340
+ },
315
341
 
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;
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');
325
349
  }
326
350
 
327
- this.controls.$conditional.toggleClass('hidden', condition);
328
- }
351
+ return this;
352
+ },
329
353
 
330
- return this;
331
- },
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');
361
+ }
332
362
 
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');
340
- }
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
+ }
341
376
 
342
- return this;
343
- },
377
+ this.controls.$all.toggleClass('hidden', condition);
378
+ }
344
379
 
345
- /**
346
- * Hides all the buttons
347
- * @returns {actionbar}
348
- */
349
- hideAll: function hideAll() {
350
- if (this.is('rendered')) {
351
- this.controls.$all.addClass('hidden');
380
+ return this;
352
381
  }
353
-
354
- return this;
355
- },
356
-
382
+ };
357
383
  /**
358
- * Toggles all the buttons according to a condition
359
- * @param {Boolean} condition - If the condition is `true` the buttons will be displayed
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
360
394
  * @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
361
405
  */
362
- toggleAll: function toggleAll(condition) {
363
- if (this.is('rendered')) {
364
- if (undefined !== condition) {
365
- condition = !condition;
366
- }
367
-
368
- this.controls.$all.toggleClass('hidden', condition);
369
- }
370
406
 
371
- return this;
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
- */
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
+ */
438
447
 
439
448
 
440
- self.trigger('button', buttonId, button);
441
- });
442
- }).init(config);
443
- }
449
+ self.trigger('button', buttonId, button);
450
+ });
451
+ }).init(config);
452
+ }
444
453
 
445
- return actionbarFactory;
454
+ return actionbarFactory;
446
455
 
447
456
  });