@oat-sa/tao-core-ui 1.60.2 → 1.62.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 (783) hide show
  1. package/LICENSE +339 -339
  2. package/README.md +23 -18
  3. package/dist/actionbar.js +393 -410
  4. package/dist/adder.js +143 -156
  5. package/dist/animable/absorbable/absorbable.js +208 -211
  6. package/dist/animable/absorbable/css/absorb.css +7 -8
  7. package/dist/animable/absorbable/css/absorb.css.map +1 -1
  8. package/dist/animable/pulsable/css/pulse.css +7 -7
  9. package/dist/animable/pulsable/css/pulse.css.map +1 -1
  10. package/dist/animable/pulsable/pulsable.js +174 -174
  11. package/dist/areaBroker.js +59 -72
  12. package/dist/autocomplete/css/autocomplete.css +7 -8
  13. package/dist/autocomplete/css/autocomplete.css.map +1 -1
  14. package/dist/autocomplete.js +494 -604
  15. package/dist/autoscroll.js +23 -25
  16. package/dist/badge/badge.js +201 -199
  17. package/dist/badge/css/badge.css +7 -8
  18. package/dist/badge/css/badge.css.map +1 -1
  19. package/dist/breadcrumbs/css/breadcrumbs.css +7 -7
  20. package/dist/breadcrumbs/css/breadcrumbs.css.map +1 -1
  21. package/dist/breadcrumbs.js +286 -285
  22. package/dist/btngrouper.js +83 -95
  23. package/dist/bulkActionPopup/css/bulkActionPopup.css +7 -7
  24. package/dist/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
  25. package/dist/bulkActionPopup.js +503 -503
  26. package/dist/button.js +300 -293
  27. package/dist/calculator/css/calculator.css +10 -10
  28. package/dist/calculator/css/calculator.css.map +1 -1
  29. package/dist/calculator.js +59 -72
  30. package/dist/cascadingComboBox.js +257 -256
  31. package/dist/ckeditor/ckConfigurator.js +130 -154
  32. package/dist/ckeditor/dtdHandler.js +305 -345
  33. package/dist/class/css/selector.css +7 -7
  34. package/dist/class/css/selector.css.map +1 -1
  35. package/dist/class/selector.js +437 -470
  36. package/dist/component/alignable.js +97 -121
  37. package/dist/component/containable.js +53 -58
  38. package/dist/component/css/components.css +7 -7
  39. package/dist/component/css/components.css.map +1 -1
  40. package/dist/component/css/windowComponent.css +7 -7
  41. package/dist/component/css/windowComponent.css.map +1 -1
  42. package/dist/component/draggable.js +34 -36
  43. package/dist/component/placeable.js +84 -102
  44. package/dist/component/resizable.js +79 -89
  45. package/dist/component/stackable.js +21 -27
  46. package/dist/component/windowed.js +284 -297
  47. package/dist/component.js +439 -467
  48. package/dist/container.js +79 -98
  49. package/dist/contextualPopup/css/contextualPopup.css +7 -7
  50. package/dist/contextualPopup/css/contextualPopup.css.map +1 -1
  51. package/dist/contextualPopup.js +417 -436
  52. package/dist/dashboard/css/dashboard.css +7 -7
  53. package/dist/dashboard/css/dashboard.css.map +1 -1
  54. package/dist/dashboard.js +302 -305
  55. package/dist/datalist/css/datalist.css +7 -7
  56. package/dist/datalist/css/datalist.css.map +1 -1
  57. package/dist/datalist.js +783 -791
  58. package/dist/datatable/css/datatable.css +11 -7
  59. package/dist/datatable/css/datatable.css.map +1 -1
  60. package/dist/datatable/filterStrategy/filterStrategy.js +28 -30
  61. package/dist/datatable/filterStrategy/multiple.js +26 -45
  62. package/dist/datatable/filterStrategy/single.js +28 -40
  63. package/dist/datatable.js +1591 -1616
  64. package/dist/dateRange/css/dateRange.css +7 -7
  65. package/dist/dateRange/css/dateRange.css.map +1 -1
  66. package/dist/dateRange/dateRange.js +398 -412
  67. package/dist/datetime/css/picker.css +7 -7
  68. package/dist/datetime/css/picker.css.map +1 -1
  69. package/dist/datetime/picker.js +670 -703
  70. package/dist/deleter.js +383 -398
  71. package/dist/destination/css/selector.css +7 -7
  72. package/dist/destination/css/selector.css.map +1 -1
  73. package/dist/destination/selector.js +295 -293
  74. package/dist/dialog/alert.js +30 -32
  75. package/dist/dialog/confirm.js +29 -32
  76. package/dist/dialog/confirmDelete.js +223 -221
  77. package/dist/dialog.js +651 -695
  78. package/dist/disabler.js +108 -119
  79. package/dist/documentViewer/css/documentViewer.css +7 -7
  80. package/dist/documentViewer/css/documentViewer.css.map +1 -1
  81. package/dist/documentViewer/providers/pdfViewer/fallback/viewer.js +172 -169
  82. package/dist/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +32 -29
  83. package/dist/documentViewer/providers/pdfViewer/pdfjs/findBar.js +523 -564
  84. package/dist/documentViewer/providers/pdfViewer/pdfjs/pageView.js +376 -393
  85. package/dist/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +53 -68
  86. package/dist/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +517 -567
  87. package/dist/documentViewer/providers/pdfViewer/pdfjs/textManager.js +73 -96
  88. package/dist/documentViewer/providers/pdfViewer/pdfjs/viewer.js +381 -392
  89. package/dist/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +125 -152
  90. package/dist/documentViewer/providers/pdfViewer.js +189 -191
  91. package/dist/documentViewer/viewerFactory.js +76 -81
  92. package/dist/documentViewer.js +303 -311
  93. package/dist/dropdown/css/dropdown.css +7 -7
  94. package/dist/dropdown/css/dropdown.css.map +1 -1
  95. package/dist/dropdown.js +392 -412
  96. package/dist/durationer.js +77 -85
  97. package/dist/dynamicComponent/css/dynamicComponent.css +7 -7
  98. package/dist/dynamicComponent/css/dynamicComponent.css.map +1 -1
  99. package/dist/dynamicComponent.js +595 -630
  100. package/dist/feedback.js +365 -375
  101. package/dist/figure/FigureStateActive.js +246 -296
  102. package/dist/filesender.js +44 -54
  103. package/dist/filter.js +244 -240
  104. package/dist/form/css/dropdownForm.css +7 -7
  105. package/dist/form/css/dropdownForm.css.map +1 -1
  106. package/dist/form/css/form.css +7 -7
  107. package/dist/form/css/form.css.map +1 -1
  108. package/dist/form/dropdownForm.js +357 -362
  109. package/dist/form/form.js +703 -984
  110. package/dist/form/simpleForm.js +74 -77
  111. package/dist/form/validator/css/validator.css +7 -7
  112. package/dist/form/validator/css/validator.css.map +1 -1
  113. package/dist/form/validator/renderer.js +235 -241
  114. package/dist/form/validator/validator.js +181 -267
  115. package/dist/form/widget/css/widget.css +7 -7
  116. package/dist/form/widget/css/widget.css.map +1 -1
  117. package/dist/form/widget/definitions.js +27 -28
  118. package/dist/form/widget/loader.js +16 -16
  119. package/dist/form/widget/providers/checkBox.js +257 -264
  120. package/dist/form/widget/providers/comboBox.js +194 -193
  121. package/dist/form/widget/providers/default.js +44 -50
  122. package/dist/form/widget/providers/hidden.js +179 -176
  123. package/dist/form/widget/providers/hiddenBox.js +262 -272
  124. package/dist/form/widget/providers/radioBox.js +222 -223
  125. package/dist/form/widget/providers/textArea.js +197 -193
  126. package/dist/form/widget/providers/textBox.js +36 -37
  127. package/dist/form/widget/widget.js +480 -508
  128. package/dist/form.js +12 -17
  129. package/dist/formValidator/formValidator.js +74 -91
  130. package/dist/formValidator/highlighters/highlighter.js +43 -51
  131. package/dist/formValidator/highlighters/message.js +31 -32
  132. package/dist/formValidator/highlighters/tooltip.js +33 -35
  133. package/dist/generis/form/css/form.css +7 -7
  134. package/dist/generis/form/css/form.css.map +1 -1
  135. package/dist/generis/form/form.js +323 -331
  136. package/dist/generis/validator/css/validator.css +7 -7
  137. package/dist/generis/validator/css/validator.css.map +1 -1
  138. package/dist/generis/validator/validator.js +215 -216
  139. package/dist/generis/widget/checkBox/checkBox.js +227 -225
  140. package/dist/generis/widget/comboBox/comboBox.js +189 -183
  141. package/dist/generis/widget/css/widget.css +7 -7
  142. package/dist/generis/widget/css/widget.css.map +1 -1
  143. package/dist/generis/widget/hiddenBox/hiddenBox.js +231 -232
  144. package/dist/generis/widget/loader.js +21 -23
  145. package/dist/generis/widget/textBox/textBox.js +178 -172
  146. package/dist/generis/widget/widget.js +255 -266
  147. package/dist/groupedComboBox.js +231 -226
  148. package/dist/groupvalidator.js +30 -34
  149. package/dist/hider.js +43 -50
  150. package/dist/highlighter.js +946 -1057
  151. package/dist/image/ImgStateActive/extractLabel.js +20 -21
  152. package/dist/image/ImgStateActive/helper.js +21 -25
  153. package/dist/image/ImgStateActive/initHelper.js +133 -162
  154. package/dist/image/ImgStateActive/initMediaEditor.js +72 -92
  155. package/dist/image/ImgStateActive/mediaSizer.js +48 -58
  156. package/dist/image/ImgStateActive.js +185 -215
  157. package/dist/incrementer.js +91 -110
  158. package/dist/inplacer.js +108 -132
  159. package/dist/interactUtils.js +56 -67
  160. package/dist/itemButtonList/css/item-button-list.css +23 -24
  161. package/dist/itemButtonList/css/item-button-list.css.map +1 -1
  162. package/dist/itemButtonList.js +444 -469
  163. package/dist/keyNavigation/navigableDomElement.js +124 -158
  164. package/dist/keyNavigation/navigator.js +235 -312
  165. package/dist/listbox/css/listbox.css +7 -7
  166. package/dist/listbox/css/listbox.css.map +1 -1
  167. package/dist/listbox.js +463 -476
  168. package/dist/liststyler.js +75 -76
  169. package/dist/loadingButton/css/button.css +7 -7
  170. package/dist/loadingButton/css/button.css.map +1 -1
  171. package/dist/loadingButton/loadingButton.js +219 -218
  172. package/dist/lock.js +484 -509
  173. package/dist/login/login.js +471 -486
  174. package/dist/maths/calculator/basicCalculator.js +247 -242
  175. package/dist/maths/calculator/calculatorComponent.js +34 -36
  176. package/dist/maths/calculator/core/areaBroker.js +30 -28
  177. package/dist/maths/calculator/core/board.js +805 -872
  178. package/dist/maths/calculator/core/expression.js +500 -518
  179. package/dist/maths/calculator/core/labels.js +240 -235
  180. package/dist/maths/calculator/core/plugin.js +20 -20
  181. package/dist/maths/calculator/core/terms.js +27 -27
  182. package/dist/maths/calculator/core/tokenizer.js +119 -132
  183. package/dist/maths/calculator/core/tokens.js +157 -168
  184. package/dist/maths/calculator/css/calculator.css +7 -7
  185. package/dist/maths/calculator/css/calculator.css.map +1 -1
  186. package/dist/maths/calculator/defaultCalculator.js +24 -27
  187. package/dist/maths/calculator/plugins/core/degrad.js +22 -30
  188. package/dist/maths/calculator/plugins/core/history.js +55 -67
  189. package/dist/maths/calculator/plugins/core/remind.js +22 -25
  190. package/dist/maths/calculator/plugins/core/stepNavigation.js +33 -49
  191. package/dist/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +255 -258
  192. package/dist/maths/calculator/plugins/modifiers/pow10.js +47 -52
  193. package/dist/maths/calculator/plugins/modifiers/sign.js +103 -130
  194. package/dist/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +288 -293
  195. package/dist/maths/calculator/pluginsLoader.js +22 -22
  196. package/dist/maths/calculator/scientificCalculator.js +339 -334
  197. package/dist/mediaEditor/mediaEditorComponent.js +244 -249
  198. package/dist/mediaEditor/plugins/mediaAlignment/helper.js +28 -33
  199. package/dist/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +228 -236
  200. package/dist/mediaEditor/plugins/mediaAlignment/style.css +7 -7
  201. package/dist/mediaEditor/plugins/mediaDimension/helper.js +81 -106
  202. package/dist/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +597 -635
  203. package/dist/mediaEditor/plugins/mediaDimension/style.css +141 -141
  204. package/dist/mediaplayer/css/player.css +7 -7
  205. package/dist/mediaplayer/css/player.css.map +1 -1
  206. package/dist/mediaplayer/players/html5.js +646 -706
  207. package/dist/mediaplayer/players/youtube.js +393 -438
  208. package/dist/mediaplayer/players.js +19 -19
  209. package/dist/mediaplayer/support.js +66 -79
  210. package/dist/mediaplayer/utils/reminder.js +117 -128
  211. package/dist/mediaplayer/utils/timeObserver.js +106 -109
  212. package/dist/mediaplayer/youtubeManager.js +142 -170
  213. package/dist/mediaplayer.js +1484 -1774
  214. package/dist/mediasizer.js +633 -676
  215. package/dist/modal.js +137 -153
  216. package/dist/movableComponent.js +37 -37
  217. package/dist/pageSizeSelector.js +231 -224
  218. package/dist/pageStatus.js +43 -46
  219. package/dist/pagination/css/pagination.css +7 -7
  220. package/dist/pagination/css/pagination.css.map +1 -1
  221. package/dist/pagination/paginationStrategy.js +24 -25
  222. package/dist/pagination/providers/pages.js +281 -291
  223. package/dist/pagination/providers/simple.js +202 -196
  224. package/dist/pagination.js +49 -72
  225. package/dist/previewer.js +113 -138
  226. package/dist/progressbar.js +70 -80
  227. package/dist/propertySelector/css/propertySelector.css +74 -0
  228. package/dist/propertySelector/css/propertySelector.css.map +1 -0
  229. package/dist/propertySelector/propertySelector.js +489 -0
  230. package/dist/report.js +356 -359
  231. package/dist/resource/css/selector.css +7 -7
  232. package/dist/resource/css/selector.css.map +1 -1
  233. package/dist/resource/filters.js +275 -289
  234. package/dist/resource/list.js +1589 -1371
  235. package/dist/resource/selectable.js +101 -136
  236. package/dist/resource/selector.js +855 -914
  237. package/dist/resource/tree.js +1796 -1612
  238. package/dist/resourcemgr/css/resourcemgr.css +7 -7
  239. package/dist/resourcemgr/css/resourcemgr.css.map +1 -1
  240. package/dist/resourcemgr/fileBrowser.js +540 -587
  241. package/dist/resourcemgr/filePreview.js +16 -25
  242. package/dist/resourcemgr/fileSelector.js +520 -547
  243. package/dist/resourcemgr/util/updatePermissions.js +10 -18
  244. package/dist/resourcemgr.js +325 -332
  245. package/dist/scroller.js +29 -33
  246. package/dist/searchModal/advancedSearch.js +949 -833
  247. package/dist/searchModal/css/advancedSearch.css +7 -14
  248. package/dist/searchModal/css/advancedSearch.css.map +1 -1
  249. package/dist/searchModal/css/searchModal.css +28 -8
  250. package/dist/searchModal/css/searchModal.css.map +1 -1
  251. package/dist/searchModal.js +616 -335
  252. package/dist/selecter.js +21 -28
  253. package/dist/stacker.js +52 -60
  254. package/dist/switch/css/switch.css +7 -7
  255. package/dist/switch/css/switch.css.map +1 -1
  256. package/dist/switch/switch.js +305 -311
  257. package/dist/tableModel.js +39 -49
  258. package/dist/tabs/css/tabs.css +12 -12
  259. package/dist/tabs/css/tabs.css.map +1 -1
  260. package/dist/tabs.js +588 -639
  261. package/dist/taskQueue/css/taskQueue.css +7 -7
  262. package/dist/taskQueue/css/taskQueue.css.map +1 -1
  263. package/dist/taskQueue/status.js +317 -322
  264. package/dist/taskQueue/table.js +383 -394
  265. package/dist/taskQueue/taskQueue.js +19 -19
  266. package/dist/taskQueue/taskQueueModel.js +459 -538
  267. package/dist/taskQueue.js +49 -67
  268. package/dist/taskQueueButton/css/taskable.css +7 -7
  269. package/dist/taskQueueButton/css/taskable.css.map +1 -1
  270. package/dist/taskQueueButton/css/treeButton.css +7 -7
  271. package/dist/taskQueueButton/css/treeButton.css.map +1 -1
  272. package/dist/taskQueueButton/standardButton.js +45 -43
  273. package/dist/taskQueueButton/taskable.js +267 -272
  274. package/dist/taskQueueButton/treeButton.js +200 -198
  275. package/dist/themeLoader.js +109 -129
  276. package/dist/themes.js +86 -100
  277. package/dist/toggler.js +76 -88
  278. package/dist/tooltip.js +296 -311
  279. package/dist/tooltipster.js +17 -17
  280. package/dist/transformer.js +140 -169
  281. package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
  282. package/dist/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
  283. package/dist/tristateCheckboxGroup.js +319 -325
  284. package/dist/uploader.js +691 -724
  285. package/dist/validator/Report.js +1 -2
  286. package/dist/validator/Validator.js +6 -25
  287. package/dist/validator/validators.js +66 -80
  288. package/dist/validator.js +218 -254
  289. package/dist/waitForMedia.js +45 -51
  290. package/dist/waitingDialog/css/waitingDialog.css +7 -7
  291. package/dist/waitingDialog/css/waitingDialog.css.map +1 -1
  292. package/dist/waitingDialog/waitingDialog.js +59 -77
  293. package/package.json +109 -107
  294. package/scss/basic.scss +16 -16
  295. package/scss/ckeditor/skins/tao/scss/inc/_ck-icons.scss +59 -59
  296. package/scss/ckeditor/skins/tao/scss/inc/_tao.scss +59 -59
  297. package/scss/font/tao/tao.svg +234 -234
  298. package/scss/inc/_base.scss +495 -495
  299. package/scss/inc/_bootstrap.scss +6 -6
  300. package/scss/inc/_buttons.scss +114 -114
  301. package/scss/inc/_colors.scss +93 -88
  302. package/scss/inc/_feedback.scss +150 -150
  303. package/scss/inc/_flex-grid.scss +15 -15
  304. package/scss/inc/_fonts.scss +4 -4
  305. package/scss/inc/_forms.scss +832 -832
  306. package/scss/inc/_functions.scss +283 -283
  307. package/scss/inc/_jquery.nouislider.scss +254 -254
  308. package/scss/inc/_normalize.scss +528 -528
  309. package/scss/inc/_report.scss +67 -67
  310. package/scss/inc/_secondary-properties.scss +89 -89
  311. package/scss/inc/_select2.scss +634 -634
  312. package/scss/inc/_toolbars.scss +155 -155
  313. package/scss/inc/_tooltip.scss +312 -312
  314. package/scss/inc/_variables.scss +21 -21
  315. package/scss/inc/base/_highlight.scss +5 -5
  316. package/scss/inc/base/_list-style.scss +58 -58
  317. package/scss/inc/base/_svg.scss +3 -3
  318. package/scss/inc/base/_table.scss +62 -62
  319. package/scss/inc/fonts/_source-sans-pro.scss +29 -29
  320. package/scss/inc/fonts/_tao-icon-classes.scss +226 -226
  321. package/scss/inc/fonts/_tao-icon-def.scss +12 -12
  322. package/scss/inc/fonts/_tao-icon-vars.scss +240 -240
  323. package/src/actionbar/tpl/main.tpl +8 -8
  324. package/src/actionbar.js +251 -251
  325. package/src/adder.js +250 -250
  326. package/src/animable/absorbable/absorbable.js +134 -134
  327. package/src/animable/absorbable/css/absorb.css +7 -8
  328. package/src/animable/absorbable/css/absorb.css.map +1 -1
  329. package/src/animable/absorbable/scss/absorb.scss +37 -37
  330. package/src/animable/pulsable/css/pulse.css +7 -7
  331. package/src/animable/pulsable/css/pulse.css.map +1 -1
  332. package/src/animable/pulsable/pulsable.js +90 -90
  333. package/src/animable/pulsable/scss/pulse.scss +22 -22
  334. package/src/areaBroker.js +160 -160
  335. package/src/autocomplete/css/autocomplete.css +7 -8
  336. package/src/autocomplete/css/autocomplete.css.map +1 -1
  337. package/src/autocomplete/scss/autocomplete.scss +37 -37
  338. package/src/autocomplete.js +1029 -1029
  339. package/src/autoscroll.js +57 -57
  340. package/src/badge/badge.js +119 -119
  341. package/src/badge/css/badge.css +7 -8
  342. package/src/badge/css/badge.css.map +1 -1
  343. package/src/badge/scss/badge.scss +92 -92
  344. package/src/badge/tpl/badge.tpl +4 -4
  345. package/src/breadcrumbs/css/breadcrumbs.css +7 -7
  346. package/src/breadcrumbs/css/breadcrumbs.css.map +1 -1
  347. package/src/breadcrumbs/scss/breadcrumbs.scss +52 -52
  348. package/src/breadcrumbs/tpl/breadcrumbs.tpl +20 -20
  349. package/src/breadcrumbs.js +99 -99
  350. package/src/btngrouper.js +213 -213
  351. package/src/bulkActionPopup/css/bulkActionPopup.css +7 -7
  352. package/src/bulkActionPopup/css/bulkActionPopup.css.map +1 -1
  353. package/src/bulkActionPopup/scss/bulkActionPopup.scss +63 -63
  354. package/src/bulkActionPopup/tpl/layout.tpl +76 -76
  355. package/src/bulkActionPopup/tpl/select.tpl +8 -8
  356. package/src/bulkActionPopup.js +274 -274
  357. package/src/button/tpl/button.tpl +4 -4
  358. package/src/button.js +135 -135
  359. package/src/calculator/css/calculator.css +10 -10
  360. package/src/calculator/css/calculator.css.map +1 -1
  361. package/src/calculator/scss/calculator.scss +139 -139
  362. package/src/calculator.js +188 -188
  363. package/src/cascadingComboBox.js +126 -126
  364. package/src/ckeditor/ckConfigurator.js +736 -736
  365. package/src/ckeditor/dtdHandler.js +1030 -1030
  366. package/src/class/css/selector.css +7 -7
  367. package/src/class/css/selector.css.map +1 -1
  368. package/src/class/scss/selector.scss +101 -101
  369. package/src/class/selector.js +329 -329
  370. package/src/class/tpl/listItem.tpl +9 -9
  371. package/src/class/tpl/selector.tpl +10 -10
  372. package/src/component/alignable.js +274 -274
  373. package/src/component/containable.js +122 -122
  374. package/src/component/css/components.css +7 -7
  375. package/src/component/css/components.css.map +1 -1
  376. package/src/component/css/windowComponent.css +7 -7
  377. package/src/component/css/windowComponent.css.map +1 -1
  378. package/src/component/draggable.js +104 -104
  379. package/src/component/placeable.js +233 -233
  380. package/src/component/resizable.js +195 -195
  381. package/src/component/scss/components.scss +507 -507
  382. package/src/component/scss/windowComponent.scss +62 -62
  383. package/src/component/stackable.js +67 -67
  384. package/src/component/tpl/window.tpl +7 -7
  385. package/src/component/windowed.js +206 -206
  386. package/src/component.js +401 -401
  387. package/src/container.js +200 -200
  388. package/src/contextualPopup/css/contextualPopup.css +7 -7
  389. package/src/contextualPopup/css/contextualPopup.css.map +1 -1
  390. package/src/contextualPopup/scss/contextualPopup.scss +78 -78
  391. package/src/contextualPopup/tpl/popup.tpl +10 -10
  392. package/src/contextualPopup.js +297 -297
  393. package/src/css/basic.css +103 -106
  394. package/src/css/basic.css.map +1 -1
  395. package/src/dashboard/css/dashboard.css +7 -7
  396. package/src/dashboard/css/dashboard.css.map +1 -1
  397. package/src/dashboard/scss/dashboard.scss +93 -93
  398. package/src/dashboard/tpl/dashboard.tpl +16 -16
  399. package/src/dashboard/tpl/dashboardMetricsList.tpl +15 -15
  400. package/src/dashboard.js +184 -184
  401. package/src/datalist/css/datalist.css +7 -7
  402. package/src/datalist/css/datalist.css.map +1 -1
  403. package/src/datalist/scss/datalist.scss +116 -116
  404. package/src/datalist/tpl/list.tpl +24 -24
  405. package/src/datalist/tpl/main.tpl +44 -44
  406. package/src/datalist.js +500 -500
  407. package/src/datatable/css/datatable.css +11 -7
  408. package/src/datatable/css/datatable.css.map +1 -1
  409. package/src/datatable/filterStrategy/filterStrategy.js +70 -70
  410. package/src/datatable/filterStrategy/multiple.js +126 -126
  411. package/src/datatable/filterStrategy/single.js +108 -108
  412. package/src/datatable/scss/datatable.scss +149 -146
  413. package/src/datatable/tpl/button.tpl +6 -6
  414. package/src/datatable/tpl/layout.tpl +158 -158
  415. package/src/datatable.js +1056 -1056
  416. package/src/dateRange/css/dateRange.css +7 -7
  417. package/src/dateRange/css/dateRange.css.map +1 -1
  418. package/src/dateRange/dateRange.js +341 -341
  419. package/src/dateRange/scss/dateRange.scss +7 -7
  420. package/src/dateRange/tpl/select.tpl +18 -18
  421. package/src/datetime/css/picker.css +7 -7
  422. package/src/datetime/css/picker.css.map +1 -1
  423. package/src/datetime/picker.js +576 -576
  424. package/src/datetime/scss/picker.scss +192 -192
  425. package/src/datetime/tpl/picker.tpl +18 -18
  426. package/src/deleter/undo.tpl +6 -6
  427. package/src/deleter.js +296 -296
  428. package/src/destination/css/selector.css +7 -7
  429. package/src/destination/css/selector.css.map +1 -1
  430. package/src/destination/scss/selector.scss +36 -36
  431. package/src/destination/selector.js +195 -195
  432. package/src/destination/tpl/selector.tpl +13 -13
  433. package/src/dialog/alert.js +70 -70
  434. package/src/dialog/confirm.js +85 -85
  435. package/src/dialog/confirmDelete.js +95 -95
  436. package/src/dialog/tpl/body.tpl +24 -24
  437. package/src/dialog/tpl/buttons.tpl +6 -6
  438. package/src/dialog/tpl/checkbox.tpl +5 -5
  439. package/src/dialog.js +517 -517
  440. package/src/disabler.js +230 -230
  441. package/src/documentViewer/css/documentViewer.css +7 -7
  442. package/src/documentViewer/css/documentViewer.css.map +1 -1
  443. package/src/documentViewer/providers/pdfViewer/fallback/viewer.js +69 -69
  444. package/src/documentViewer/providers/pdfViewer/pdfjs/areaBroker.js +41 -41
  445. package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.js +475 -475
  446. package/src/documentViewer/providers/pdfViewer/pdfjs/findBar.tpl +20 -20
  447. package/src/documentViewer/providers/pdfViewer/pdfjs/match.tpl +1 -1
  448. package/src/documentViewer/providers/pdfViewer/pdfjs/page.tpl +4 -4
  449. package/src/documentViewer/providers/pdfViewer/pdfjs/pageView.js +318 -318
  450. package/src/documentViewer/providers/pdfViewer/pdfjs/pagesManager.js +167 -167
  451. package/src/documentViewer/providers/pdfViewer/pdfjs/searchEngine.js +451 -451
  452. package/src/documentViewer/providers/pdfViewer/pdfjs/textManager.js +252 -252
  453. package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.js +299 -299
  454. package/src/documentViewer/providers/pdfViewer/pdfjs/viewer.tpl +16 -16
  455. package/src/documentViewer/providers/pdfViewer/pdfjs/wrapper.js +351 -351
  456. package/src/documentViewer/providers/pdfViewer.js +93 -93
  457. package/src/documentViewer/scss/documentViewer.scss +184 -184
  458. package/src/documentViewer/viewerFactory.js +191 -191
  459. package/src/documentViewer.js +238 -238
  460. package/src/dropdown/css/dropdown.css +7 -7
  461. package/src/dropdown/css/dropdown.css.map +1 -1
  462. package/src/dropdown/scss/dropdown.scss +99 -99
  463. package/src/dropdown/tpl/dropdown.tpl +8 -8
  464. package/src/dropdown/tpl/list-item.tpl +4 -4
  465. package/src/dropdown.js +255 -255
  466. package/src/durationer.js +222 -222
  467. package/src/dynamicComponent/css/dynamicComponent.css +7 -7
  468. package/src/dynamicComponent/css/dynamicComponent.css.map +1 -1
  469. package/src/dynamicComponent/scss/dynamicComponent.scss +98 -98
  470. package/src/dynamicComponent/tpl/layout.tpl +17 -17
  471. package/src/dynamicComponent.js +554 -554
  472. package/src/feedback/feedback.tpl +7 -7
  473. package/src/feedback.js +295 -295
  474. package/src/figure/FigureStateActive.js +174 -174
  475. package/src/filesender.js +114 -114
  476. package/src/filter/template.tpl +5 -5
  477. package/src/filter.js +135 -135
  478. package/src/form/css/dropdownForm.css +7 -7
  479. package/src/form/css/dropdownForm.css.map +1 -1
  480. package/src/form/css/form.css +7 -7
  481. package/src/form/css/form.css.map +1 -1
  482. package/src/form/dropdownForm.js +281 -281
  483. package/src/form/form.js +688 -688
  484. package/src/form/scss/dropdownForm.scss +60 -60
  485. package/src/form/scss/form.scss +25 -25
  486. package/src/form/simpleForm.js +125 -125
  487. package/src/form/tpl/dropdownForm.tpl +4 -4
  488. package/src/form/tpl/form.tpl +7 -7
  489. package/src/form/validator/css/validator.css +7 -7
  490. package/src/form/validator/css/validator.css.map +1 -1
  491. package/src/form/validator/renderer.js +118 -118
  492. package/src/form/validator/scss/validator.scss +14 -14
  493. package/src/form/validator/tpl/message.tpl +1 -1
  494. package/src/form/validator/tpl/validator.tpl +1 -1
  495. package/src/form/validator/validator.js +220 -220
  496. package/src/form/widget/css/widget.css +7 -7
  497. package/src/form/widget/css/widget.css.map +1 -1
  498. package/src/form/widget/definitions.js +51 -51
  499. package/src/form/widget/loader.js +40 -40
  500. package/src/form/widget/providers/checkBox.js +138 -138
  501. package/src/form/widget/providers/comboBox.js +63 -63
  502. package/src/form/widget/providers/default.js +90 -90
  503. package/src/form/widget/providers/hidden.js +62 -62
  504. package/src/form/widget/providers/hiddenBox.js +152 -152
  505. package/src/form/widget/providers/radioBox.js +99 -99
  506. package/src/form/widget/providers/textArea.js +52 -52
  507. package/src/form/widget/providers/textBox.js +48 -48
  508. package/src/form/widget/scss/widget.scss +55 -55
  509. package/src/form/widget/tpl/checkBox.tpl +25 -25
  510. package/src/form/widget/tpl/comboBox.tpl +13 -13
  511. package/src/form/widget/tpl/hidden.tpl +1 -1
  512. package/src/form/widget/tpl/hiddenBox.tpl +17 -17
  513. package/src/form/widget/tpl/label.tpl +6 -6
  514. package/src/form/widget/tpl/radioBox.tpl +25 -25
  515. package/src/form/widget/tpl/textArea.tpl +8 -8
  516. package/src/form/widget/tpl/widget.tpl +8 -8
  517. package/src/form/widget/widget.js +372 -372
  518. package/src/form.js +53 -53
  519. package/src/formValidator/formValidator.js +253 -253
  520. package/src/formValidator/highlighters/highlighter.js +102 -102
  521. package/src/formValidator/highlighters/message.js +70 -70
  522. package/src/formValidator/highlighters/tooltip.js +78 -78
  523. package/src/generis/form/css/form.css +7 -7
  524. package/src/generis/form/css/form.css.map +1 -1
  525. package/src/generis/form/form.js +239 -239
  526. package/src/generis/form/readme.md +70 -70
  527. package/src/generis/form/scss/form.scss +23 -23
  528. package/src/generis/form/tpl/form.tpl +16 -16
  529. package/src/generis/validator/css/validator.css +7 -7
  530. package/src/generis/validator/css/validator.css.map +1 -1
  531. package/src/generis/validator/readme.md +46 -46
  532. package/src/generis/validator/scss/validator.scss +13 -13
  533. package/src/generis/validator/validator.js +128 -128
  534. package/src/generis/widget/checkBox/checkBox.js +112 -112
  535. package/src/generis/widget/checkBox/checkBox.tpl +18 -18
  536. package/src/generis/widget/comboBox/comboBox.js +67 -67
  537. package/src/generis/widget/comboBox/comboBox.tpl +12 -12
  538. package/src/generis/widget/css/widget.css +7 -7
  539. package/src/generis/widget/css/widget.css.map +1 -1
  540. package/src/generis/widget/hiddenBox/hiddenBox.js +132 -132
  541. package/src/generis/widget/hiddenBox/hiddenBox.tpl +16 -16
  542. package/src/generis/widget/loader.js +49 -49
  543. package/src/generis/widget/readme.md +59 -59
  544. package/src/generis/widget/scss/widget.scss +61 -61
  545. package/src/generis/widget/textBox/textBox.js +65 -65
  546. package/src/generis/widget/textBox/textBox.tpl +7 -7
  547. package/src/generis/widget/widget.js +164 -164
  548. package/src/generis/widget/widget.tpl +5 -5
  549. package/src/groupedComboBox.js +99 -99
  550. package/src/groupvalidator.js +84 -84
  551. package/src/hider.js +88 -88
  552. package/src/highlighter.js +1166 -1166
  553. package/src/image/ImgStateActive/extractLabel.js +29 -29
  554. package/src/image/ImgStateActive/helper.js +36 -36
  555. package/src/image/ImgStateActive/initHelper.js +137 -137
  556. package/src/image/ImgStateActive/initMediaEditor.js +92 -92
  557. package/src/image/ImgStateActive/mediaSizer.js +63 -63
  558. package/src/image/ImgStateActive.js +115 -115
  559. package/src/incrementer.js +319 -319
  560. package/src/inplacer.js +316 -316
  561. package/src/interactUtils.js +140 -140
  562. package/src/itemButtonList/css/item-button-list.css +23 -24
  563. package/src/itemButtonList/css/item-button-list.css.map +1 -1
  564. package/src/itemButtonList/scss/item-button-list.scss +236 -236
  565. package/src/itemButtonList/tpl/itemButtonList.tpl +21 -21
  566. package/src/itemButtonList.js +274 -274
  567. package/src/keyNavigation/navigableDomElement.js +282 -282
  568. package/src/keyNavigation/navigator.js +543 -543
  569. package/src/listbox/css/listbox.css +7 -7
  570. package/src/listbox/css/listbox.css.map +1 -1
  571. package/src/listbox/scss/listbox.scss +116 -116
  572. package/src/listbox/tpl/list.tpl +14 -14
  573. package/src/listbox/tpl/main.tpl +9 -9
  574. package/src/listbox.js +251 -251
  575. package/src/liststyler.js +155 -155
  576. package/src/loadingButton/css/button.css +7 -7
  577. package/src/loadingButton/css/button.css.map +1 -1
  578. package/src/loadingButton/loadingButton.js +110 -110
  579. package/src/loadingButton/scss/button.scss +41 -41
  580. package/src/loadingButton/tpl/button.tpl +5 -5
  581. package/src/lock/lock.tpl +16 -16
  582. package/src/lock.js +395 -395
  583. package/src/login/login.js +322 -322
  584. package/src/login/tpl/login.tpl +29 -29
  585. package/src/login/tpl/passwordReveal.tpl +7 -7
  586. package/src/maths/calculator/basicCalculator.js +55 -55
  587. package/src/maths/calculator/calculatorComponent.js +128 -128
  588. package/src/maths/calculator/core/areaBroker.js +38 -38
  589. package/src/maths/calculator/core/board.js +841 -841
  590. package/src/maths/calculator/core/expression.js +430 -430
  591. package/src/maths/calculator/core/labels.js +116 -116
  592. package/src/maths/calculator/core/plugin.js +40 -40
  593. package/src/maths/calculator/core/terms.js +459 -459
  594. package/src/maths/calculator/core/tokenizer.js +245 -245
  595. package/src/maths/calculator/core/tokens.js +178 -178
  596. package/src/maths/calculator/core/tpl/board.tpl +4 -4
  597. package/src/maths/calculator/css/calculator.css +7 -7
  598. package/src/maths/calculator/css/calculator.css.map +1 -1
  599. package/src/maths/calculator/defaultCalculator.js +66 -66
  600. package/src/maths/calculator/plugins/core/degrad.js +90 -90
  601. package/src/maths/calculator/plugins/core/history.js +166 -166
  602. package/src/maths/calculator/plugins/core/remind.js +96 -96
  603. package/src/maths/calculator/plugins/core/stepNavigation.js +175 -175
  604. package/src/maths/calculator/plugins/keyboard/templateKeyboard/defaultTemplate.tpl +36 -36
  605. package/src/maths/calculator/plugins/keyboard/templateKeyboard/templateKeyboard.js +91 -91
  606. package/src/maths/calculator/plugins/modifiers/pow10.js +143 -143
  607. package/src/maths/calculator/plugins/modifiers/sign.js +339 -339
  608. package/src/maths/calculator/plugins/screen/simpleScreen/defaultTemplate.tpl +3 -3
  609. package/src/maths/calculator/plugins/screen/simpleScreen/history.tpl +3 -3
  610. package/src/maths/calculator/plugins/screen/simpleScreen/simpleScreen.js +191 -191
  611. package/src/maths/calculator/pluginsLoader.js +46 -46
  612. package/src/maths/calculator/scientificCalculator.js +74 -74
  613. package/src/maths/calculator/scss/calculator.scss +396 -396
  614. package/src/maths/calculator/tpl/basicKeyboard.tpl +37 -37
  615. package/src/maths/calculator/tpl/basicScreen.tpl +2 -2
  616. package/src/maths/calculator/tpl/scientificKeyboard.tpl +61 -61
  617. package/src/maths/calculator/tpl/scientificScreen.tpl +3 -3
  618. package/src/mediaEditor/mediaEditorComponent.js +141 -141
  619. package/src/mediaEditor/plugins/mediaAlignment/helper.js +62 -62
  620. package/src/mediaEditor/plugins/mediaAlignment/mediaAlignmentComponent.js +99 -99
  621. package/src/mediaEditor/plugins/mediaAlignment/style.css +7 -7
  622. package/src/mediaEditor/plugins/mediaAlignment/tpl/mediaAlignment.tpl +25 -25
  623. package/src/mediaEditor/plugins/mediaDimension/helper.js +189 -189
  624. package/src/mediaEditor/plugins/mediaDimension/mediaDimensionComponent.js +561 -561
  625. package/src/mediaEditor/plugins/mediaDimension/style.css +141 -141
  626. package/src/mediaEditor/plugins/mediaDimension/tpl/mediaDimension.tpl +55 -55
  627. package/src/mediaEditor/tpl/editor.tpl +4 -4
  628. package/src/mediaplayer/css/player.css +7 -7
  629. package/src/mediaplayer/css/player.css.map +1 -1
  630. package/src/mediaplayer/players/html5.js +564 -564
  631. package/src/mediaplayer/players/youtube.js +323 -323
  632. package/src/mediaplayer/players.js +29 -29
  633. package/src/mediaplayer/readme.md +305 -305
  634. package/src/mediaplayer/scss/player.scss +569 -569
  635. package/src/mediaplayer/support.js +126 -126
  636. package/src/mediaplayer/tpl/audio.tpl +6 -6
  637. package/src/mediaplayer/tpl/player.tpl +37 -37
  638. package/src/mediaplayer/tpl/source.tpl +1 -1
  639. package/src/mediaplayer/tpl/video.tpl +6 -6
  640. package/src/mediaplayer/tpl/youtube.tpl +1 -1
  641. package/src/mediaplayer/utils/reminder.js +184 -184
  642. package/src/mediaplayer/utils/timeObserver.js +143 -143
  643. package/src/mediaplayer/youtubeManager.js +161 -161
  644. package/src/mediaplayer.js +1606 -1606
  645. package/src/mediasizer/mediasizer.tpl +55 -55
  646. package/src/mediasizer.js +635 -635
  647. package/src/modal.js +365 -365
  648. package/src/movableComponent.js +78 -78
  649. package/src/pageSizeSelector/tpl/pageSizeSelector.tpl +9 -9
  650. package/src/pageSizeSelector.js +107 -107
  651. package/src/pageStatus.js +147 -147
  652. package/src/pagination/css/pagination.css +7 -7
  653. package/src/pagination/css/pagination.css.map +1 -1
  654. package/src/pagination/paginationStrategy.js +53 -53
  655. package/src/pagination/providers/pages.js +161 -161
  656. package/src/pagination/providers/simple.js +74 -74
  657. package/src/pagination/providers/tpl/pages/page.tpl +1 -1
  658. package/src/pagination/providers/tpl/pages.tpl +8 -8
  659. package/src/pagination/providers/tpl/simple.tpl +7 -7
  660. package/src/pagination/scss/pagination.scss +111 -111
  661. package/src/pagination.js +237 -237
  662. package/src/previewer.js +300 -300
  663. package/src/progressbar.js +165 -165
  664. package/src/propertySelector/css/propertySelector.css +74 -0
  665. package/src/propertySelector/css/propertySelector.css.map +1 -0
  666. package/src/propertySelector/propertySelector.js +286 -0
  667. package/src/propertySelector/scss/propertySelector.scss +66 -0
  668. package/src/propertySelector/tpl/highlighted-text.tpl +1 -0
  669. package/src/propertySelector/tpl/property-description.tpl +13 -0
  670. package/src/propertySelector/tpl/property-selector.tpl +7 -0
  671. package/src/report/feedback.tpl +11 -11
  672. package/src/report/layout.tpl +10 -10
  673. package/src/report.js +184 -184
  674. package/src/resource/css/selector.css +7 -7
  675. package/src/resource/css/selector.css.map +1 -1
  676. package/src/resource/filters.js +208 -208
  677. package/src/resource/list.js +200 -200
  678. package/src/resource/scss/_filters.scss +26 -26
  679. package/src/resource/scss/_resource-list.scss +107 -107
  680. package/src/resource/scss/_resource-tree.scss +205 -205
  681. package/src/resource/scss/selector.scss +187 -187
  682. package/src/resource/selectable.js +322 -322
  683. package/src/resource/selector.js +871 -871
  684. package/src/resource/tpl/filters.tpl +2 -2
  685. package/src/resource/tpl/list.tpl +7 -7
  686. package/src/resource/tpl/listNode.tpl +4 -4
  687. package/src/resource/tpl/selector.tpl +46 -46
  688. package/src/resource/tpl/tree.tpl +4 -4
  689. package/src/resource/tpl/treeNode.tpl +30 -30
  690. package/src/resource/tree.js +400 -400
  691. package/src/resourcemgr/css/resourcemgr.css +7 -7
  692. package/src/resourcemgr/css/resourcemgr.css.map +1 -1
  693. package/src/resourcemgr/fileBrowser.js +381 -381
  694. package/src/resourcemgr/filePreview.js +73 -73
  695. package/src/resourcemgr/fileSelector.js +348 -348
  696. package/src/resourcemgr/scss/resourcemgr.scss +254 -254
  697. package/src/resourcemgr/tpl/fileSelect.tpl +39 -39
  698. package/src/resourcemgr/tpl/folder.tpl +11 -11
  699. package/src/resourcemgr/tpl/layout.tpl +84 -84
  700. package/src/resourcemgr/tpl/rootFolder.tpl +13 -13
  701. package/src/resourcemgr/util/updatePermissions.js +53 -53
  702. package/src/resourcemgr.js +216 -216
  703. package/src/scroller.js +94 -94
  704. package/src/scss/basic.scss +16 -16
  705. package/src/searchModal/advancedSearch.js +638 -601
  706. package/src/searchModal/css/advancedSearch.css +7 -14
  707. package/src/searchModal/css/advancedSearch.css.map +1 -1
  708. package/src/searchModal/css/searchModal.css +28 -8
  709. package/src/searchModal/css/searchModal.css.map +1 -1
  710. package/src/searchModal/scss/advancedSearch.scss +171 -177
  711. package/src/searchModal/scss/searchModal.scss +393 -375
  712. package/src/searchModal/tpl/advanced-search.tpl +9 -9
  713. package/src/searchModal/tpl/criteria-alias.tpl +1 -0
  714. package/src/searchModal/tpl/criteria-class-label.tpl +1 -0
  715. package/src/searchModal/tpl/criteria-label.tpl +1 -0
  716. package/src/searchModal/tpl/highlighted-text.tpl +1 -0
  717. package/src/searchModal/tpl/info-message.tpl +3 -3
  718. package/src/searchModal/tpl/invalid-criteria-warning.tpl +10 -10
  719. package/src/searchModal/tpl/layout.tpl +27 -25
  720. package/src/searchModal/tpl/list-checkbox-criterion.tpl +17 -12
  721. package/src/searchModal/tpl/list-select-criterion.tpl +12 -6
  722. package/src/searchModal/tpl/property-select-button.tpl +1 -0
  723. package/src/searchModal/tpl/results-container.tpl +1 -0
  724. package/src/searchModal/tpl/text-criterion.tpl +11 -6
  725. package/src/searchModal.js +761 -496
  726. package/src/selecter.js +43 -43
  727. package/src/stacker.js +133 -133
  728. package/src/switch/css/switch.css +7 -7
  729. package/src/switch/css/switch.css.map +1 -1
  730. package/src/switch/scss/switch.scss +83 -83
  731. package/src/switch/switch.js +195 -195
  732. package/src/switch/tpl/switch.tpl +7 -7
  733. package/src/tableModel.js +112 -112
  734. package/src/tabs/css/tabs.css +12 -12
  735. package/src/tabs/css/tabs.css.map +1 -1
  736. package/src/tabs/scss/tabs.scss +50 -50
  737. package/src/tabs/tpl/panel.tpl +3 -3
  738. package/src/tabs/tpl/tabs.tpl +10 -10
  739. package/src/tabs.js +528 -528
  740. package/src/taskQueue/css/taskQueue.css +7 -7
  741. package/src/taskQueue/css/taskQueue.css.map +1 -1
  742. package/src/taskQueue/scss/taskQueue.scss +47 -47
  743. package/src/taskQueue/status.js +228 -228
  744. package/src/taskQueue/table.js +350 -350
  745. package/src/taskQueue/taskQueue.js +33 -33
  746. package/src/taskQueue/taskQueueModel.js +548 -548
  747. package/src/taskQueue/tpl/statusMessage.tpl +7 -7
  748. package/src/taskQueue.js +218 -218
  749. package/src/taskQueueButton/css/taskable.css +7 -7
  750. package/src/taskQueueButton/css/taskable.css.map +1 -1
  751. package/src/taskQueueButton/css/treeButton.css +7 -7
  752. package/src/taskQueueButton/css/treeButton.css.map +1 -1
  753. package/src/taskQueueButton/scss/taskable.scss +4 -4
  754. package/src/taskQueueButton/scss/treeButton.scss +34 -34
  755. package/src/taskQueueButton/standardButton.js +108 -108
  756. package/src/taskQueueButton/taskable.js +202 -202
  757. package/src/taskQueueButton/tpl/report.tpl +5 -5
  758. package/src/taskQueueButton/tpl/treeButton.tpl +6 -6
  759. package/src/taskQueueButton/treeButton.js +109 -109
  760. package/src/themeLoader.js +252 -252
  761. package/src/themes.js +162 -162
  762. package/src/toggler.js +200 -200
  763. package/src/tooltip/default.tpl +3 -3
  764. package/src/tooltip.js +160 -160
  765. package/src/tooltipster.js +25 -25
  766. package/src/transformer.js +327 -327
  767. package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css +7 -7
  768. package/src/tristateCheckboxGroup/css/tristateCheckboxGroup.css.map +1 -1
  769. package/src/tristateCheckboxGroup/scss/tristateCheckboxGroup.scss +15 -15
  770. package/src/tristateCheckboxGroup/tpl/li.tpl +6 -6
  771. package/src/tristateCheckboxGroup.js +207 -207
  772. package/src/uploader/fileEntry.tpl +6 -6
  773. package/src/uploader/uploader.tpl +32 -32
  774. package/src/uploader.js +594 -594
  775. package/src/validator/Report.js +10 -10
  776. package/src/validator/Validator.js +108 -108
  777. package/src/validator/validators.js +220 -220
  778. package/src/validator.js +264 -264
  779. package/src/waitForMedia.js +82 -82
  780. package/src/waitingDialog/css/waitingDialog.css +7 -7
  781. package/src/waitingDialog/css/waitingDialog.css.map +1 -1
  782. package/src/waitingDialog/scss/waitingDialog.scss +34 -34
  783. package/src/waitingDialog/waitingDialog.js +240 -240
package/dist/datalist.js CHANGED
@@ -1,866 +1,858 @@
1
1
  define(['jquery', 'lodash', 'i18n', 'ui/component', 'handlebars', 'lib/dompurify/purify', 'css!ui/datalist/css/datalist.css'], function ($$1, _, __, component, Handlebars, DOMPurify, datalist_css) { 'use strict';
2
2
 
3
- $$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
4
- _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
5
- __ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
6
- component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
7
- Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
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
3
+ $$1 = $$1 && Object.prototype.hasOwnProperty.call($$1, 'default') ? $$1['default'] : $$1;
4
+ _ = _ && Object.prototype.hasOwnProperty.call(_, 'default') ? _['default'] : _;
5
+ __ = __ && Object.prototype.hasOwnProperty.call(__, 'default') ? __['default'] : __;
6
+ component = component && Object.prototype.hasOwnProperty.call(component, 'default') ? component['default'] : component;
7
+ Handlebars = Handlebars && Object.prototype.hasOwnProperty.call(Handlebars, 'default') ? Handlebars['default'] : Handlebars;
8
+ DOMPurify = DOMPurify && Object.prototype.hasOwnProperty.call(DOMPurify, 'default') ? DOMPurify['default'] : DOMPurify;
9
+
10
+ /**
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
+ *
27
+ *
31
28
  */
29
+ function Helpers0 (hb) {
30
+ //register a i18n helper
31
+ hb.registerHelper('__', function (key) {
32
+ return __(key);
33
+ });
32
34
 
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
- */
44
-
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 : '"';
50
-
51
- _.forIn(arr, function (value, key) {
52
- var fragment = '';
35
+ /**
36
+ * Register dompurify helper
37
+ *
38
+ * https://github.com/cure53/DOMPurify
39
+ * with config SAFE_FOR_TEMPLATES: true
40
+ * to make output safe for template systems
41
+ */
42
+ hb.registerHelper('dompurify', function (context) {
43
+ return DOMPurify.sanitize(context);
44
+ });
53
45
 
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(' ');
46
+ /**
47
+ * Register join helper
48
+ *
49
+ * Example :
50
+ * var values = {a:v1, b:v2, c:v3};
51
+ * Using {{{join attributes '=' ' ' '"'}}} will return : a="v1" b="v2" c="v3"
52
+ * Using {{{join values null ' or ' '*'}}} will return : *v1* or *v2* or *v3*
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
+ _.forIn(arr, function (value, key) {
60
+ var fragment = '';
61
+ if (value !== null || value !== undefined) {
62
+ if (typeof value === 'boolean') {
63
+ value = value ? 'true' : 'false';
64
+ } else if (typeof value === 'object') {
65
+ value = _.values(value).join(' ');
66
+ }
67
+ } else {
68
+ value = '';
59
69
  }
60
- } else {
61
- value = '';
62
- }
70
+ if (keyValueGlue !== undefined) {
71
+ fragment += key + keyValueGlue;
72
+ }
73
+ fragment += wrapper + value + wrapper;
74
+ fragments.push(fragment);
75
+ });
76
+ return fragments.join(fragmentGlue);
77
+ });
63
78
 
64
- if (keyValueGlue !== undefined) {
65
- fragment += key + keyValueGlue;
79
+ //register a classic "for loop" helper
80
+ //it also adds a local variable "i" as the index in each iteration loop
81
+ hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
82
+ var ret = '';
83
+ startIndex = parseInt(startIndex);
84
+ stopIndex = parseInt(stopIndex);
85
+ increment = parseInt(increment);
86
+ for (var i = startIndex; i < stopIndex; i += increment) {
87
+ ret += options.fn(_.extend({}, this, {
88
+ i: i
89
+ }));
90
+ }
91
+ return ret;
92
+ });
93
+ hb.registerHelper('equal', function (var1, var2, options) {
94
+ if (var1 == var2) {
95
+ return options.fn(this);
96
+ } else {
97
+ return options.inverse(this);
66
98
  }
67
-
68
- fragment += wrapper + value + wrapper;
69
- fragments.push(fragment);
70
99
  });
71
100
 
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
101
+ // register a "get property" helper
102
+ // it gets the named property from the provided context
103
+ hb.registerHelper('property', function (name, context) {
104
+ return context[name] || '';
105
+ });
75
106
 
76
- hb.registerHelper('for', function (startIndex, stopIndex, increment, options) {
77
- var ret = '';
78
- startIndex = parseInt(startIndex);
79
- stopIndex = parseInt(stopIndex);
80
- increment = parseInt(increment);
107
+ // register an 'includes' helper
108
+ // it checks if value is in array
109
+ hb.registerHelper('includes', function (haystack, needle, options) {
110
+ if (_.contains(haystack, needle)) {
111
+ return options.fn(this);
112
+ }
113
+ });
114
+ }
81
115
 
82
- for (var i = startIndex; i < stopIndex; i += increment) {
83
- ret += options.fn(_.extend({}, this, {
84
- i: i
85
- }));
116
+ if (!Helpers0.__initialized) {
117
+ Helpers0(Handlebars);
118
+ Helpers0.__initialized = true;
119
+ }
120
+ var Template = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
121
+ this.compilerInfo = [4,'>= 1.0.0'];
122
+ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
123
+ var buffer = "", stack1, helper, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
124
+
125
+ function program1(depth0,data) {
126
+
127
+
128
+ return "class=\"hidden\"";
86
129
  }
87
130
 
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);
131
+ function program3(depth0,data) {
132
+
133
+
134
+ return " hidden";
95
135
  }
96
- }); // register a "get property" helper
97
- // it gets the named property from the provided context
98
136
 
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);
137
+ function program5(depth0,data) {
138
+
139
+ var buffer = "", stack1;
140
+ buffer += "\n <aside class=\"action-bar clearfix\">\n ";
141
+ stack1 = helpers.each.call(depth0, (depth0 && depth0.tools), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
142
+ if(stack1 || stack1 === 0) { buffer += stack1; }
143
+ buffer += "\n </aside>\n ";
144
+ return buffer;
145
+ }
146
+ function program6(depth0,data) {
147
+
148
+ var buffer = "", stack1, helper;
149
+ buffer += "\n <button class=\"btn-info small ";
150
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.massAction), {hash:{},inverse:self.noop,fn:self.program(7, program7, data),data:data});
151
+ if(stack1 || stack1 === 0) { buffer += stack1; }
152
+ buffer += "\" data-control=\"";
153
+ if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
154
+ else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
155
+ buffer += escapeExpression(stack1)
156
+ + "\" ";
157
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
158
+ if(stack1 || stack1 === 0) { buffer += stack1; }
159
+ buffer += ">\n ";
160
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
161
+ if(stack1 || stack1 === 0) { buffer += stack1; }
162
+ buffer += "\n ";
163
+ if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
164
+ else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
165
+ buffer += escapeExpression(stack1)
166
+ + "\n </button>\n ";
167
+ return buffer;
168
+ }
169
+ function program7(depth0,data) {
170
+
171
+
172
+ return " mass-action hidden";
107
173
  }
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, helper, functionType="function", escapeExpression=this.escapeExpression, self=this, helperMissing=helpers.helperMissing;
119
-
120
- function program1(depth0,data) {
121
-
122
-
123
- return "class=\"hidden\"";
124
- }
125
174
 
126
- function program3(depth0,data) {
127
-
128
-
129
- return " hidden";
130
- }
175
+ function program9(depth0,data) {
176
+
177
+ var buffer = "", stack1, helper;
178
+ buffer += " title=\"";
179
+ if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
180
+ else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
181
+ buffer += escapeExpression(stack1)
182
+ + "\"";
183
+ return buffer;
184
+ }
131
185
 
132
- function program5(depth0,data) {
133
-
134
- var buffer = "", stack1;
135
- buffer += "\r\n <aside class=\"action-bar clearfix\">\r\n ";
136
- stack1 = helpers.each.call(depth0, (depth0 && depth0.tools), {hash:{},inverse:self.noop,fn:self.program(6, program6, data),data:data});
137
- if(stack1 || stack1 === 0) { buffer += stack1; }
138
- buffer += "\r\n </aside>\r\n ";
139
- return buffer;
140
- }
141
- function program6(depth0,data) {
142
-
143
- var buffer = "", stack1, helper;
144
- buffer += "\r\n <button class=\"btn-info small ";
145
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.massAction), {hash:{},inverse:self.noop,fn:self.program(7, program7, 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(9, program9, data),data:data});
153
- if(stack1 || stack1 === 0) { buffer += stack1; }
154
- buffer += ">\r\n ";
155
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
156
- if(stack1 || stack1 === 0) { buffer += stack1; }
157
- buffer += "\r\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
- + "\r\n </button>\r\n ";
162
- return buffer;
163
- }
164
- function program7(depth0,data) {
165
-
166
-
167
- return " mass-action hidden";
168
- }
186
+ function program11(depth0,data) {
187
+
188
+ var buffer = "", stack1, helper;
189
+ buffer += "<span class=\"icon icon-";
190
+ if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
191
+ else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
192
+ buffer += escapeExpression(stack1)
193
+ + "\"></span>";
194
+ return buffer;
195
+ }
169
196
 
170
- function program9(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
- }
197
+ function program13(depth0,data) {
198
+
199
+
200
+ return "\n <col/>\n ";
201
+ }
180
202
 
181
- function program11(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
- }
203
+ function program15(depth0,data) {
204
+
205
+
206
+ return "\n <th class=\"checkboxes\"><input type=\"checkbox\" name=\"checkall\" value=\"1\" /></th>\n ";
207
+ }
191
208
 
192
- function program13(depth0,data) {
193
-
194
-
195
- return "\r\n <col/>\r\n ";
196
- }
209
+ function program17(depth0,data) {
210
+
211
+ var buffer = "", helper, options;
212
+ buffer += "\n <th class=\"actions\">"
213
+ + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Actions", options) : helperMissing.call(depth0, "__", "Actions", options)))
214
+ + "</th>\n ";
215
+ return buffer;
216
+ }
197
217
 
198
- function program15(depth0,data) {
199
-
200
-
201
- return "\r\n <th class=\"checkboxes\"><input type=\"checkbox\" name=\"checkall\" value=\"1\" /></th>\r\n ";
218
+ buffer += "<div class=\"datalist\">\n <h1 ";
219
+ stack1 = helpers.unless.call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
220
+ if(stack1 || stack1 === 0) { buffer += stack1; }
221
+ buffer += ">";
222
+ if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
223
+ else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
224
+ buffer += escapeExpression(stack1)
225
+ + "</h1>\n <h2>\n <span class=\"empty-list";
226
+ stack1 = helpers.unless.call(depth0, (depth0 && depth0.textEmpty), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
227
+ if(stack1 || stack1 === 0) { buffer += stack1; }
228
+ buffer += "\">";
229
+ if (helper = helpers.textEmpty) { stack1 = helper.call(depth0, {hash:{},data:data}); }
230
+ else { helper = (depth0 && depth0.textEmpty); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
231
+ buffer += escapeExpression(stack1)
232
+ + "</span>\n <span class=\"available-list";
233
+ stack1 = helpers.unless.call(depth0, (depth0 && depth0.textNumber), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
234
+ if(stack1 || stack1 === 0) { buffer += stack1; }
235
+ buffer += "\"><span class=\"label\">";
236
+ if (helper = helpers.textNumber) { stack1 = helper.call(depth0, {hash:{},data:data}); }
237
+ else { helper = (depth0 && depth0.textNumber); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
238
+ buffer += escapeExpression(stack1)
239
+ + "</span>: <span class=\"count\"></span></span>\n <span class=\"loading";
240
+ stack1 = helpers.unless.call(depth0, (depth0 && depth0.textLoading), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
241
+ if(stack1 || stack1 === 0) { buffer += stack1; }
242
+ buffer += "\"><span>";
243
+ if (helper = helpers.textLoading) { stack1 = helper.call(depth0, {hash:{},data:data}); }
244
+ else { helper = (depth0 && depth0.textLoading); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
245
+ buffer += escapeExpression(stack1)
246
+ + "</span>...</span>\n </h2>\n <div class=\"list\">\n ";
247
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.tools), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
248
+ if(stack1 || stack1 === 0) { buffer += stack1; }
249
+ buffer += "\n\n <table class=\"matrix\">\n <colgroup>\n ";
250
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.selectable), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
251
+ if(stack1 || stack1 === 0) { buffer += stack1; }
252
+ buffer += "\n <col/>\n ";
253
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.actions), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
254
+ if(stack1 || stack1 === 0) { buffer += stack1; }
255
+ buffer += "\n </colgroup>\n <thead>\n <tr>\n ";
256
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.selectable), {hash:{},inverse:self.noop,fn:self.program(15, program15, data),data:data});
257
+ if(stack1 || stack1 === 0) { buffer += stack1; }
258
+ buffer += "\n <th class=\"label\">";
259
+ if (helper = helpers.labelText) { stack1 = helper.call(depth0, {hash:{},data:data}); }
260
+ else { helper = (depth0 && depth0.labelText); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
261
+ buffer += escapeExpression(stack1)
262
+ + "</th>\n ";
263
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.actions), {hash:{},inverse:self.noop,fn:self.program(17, program17, data),data:data});
264
+ if(stack1 || stack1 === 0) { buffer += stack1; }
265
+ buffer += "\n </tr>\n </thead>\n <tbody></tbody>\n </table>\n </div>\n</div>\n";
266
+ return buffer;
267
+ });
268
+ function mainTpl(data, options, asString) {
269
+ var html = Template(data, options);
270
+ return (asString || true) ? html : $(html);
202
271
  }
203
272
 
204
- function program17(depth0,data) {
205
-
206
- var buffer = "", helper, options;
207
- buffer += "\r\n <th class=\"actions\">"
208
- + escapeExpression((helper = helpers.__ || (depth0 && depth0.__),options={hash:{},data:data},helper ? helper.call(depth0, "Actions", options) : helperMissing.call(depth0, "__", "Actions", options)))
209
- + "</th>\r\n ";
210
- return buffer;
273
+ if (!Helpers0.__initialized) {
274
+ Helpers0(Handlebars);
275
+ Helpers0.__initialized = true;
211
276
  }
277
+ var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
278
+ this.compilerInfo = [4,'>= 1.0.0'];
279
+ helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
280
+ var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
281
+
282
+ function program1(depth0,data,depth1) {
283
+
284
+ var buffer = "", stack1, helper;
285
+ buffer += "\n<tr data-id=\"";
286
+ if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
287
+ else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
288
+ buffer += escapeExpression(stack1)
289
+ + "\">\n ";
290
+ stack1 = helpers['if'].call(depth0, (depth1 && depth1.selectable), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
291
+ if(stack1 || stack1 === 0) { buffer += stack1; }
292
+ buffer += "\n <td class=\"label\">";
293
+ if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
294
+ else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
295
+ buffer += escapeExpression(stack1)
296
+ + "</td>\n ";
297
+ stack1 = helpers['if'].call(depth0, (depth1 && depth1.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(4, program4, data, depth0, depth1),data:data});
298
+ if(stack1 || stack1 === 0) { buffer += stack1; }
299
+ buffer += "\n</tr>\n";
300
+ return buffer;
301
+ }
302
+ function program2(depth0,data) {
303
+
304
+ var buffer = "", stack1, helper;
305
+ buffer += "\n <td class=\"checkboxes\"><input type=\"checkbox\" name=\"cb[";
306
+ if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
307
+ else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
308
+ buffer += escapeExpression(stack1)
309
+ + "]\" value=\"1\" /></td>\n ";
310
+ return buffer;
311
+ }
212
312
 
213
- buffer += "<div class=\"datalist\">\r\n <h1 ";
214
- stack1 = helpers.unless.call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(1, program1, data),data:data});
215
- if(stack1 || stack1 === 0) { buffer += stack1; }
216
- buffer += ">";
217
- if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
218
- else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
219
- buffer += escapeExpression(stack1)
220
- + "</h1>\r\n <h2>\r\n <span class=\"empty-list";
221
- stack1 = helpers.unless.call(depth0, (depth0 && depth0.textEmpty), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
222
- if(stack1 || stack1 === 0) { buffer += stack1; }
223
- buffer += "\">";
224
- if (helper = helpers.textEmpty) { stack1 = helper.call(depth0, {hash:{},data:data}); }
225
- else { helper = (depth0 && depth0.textEmpty); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
226
- buffer += escapeExpression(stack1)
227
- + "</span>\r\n <span class=\"available-list";
228
- stack1 = helpers.unless.call(depth0, (depth0 && depth0.textNumber), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
229
- if(stack1 || stack1 === 0) { buffer += stack1; }
230
- buffer += "\"><span class=\"label\">";
231
- if (helper = helpers.textNumber) { stack1 = helper.call(depth0, {hash:{},data:data}); }
232
- else { helper = (depth0 && depth0.textNumber); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
233
- buffer += escapeExpression(stack1)
234
- + "</span>: <span class=\"count\"></span></span>\r\n <span class=\"loading";
235
- stack1 = helpers.unless.call(depth0, (depth0 && depth0.textLoading), {hash:{},inverse:self.noop,fn:self.program(3, program3, data),data:data});
236
- if(stack1 || stack1 === 0) { buffer += stack1; }
237
- buffer += "\"><span>";
238
- if (helper = helpers.textLoading) { stack1 = helper.call(depth0, {hash:{},data:data}); }
239
- else { helper = (depth0 && depth0.textLoading); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
240
- buffer += escapeExpression(stack1)
241
- + "</span>...</span>\r\n </h2>\r\n <div class=\"list\">\r\n ";
242
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.tools), {hash:{},inverse:self.noop,fn:self.program(5, program5, data),data:data});
243
- if(stack1 || stack1 === 0) { buffer += stack1; }
244
- buffer += "\r\n\r\n <table class=\"matrix\">\r\n <colgroup>\r\n ";
245
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.selectable), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
246
- if(stack1 || stack1 === 0) { buffer += stack1; }
247
- buffer += "\r\n <col/>\r\n ";
248
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.actions), {hash:{},inverse:self.noop,fn:self.program(13, program13, data),data:data});
249
- if(stack1 || stack1 === 0) { buffer += stack1; }
250
- buffer += "\r\n </colgroup>\r\n <thead>\r\n <tr>\r\n ";
251
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.selectable), {hash:{},inverse:self.noop,fn:self.program(15, program15, data),data:data});
252
- if(stack1 || stack1 === 0) { buffer += stack1; }
253
- buffer += "\r\n <th class=\"label\">";
254
- if (helper = helpers.labelText) { stack1 = helper.call(depth0, {hash:{},data:data}); }
255
- else { helper = (depth0 && depth0.labelText); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
256
- buffer += escapeExpression(stack1)
257
- + "</th>\r\n ";
258
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.actions), {hash:{},inverse:self.noop,fn:self.program(17, program17, data),data:data});
259
- if(stack1 || stack1 === 0) { buffer += stack1; }
260
- buffer += "\r\n </tr>\r\n </thead>\r\n <tbody></tbody>\r\n </table>\r\n </div>\r\n</div>\r\n";
261
- return buffer;
262
- });
263
- function mainTpl(data, options, asString) {
264
- var html = Template(data, options);
265
- return (asString || true) ? html : $(html);
266
- }
267
-
268
- if (!Helpers0.__initialized) {
269
- Helpers0(Handlebars);
270
- Helpers0.__initialized = true;
271
- }
272
- var Template$1 = Handlebars.template(function (Handlebars,depth0,helpers,partials,data) {
273
- this.compilerInfo = [4,'>= 1.0.0'];
274
- helpers = this.merge(helpers, Handlebars.helpers); data = data || {};
275
- var buffer = "", stack1, functionType="function", escapeExpression=this.escapeExpression, self=this;
276
-
277
- function program1(depth0,data,depth1) {
278
-
279
- var buffer = "", stack1, helper;
280
- buffer += "\r\n<tr data-id=\"";
281
- if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
282
- else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
283
- buffer += escapeExpression(stack1)
284
- + "\">\r\n ";
285
- stack1 = helpers['if'].call(depth0, (depth1 && depth1.selectable), {hash:{},inverse:self.noop,fn:self.program(2, program2, data),data:data});
286
- if(stack1 || stack1 === 0) { buffer += stack1; }
287
- buffer += "\r\n <td class=\"label\">";
288
- if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
289
- else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
290
- buffer += escapeExpression(stack1)
291
- + "</td>\r\n ";
292
- stack1 = helpers['if'].call(depth0, (depth1 && depth1.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(4, program4, data, depth0, depth1),data:data});
293
- if(stack1 || stack1 === 0) { buffer += stack1; }
294
- buffer += "\r\n</tr>\r\n";
295
- return buffer;
296
- }
297
- function program2(depth0,data) {
298
-
299
- var buffer = "", stack1, helper;
300
- buffer += "\r\n <td class=\"checkboxes\"><input type=\"checkbox\" name=\"cb[";
301
- if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
302
- else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
303
- buffer += escapeExpression(stack1)
304
- + "]\" value=\"1\" /></td>\r\n ";
305
- return buffer;
306
- }
313
+ function program4(depth0,data,depth1,depth2) {
314
+
315
+ var buffer = "", stack1;
316
+ buffer += "\n <td class=\"actions\">\n ";
317
+ stack1 = helpers.each.call(depth0, (depth2 && depth2.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(5, program5, data, depth1),data:data});
318
+ if(stack1 || stack1 === 0) { buffer += stack1; }
319
+ buffer += "\n </td>\n ";
320
+ return buffer;
321
+ }
322
+ function program5(depth0,data,depth2) {
323
+
324
+ var buffer = "", stack1;
325
+ buffer += "\n ";
326
+ stack1 = helpers['with'].call(depth0, (depth2 && depth2.line), {hash:{},inverse:self.noop,fn:self.programWithDepth(6, program6, data, depth0),data:data});
327
+ if(stack1 || stack1 === 0) { buffer += stack1; }
328
+ buffer += "\n ";
329
+ return buffer;
330
+ }
331
+ function program6(depth0,data,depth1) {
332
+
333
+ var buffer = "", stack1;
334
+ buffer += "\n ";
335
+ stack1 = helpers.unless.call(depth0, (depth1 && depth1.hidden), {hash:{},inverse:self.noop,fn:self.programWithDepth(7, program7, data, depth1),data:data});
336
+ if(stack1 || stack1 === 0) { buffer += stack1; }
337
+ buffer += "\n ";
338
+ return buffer;
339
+ }
340
+ function program7(depth0,data,depth2) {
341
+
342
+ var buffer = "", stack1;
343
+ buffer += "\n ";
344
+ stack1 = helpers['with'].call(depth0, depth2, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
345
+ if(stack1 || stack1 === 0) { buffer += stack1; }
346
+ buffer += "\n ";
347
+ return buffer;
348
+ }
349
+ function program8(depth0,data) {
350
+
351
+ var buffer = "", stack1, helper;
352
+ buffer += "\n <button class=\"btn-info small\" data-control=\"";
353
+ if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
354
+ else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
355
+ buffer += escapeExpression(stack1)
356
+ + "\"";
357
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
358
+ if(stack1 || stack1 === 0) { buffer += stack1; }
359
+ buffer += ">\n ";
360
+ stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
361
+ if(stack1 || stack1 === 0) { buffer += stack1; }
362
+ buffer += "\n ";
363
+ if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
364
+ else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
365
+ buffer += escapeExpression(stack1)
366
+ + "\n </button>\n ";
367
+ return buffer;
368
+ }
369
+ function program9(depth0,data) {
370
+
371
+ var buffer = "", stack1, helper;
372
+ buffer += " title=\"";
373
+ if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
374
+ else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
375
+ buffer += escapeExpression(stack1)
376
+ + "\"";
377
+ return buffer;
378
+ }
307
379
 
308
- function program4(depth0,data,depth1,depth2) {
309
-
310
- var buffer = "", stack1;
311
- buffer += "\r\n <td class=\"actions\">\r\n ";
312
- stack1 = helpers.each.call(depth0, (depth2 && depth2.actions), {hash:{},inverse:self.noop,fn:self.programWithDepth(5, program5, data, depth1),data:data});
313
- if(stack1 || stack1 === 0) { buffer += stack1; }
314
- buffer += "\r\n </td>\r\n ";
315
- return buffer;
316
- }
317
- function program5(depth0,data,depth2) {
318
-
319
- var buffer = "", stack1;
320
- buffer += "\r\n ";
321
- stack1 = helpers['with'].call(depth0, (depth2 && depth2.line), {hash:{},inverse:self.noop,fn:self.programWithDepth(6, program6, data, depth0),data:data});
322
- if(stack1 || stack1 === 0) { buffer += stack1; }
323
- buffer += "\r\n ";
324
- return buffer;
325
- }
326
- function program6(depth0,data,depth1) {
327
-
328
- var buffer = "", stack1;
329
- buffer += "\r\n ";
330
- stack1 = helpers.unless.call(depth0, (depth1 && depth1.hidden), {hash:{},inverse:self.noop,fn:self.programWithDepth(7, program7, data, depth1),data:data});
331
- if(stack1 || stack1 === 0) { buffer += stack1; }
332
- buffer += "\r\n ";
333
- return buffer;
334
- }
335
- function program7(depth0,data,depth2) {
336
-
337
- var buffer = "", stack1;
338
- buffer += "\r\n ";
339
- stack1 = helpers['with'].call(depth0, depth2, {hash:{},inverse:self.noop,fn:self.program(8, program8, data),data:data});
340
- if(stack1 || stack1 === 0) { buffer += stack1; }
341
- buffer += "\r\n ";
342
- return buffer;
343
- }
344
- function program8(depth0,data) {
345
-
346
- var buffer = "", stack1, helper;
347
- buffer += "\r\n <button class=\"btn-info small\" data-control=\"";
348
- if (helper = helpers.id) { stack1 = helper.call(depth0, {hash:{},data:data}); }
349
- else { helper = (depth0 && depth0.id); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
350
- buffer += escapeExpression(stack1)
351
- + "\"";
352
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.title), {hash:{},inverse:self.noop,fn:self.program(9, program9, data),data:data});
353
- if(stack1 || stack1 === 0) { buffer += stack1; }
354
- buffer += ">\r\n ";
355
- stack1 = helpers['if'].call(depth0, (depth0 && depth0.icon), {hash:{},inverse:self.noop,fn:self.program(11, program11, data),data:data});
356
- if(stack1 || stack1 === 0) { buffer += stack1; }
357
- buffer += "\r\n ";
358
- if (helper = helpers.label) { stack1 = helper.call(depth0, {hash:{},data:data}); }
359
- else { helper = (depth0 && depth0.label); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
360
- buffer += escapeExpression(stack1)
361
- + "\r\n </button>\r\n ";
362
- return buffer;
363
- }
364
- function program9(depth0,data) {
365
-
366
- var buffer = "", stack1, helper;
367
- buffer += " title=\"";
368
- if (helper = helpers.title) { stack1 = helper.call(depth0, {hash:{},data:data}); }
369
- else { helper = (depth0 && depth0.title); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
370
- buffer += escapeExpression(stack1)
371
- + "\"";
372
- return buffer;
373
- }
380
+ function program11(depth0,data) {
381
+
382
+ var buffer = "", stack1, helper;
383
+ buffer += "<span class=\"icon icon-";
384
+ if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
385
+ else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
386
+ buffer += escapeExpression(stack1)
387
+ + "\"></span>";
388
+ return buffer;
389
+ }
374
390
 
375
- function program11(depth0,data) {
376
-
377
- var buffer = "", stack1, helper;
378
- buffer += "<span class=\"icon icon-";
379
- if (helper = helpers.icon) { stack1 = helper.call(depth0, {hash:{},data:data}); }
380
- else { helper = (depth0 && depth0.icon); stack1 = typeof helper === functionType ? helper.call(depth0, {hash:{},data:data}) : helper; }
381
- buffer += escapeExpression(stack1)
382
- + "\"></span>";
383
- return buffer;
391
+ stack1 = helpers.each.call(depth0, (depth0 && depth0.list), {hash:{},inverse:self.noop,fn:self.programWithDepth(1, program1, data, depth0),data:data});
392
+ if(stack1 || stack1 === 0) { buffer += stack1; }
393
+ buffer += "\n";
394
+ return buffer;
395
+ });
396
+ function listTpl(data, options, asString) {
397
+ var html = Template$1(data, options);
398
+ return (asString || true) ? html : $(html);
384
399
  }
385
400
 
386
- stack1 = helpers.each.call(depth0, (depth0 && depth0.list), {hash:{},inverse:self.noop,fn:self.programWithDepth(1, program1, data, depth0),data:data});
387
- if(stack1 || stack1 === 0) { buffer += stack1; }
388
- buffer += "\r\n";
389
- return buffer;
390
- });
391
- function listTpl(data, options, asString) {
392
- var html = Template$1(data, options);
393
- return (asString || true) ? html : $(html);
394
- }
395
-
396
- /**
397
- * This program is free software; you can redistribute it and/or
398
- * modify it under the terms of the GNU General Public License
399
- * as published by the Free Software Foundation; under version 2
400
- * of the License (non-upgradable).
401
- *
402
- * This program is distributed in the hope that it will be useful,
403
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
404
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
405
- * GNU General Public License for more details.
406
- *
407
- * You should have received a copy of the GNU General Public License
408
- * along with this program; if not, write to the Free Software
409
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
410
- *
411
- * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;
412
- */
413
- /**
414
- * Some default values
415
- * @type {Object}
416
- * @private
417
- */
418
-
419
- var _defaults = {
420
- keyName: 'id',
421
- labelName: 'label',
422
- labelText: __('Label'),
423
- title: false,
424
- textNumber: __('Available'),
425
- textEmpty: __('There is nothing to list!'),
426
- textLoading: __('Loading'),
427
- selectable: false
428
- };
429
- /**
430
- * Defines a data list
431
- * @type {Object}
432
- */
433
-
434
- var datalist = {
435
- /**
436
- * Updates the list
437
- * @param {Array} data
438
- * @returns {listBox}
439
- * @fires datalist#update
401
+ /**
402
+ * This program is free software; you can redistribute it and/or
403
+ * modify it under the terms of the GNU General Public License
404
+ * as published by the Free Software Foundation; under version 2
405
+ * of the License (non-upgradable).
406
+ *
407
+ * This program is distributed in the hope that it will be useful,
408
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
409
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
410
+ * GNU General Public License for more details.
411
+ *
412
+ * You should have received a copy of the GNU General Public License
413
+ * along with this program; if not, write to the Free Software
414
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
415
+ *
416
+ * Copyright (c) 2015 (original work) Open Assessment Technologies SA ;
440
417
  */
441
- update: function update(data) {
442
- var self = this;
443
- var controls = this.controls || {};
444
- var config = this.config || {};
445
- var $list = controls.$list;
446
- var $numberValue = controls.$numberValue;
447
- var renderData = {
448
- selectable: config.selectable,
449
- actions: config.actions,
450
- list: []
451
- };
452
- var list = renderData.list;
453
- var count; // disable the list while updating it
454
-
455
- this.setLoading(true); // if the update method is called before rendering, or on a destroyed component, there is no placeholder to fill...
456
-
457
- if ($list) {
458
- // be sure to remove previous list before render the new data
459
- $list.empty();
460
-
461
- if (data && data.length) {
462
- // format the data to render
463
- _.forEach(data, function (line) {
464
- // extract the identifier and the label according to the config
465
- var id = line[config.keyName];
466
- var label = line[config.labelName]; // optional custom renderer for the label
467
-
468
- if (_.isFunction(config.labelTransform)) {
469
- label = config.labelTransform.call(self, label, line);
470
- } // the data to render only refer to id and identifier
471
-
472
-
473
- list.push({
474
- id: id,
475
- label: label,
476
- line: line // provide the original data for dynamic behavior like hidden actions
477
418
 
419
+ /**
420
+ * Some default values
421
+ * @type {Object}
422
+ * @private
423
+ */
424
+ var _defaults = {
425
+ keyName: 'id',
426
+ labelName: 'label',
427
+ labelText: __('Label'),
428
+ title: false,
429
+ textNumber: __('Available'),
430
+ textEmpty: __('There is nothing to list!'),
431
+ textLoading: __('Loading'),
432
+ selectable: false
433
+ };
434
+
435
+ /**
436
+ * Defines a data list
437
+ * @type {Object}
438
+ */
439
+ var datalist = {
440
+ /**
441
+ * Updates the list
442
+ * @param {Array} data
443
+ * @returns {listBox}
444
+ * @fires datalist#update
445
+ */
446
+ update: function update(data) {
447
+ var self = this;
448
+ var controls = this.controls || {};
449
+ var config = this.config || {};
450
+ var $list = controls.$list;
451
+ var $numberValue = controls.$numberValue;
452
+ var renderData = {
453
+ selectable: config.selectable,
454
+ actions: config.actions,
455
+ list: []
456
+ };
457
+ var list = renderData.list;
458
+ var count;
459
+
460
+ // disable the list while updating it
461
+ this.setLoading(true);
462
+
463
+ // if the update method is called before rendering, or on a destroyed component, there is no placeholder to fill...
464
+ if ($list) {
465
+ // be sure to remove previous list before render the new data
466
+ $list.empty();
467
+ if (data && data.length) {
468
+ // format the data to render
469
+ _.forEach(data, function (line) {
470
+ // extract the identifier and the label according to the config
471
+ var id = line[config.keyName];
472
+ var label = line[config.labelName];
473
+
474
+ // optional custom renderer for the label
475
+ if (_.isFunction(config.labelTransform)) {
476
+ label = config.labelTransform.call(self, label, line);
477
+ }
478
+
479
+ // the data to render only refer to id and identifier
480
+ list.push({
481
+ id: id,
482
+ label: label,
483
+ line: line // provide the original data for dynamic behavior like hidden actions
484
+ });
478
485
  });
479
- }); // render the data at the right placeholder
480
-
481
486
 
482
- $list.append(listTpl(renderData)); // update the displayed counter
487
+ // render the data at the right placeholder
488
+ $list.append(listTpl(renderData));
483
489
 
484
- if ($numberValue) {
485
- count = data.length; // optional custom renderer for the counter
490
+ // update the displayed counter
491
+ if ($numberValue) {
492
+ count = data.length;
486
493
 
487
- if (_.isFunction(config.countRenderer)) {
488
- count = config.countRenderer.call(self, count);
494
+ // optional custom renderer for the counter
495
+ if (_.isFunction(config.countRenderer)) {
496
+ count = config.countRenderer.call(self, count);
497
+ }
498
+ $numberValue.text(count);
489
499
  }
490
500
 
491
- $numberValue.text(count);
492
- } // update the display status
501
+ // update the display status
502
+ this.setState('empty', false);
503
+ this.setState('loaded', true);
504
+ } else {
505
+ // nothing to display
506
+ this.setState('empty', true);
507
+ this.setState('loaded', false);
508
+ }
493
509
 
510
+ // update the selection of existing checkboxes
511
+ controls.$checkboxes = this.controls.$list.find('td.checkboxes input');
512
+ controls.$massAction.toggleClass('hidden', true);
513
+ if (this.pendingSelection) {
514
+ this.setSelection(this.pendingSelection);
515
+ }
516
+ }
494
517
 
495
- this.setState('empty', false);
496
- this.setState('loaded', true);
518
+ /**
519
+ * @event datalist#update
520
+ * @param {Array} data
521
+ */
522
+ self.trigger('update', data);
523
+
524
+ // ok, the list is now ready, enable it
525
+ this.setLoading(false);
526
+ return this;
527
+ },
528
+ /**
529
+ * Gets the current selection
530
+ * @returns {Array}
531
+ */
532
+ getSelection: function getSelection() {
533
+ var $checkboxes = this.controls && this.controls.$checkboxes;
534
+ var selection = [];
535
+ if ($checkboxes) {
536
+ // extract the selection from the selected checkboxes
537
+ $checkboxes.filter(':checked').each(function () {
538
+ var id = $$1(this).closest('tr').data('id');
539
+ if (id) {
540
+ selection.push(id);
541
+ }
542
+ });
497
543
  } else {
498
- // nothing to display
499
- this.setState('empty', true);
500
- this.setState('loaded', false);
501
- } // update the selection of existing checkboxes
502
-
503
-
504
- controls.$checkboxes = this.controls.$list.find('td.checkboxes input');
505
- controls.$massAction.toggleClass('hidden', true);
506
-
507
- if (this.pendingSelection) {
508
- this.setSelection(this.pendingSelection);
544
+ // the list may not already be rendered, but a selection may exist in pending state
545
+ if (this.pendingSelection) {
546
+ selection = this.pendingSelection;
547
+ }
509
548
  }
510
- }
511
- /**
512
- * @event datalist#update
513
- * @param {Array} data
549
+ return selection;
550
+ },
551
+ /**
552
+ * Sets the current selection
553
+ * @param {Array} selection
554
+ * @returns {datalist}
555
+ * @fires datalist#select
514
556
  */
515
-
516
-
517
- self.trigger('update', data); // ok, the list is now ready, enable it
518
-
519
- this.setLoading(false);
520
- return this;
521
- },
522
-
523
- /**
524
- * Gets the current selection
525
- * @returns {Array}
526
- */
527
- getSelection: function getSelection() {
528
- var $checkboxes = this.controls && this.controls.$checkboxes;
529
- var selection = [];
530
-
531
- if ($checkboxes) {
532
- // extract the selection from the selected checkboxes
533
- $checkboxes.filter(':checked').each(function () {
534
- var id = $$1(this).closest('tr').data('id');
535
-
536
- if (id) {
537
- selection.push(id);
557
+ setSelection: function setSelection(selection) {
558
+ var controls = this.controls || {};
559
+ var $list = controls.$list;
560
+ if ($list) {
561
+ // be sure to discard existing selection
562
+ controls.$checkboxes.prop('checked', false);
563
+ if (selection) {
564
+ // find each line and check it according to the provided selection
565
+ _.forEach(selection, function (id) {
566
+ $list.find('[data-id="' + id + '"] input[type="checkbox"]').prop('checked', true);
567
+ });
538
568
  }
539
- });
540
- } else {
541
- // the list may not already be rendered, but a selection may exist in pending state
542
- if (this.pendingSelection) {
543
- selection = this.pendingSelection;
544
- }
545
- }
546
569
 
547
- return selection;
548
- },
570
+ // takes care of the new selection
571
+ this._onSelection();
549
572
 
550
- /**
551
- * Sets the current selection
552
- * @param {Array} selection
553
- * @returns {datalist}
554
- * @fires datalist#select
555
- */
556
- setSelection: function setSelection(selection) {
557
- var controls = this.controls || {};
558
- var $list = controls.$list;
559
-
560
- if ($list) {
561
- // be sure to discard existing selection
562
- controls.$checkboxes.prop('checked', false);
563
-
564
- if (selection) {
565
- // find each line and check it according to the provided selection
566
- _.forEach(selection, function (id) {
567
- $list.find('[data-id="' + id + '"] input[type="checkbox"]').prop('checked', true);
568
- });
569
- } // takes care of the new selection
570
-
571
-
572
- this._onSelection(); // remove pending selection to avoid overwrite on next update
573
-
574
-
575
- this.pendingSelection = null;
576
- } else {
577
- // keep selection ready for the next update
578
- this.pendingSelection = selection;
579
- }
580
-
581
- return this;
582
- },
583
-
584
- /**
585
- * Called when a selection has been made
586
- * @fires datalist#select
587
- * @private
588
- */
589
- _onSelection: function _onSelection() {
590
- var controls = this.controls || {};
591
- var $checkboxes = controls.$checkboxes;
592
- var $checkAll = controls.$checkAll;
593
- var $checked = $checkboxes.filter(':checked'); // update the checkAll button
594
-
595
- if ($checked.length === $checkboxes.length) {
596
- $checkAll.prop('checked', true);
597
- } else {
598
- $checkAll.prop('checked', false);
599
- } // show/hide the mass actions tools
600
-
601
-
602
- controls.$massAction.toggleClass('hidden', !$checked.length);
603
- /**
604
- * @event datalist#select
605
- * @param {Array} selection
573
+ // remove pending selection to avoid overwrite on next update
574
+ this.pendingSelection = null;
575
+ } else {
576
+ // keep selection ready for the next update
577
+ this.pendingSelection = selection;
578
+ }
579
+ return this;
580
+ },
581
+ /**
582
+ * Called when a selection has been made
583
+ * @fires datalist#select
584
+ * @private
606
585
  */
607
-
608
- this.trigger('select', this.getSelection());
609
- },
610
-
611
- /**
612
- * Sets the loading state
613
- * @param {Boolean} flag
614
- * @returns {listBox}
615
- */
616
- setLoading: function setLoading(flag) {
617
- if (flag) {
618
- this.setState('loaded', false);
619
- }
620
-
621
- return this.setState('loading', flag);
622
- },
623
-
624
- /**
625
- * Sets the title of the list.
626
- * @param {String|Boolean} title - The text to set. If the value is false no title is displayed
627
- * @returns {listBox}
628
- */
629
- setTitle: function setTitle(title) {
630
- var $title = this.controls && this.controls.$title;
631
- this.config.title = title;
632
-
633
- if ($title) {
634
- if (false === title) {
635
- $title.addClass('hidden');
586
+ _onSelection: function _onSelection() {
587
+ var controls = this.controls || {};
588
+ var $checkboxes = controls.$checkboxes;
589
+ var $checkAll = controls.$checkAll;
590
+ var $checked = $checkboxes.filter(':checked');
591
+
592
+ // update the checkAll button
593
+ if ($checked.length === $checkboxes.length) {
594
+ $checkAll.prop('checked', true);
636
595
  } else {
637
- $title.html(title).removeClass('hidden');
596
+ $checkAll.prop('checked', false);
638
597
  }
639
- }
640
598
 
641
- return this;
642
- },
599
+ // show/hide the mass actions tools
600
+ controls.$massAction.toggleClass('hidden', !$checked.length);
643
601
 
644
- /**
645
- * Sets the label of the number of lines.
646
- * @param {String|Boolean} text - The text to set. If the value is false no label is displayed
647
- * @returns {listBox}
648
- */
649
- setTextNumber: function setTextNumber(text) {
650
- var $numberLabel = this.controls && this.controls.$numberLabel;
651
- var $textAvailable = this.controls && this.controls.$textAvailable;
652
- this.config.textNumber = text;
653
-
654
- if ($numberLabel) {
655
- if (text !== false) {
656
- $numberLabel.html(text).removeClass('hidden');
657
- } else if ($textAvailable) {
658
- $textAvailable.addClass('hidden');
602
+ /**
603
+ * @event datalist#select
604
+ * @param {Array} selection
605
+ */
606
+ this.trigger('select', this.getSelection());
607
+ },
608
+ /**
609
+ * Sets the loading state
610
+ * @param {Boolean} flag
611
+ * @returns {listBox}
612
+ */
613
+ setLoading: function setLoading(flag) {
614
+ if (flag) {
615
+ this.setState('loaded', false);
659
616
  }
660
- }
661
-
662
- return this;
663
- },
664
-
665
- /**
666
- * Sets the label displayed when there no data available.
667
- * @param {String|Boolean} text - The text to set. If the value is false no label is displayed
668
- * @returns {listBox}
669
- */
670
- setTextEmpty: function setTextEmpty(text) {
671
- var $textEmpty = this.controls && this.controls.$textEmpty;
672
- this.config.textEmpty = text;
673
-
674
- if ($textEmpty) {
675
- if (false === text) {
676
- $textEmpty.addClass('hidden');
677
- } else {
678
- $textEmpty.html(text).removeClass('hidden');
617
+ return this.setState('loading', flag);
618
+ },
619
+ /**
620
+ * Sets the title of the list.
621
+ * @param {String|Boolean} title - The text to set. If the value is false no title is displayed
622
+ * @returns {listBox}
623
+ */
624
+ setTitle: function setTitle(title) {
625
+ var $title = this.controls && this.controls.$title;
626
+ this.config.title = title;
627
+ if ($title) {
628
+ if (false === title) {
629
+ $title.addClass('hidden');
630
+ } else {
631
+ $title.html(title).removeClass('hidden');
632
+ }
633
+ }
634
+ return this;
635
+ },
636
+ /**
637
+ * Sets the label of the number of lines.
638
+ * @param {String|Boolean} text - The text to set. If the value is false no label is displayed
639
+ * @returns {listBox}
640
+ */
641
+ setTextNumber: function setTextNumber(text) {
642
+ var $numberLabel = this.controls && this.controls.$numberLabel;
643
+ var $textAvailable = this.controls && this.controls.$textAvailable;
644
+ this.config.textNumber = text;
645
+ if ($numberLabel) {
646
+ if (text !== false) {
647
+ $numberLabel.html(text).removeClass('hidden');
648
+ } else if ($textAvailable) {
649
+ $textAvailable.addClass('hidden');
650
+ }
651
+ }
652
+ return this;
653
+ },
654
+ /**
655
+ * Sets the label displayed when there no data available.
656
+ * @param {String|Boolean} text - The text to set. If the value is false no label is displayed
657
+ * @returns {listBox}
658
+ */
659
+ setTextEmpty: function setTextEmpty(text) {
660
+ var $textEmpty = this.controls && this.controls.$textEmpty;
661
+ this.config.textEmpty = text;
662
+ if ($textEmpty) {
663
+ if (false === text) {
664
+ $textEmpty.addClass('hidden');
665
+ } else {
666
+ $textEmpty.html(text).removeClass('hidden');
667
+ }
668
+ }
669
+ return this;
670
+ },
671
+ /**
672
+ * Sets the label displayed when the list is loading.
673
+ * @param {String|Boolean} text - The text to set. If the value is false no label is displayed
674
+ * @returns {listBox}
675
+ */
676
+ setTextLoading: function setTextLoading(text) {
677
+ var $textLoading = this.controls && this.controls.$textLoading;
678
+ this.config.textLoading = text;
679
+ if ($textLoading) {
680
+ if (false === text) {
681
+ $textLoading.addClass('hidden');
682
+ } else {
683
+ $textLoading.html(text).removeClass('hidden');
684
+ }
679
685
  }
686
+ return this;
680
687
  }
681
-
682
- return this;
683
- },
684
-
685
- /**
686
- * Sets the label displayed when the list is loading.
687
- * @param {String|Boolean} text - The text to set. If the value is false no label is displayed
688
- * @returns {listBox}
688
+ };
689
+
690
+ /**
691
+ * Builds an instance of the datalist component
692
+ * @param {Object} config
693
+ * @param {String} [config.keyName] - Sets the name of the attribute containing the identifier for each data line (default: 'id')
694
+ * @param {String} [config.labelName] - Sets the name of the attribute containing the label for each data line (default: 'label')
695
+ * @param {String|Boolean} [config.labelText] - Sets the displayed title for the column containing the labels. If the value is false no title is displayed (default: 'Label')
696
+ * @param {String|Boolean} [config.title] - Sets the title of the list. If the value is false no title is displayed (default: false)
697
+ * @param {String|Boolean} [config.textNumber] - Sets the label of the number of data lines. If the value is false no label is displayed (default: 'Available')
698
+ * @param {String|Boolean} [config.textEmpty] - Sets the label displayed when there no data available. If the value is false no label is displayed (default: 'There is nothing to list!')
699
+ * @param {String|Boolean} [config.textLoading] - Sets the label displayed when the list is loading. If the value is false no label is displayed (default: 'Loading')
700
+ * @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component
701
+ * @param {Boolean} [config.selectable] - Append a checkbox on each displayed line to allow selection (default: false)
702
+ * @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before
703
+ * @param {Function} [config.labelTransform] - Optional renderer applied on each displayed label.
704
+ * @param {Function} [config.countRenderer] - An optional callback applied on the list count before display
705
+ * @param {Array} [config.tools] - An optional list of buttons to add on top of the list. Each buttons provides a mass action on the selected lines. If selectable is not enabled, all lines are selected.
706
+ * @param {Array} [config.actions] - An optional list of buttons to add on each line.
707
+ * @param {Array} [data] - The data to display
708
+ * @returns {datalist}
709
+ *
710
+ * @event init - Emitted when the component is initialized
711
+ * @event destroy - Emitted when the component is destroying
712
+ * @event render - Emitted when the component is rendered
713
+ * @event update - Emitted when the component is updated
714
+ * @event tool - Emitted when a tool button is clicked
715
+ * @event action - Emitted when an action button is clicked
716
+ * @event select - Emitted when a selection is made
717
+ * @event show - Emitted when the component is shown
718
+ * @event hide - Emitted when the component is hidden
719
+ * @event enable - Emitted when the component is enabled
720
+ * @event disable - Emitted when the component is disabled
721
+ * @event template - Emitted when the template is changed
689
722
  */
690
- setTextLoading: function setTextLoading(text) {
691
- var $textLoading = this.controls && this.controls.$textLoading;
692
- this.config.textLoading = text;
693
-
694
- if ($textLoading) {
695
- if (false === text) {
696
- $textLoading.addClass('hidden');
697
- } else {
698
- $textLoading.html(text).removeClass('hidden');
699
- }
723
+ function datalistFactory(config, data) {
724
+ var initConfig = config || {};
725
+ var actions = {};
726
+ var tools = {};
727
+
728
+ // build a map of the tools if any
729
+ if (initConfig.tools) {
730
+ _.forEach(initConfig.tools, function (tool) {
731
+ tools[tool.id] = tool;
732
+ });
700
733
  }
701
734
 
702
- return this;
703
- }
704
- };
705
- /**
706
- * Builds an instance of the datalist component
707
- * @param {Object} config
708
- * @param {String} [config.keyName] - Sets the name of the attribute containing the identifier for each data line (default: 'id')
709
- * @param {String} [config.labelName] - Sets the name of the attribute containing the label for each data line (default: 'label')
710
- * @param {String|Boolean} [config.labelText] - Sets the displayed title for the column containing the labels. If the value is false no title is displayed (default: 'Label')
711
- * @param {String|Boolean} [config.title] - Sets the title of the list. If the value is false no title is displayed (default: false)
712
- * @param {String|Boolean} [config.textNumber] - Sets the label of the number of data lines. If the value is false no label is displayed (default: 'Available')
713
- * @param {String|Boolean} [config.textEmpty] - Sets the label displayed when there no data available. If the value is false no label is displayed (default: 'There is nothing to list!')
714
- * @param {String|Boolean} [config.textLoading] - Sets the label displayed when the list is loading. If the value is false no label is displayed (default: 'Loading')
715
- * @param {jQuery|HTMLElement|String} [config.renderTo] - An optional container in which renders the component
716
- * @param {Boolean} [config.selectable] - Append a checkbox on each displayed line to allow selection (default: false)
717
- * @param {Boolean} [config.replace] - When the component is appended to its container, clears the place before
718
- * @param {Function} [config.labelTransform] - Optional renderer applied on each displayed label.
719
- * @param {Function} [config.countRenderer] - An optional callback applied on the list count before display
720
- * @param {Array} [config.tools] - An optional list of buttons to add on top of the list. Each buttons provides a mass action on the selected lines. If selectable is not enabled, all lines are selected.
721
- * @param {Array} [config.actions] - An optional list of buttons to add on each line.
722
- * @param {Array} [data] - The data to display
723
- * @returns {datalist}
724
- *
725
- * @event init - Emitted when the component is initialized
726
- * @event destroy - Emitted when the component is destroying
727
- * @event render - Emitted when the component is rendered
728
- * @event update - Emitted when the component is updated
729
- * @event tool - Emitted when a tool button is clicked
730
- * @event action - Emitted when an action button is clicked
731
- * @event select - Emitted when a selection is made
732
- * @event show - Emitted when the component is shown
733
- * @event hide - Emitted when the component is hidden
734
- * @event enable - Emitted when the component is enabled
735
- * @event disable - Emitted when the component is disabled
736
- * @event template - Emitted when the template is changed
737
- */
738
-
739
- function datalistFactory(config, data) {
740
- var initConfig = config || {};
741
- var actions = {};
742
- var tools = {}; // build a map of the tools if any
743
-
744
- if (initConfig.tools) {
745
- _.forEach(initConfig.tools, function (tool) {
746
- tools[tool.id] = tool;
747
- });
748
- } // build a map of the lines actions if any
749
-
750
-
751
- if (initConfig.actions) {
752
- _.forEach(initConfig.actions, function (action) {
753
- actions[action.id] = action;
754
- });
755
- }
756
-
757
- return component(datalist, _defaults).setTemplate(mainTpl) // uninstalls the component
758
- .on('destroy', function () {
759
- this.controls = null;
760
- this.pendingSelection = null;
761
- }) // renders the component
762
- .on('render', function () {
763
- var self = this; // get access to all needed placeholders
764
-
765
- this.controls = {
766
- $title: this.$component.find('h1'),
767
- $textEmpty: this.$component.find('.empty-list'),
768
- $textAvailable: this.$component.find('.available-list'),
769
- $textLoading: this.$component.find('.loading span'),
770
- $numberLabel: this.$component.find('.available-list .label'),
771
- $numberValue: this.$component.find('.available-list .count'),
772
- $actionBar: this.$component.find('.list .action-bar'),
773
- $massAction: this.$component.find('.list .mass-action'),
774
- $checkAll: this.$component.find('.list th.checkboxes input'),
775
- $checkboxes: this.$component.find('.list td.checkboxes input'),
776
- $list: this.$component.find('.list tbody')
777
- }; // take care of tools buttons
778
-
779
- this.controls.$actionBar.on('click', 'button', function (e) {
780
- var $this = $$1(this);
781
- var buttonId = $this.closest('button').data('control');
782
- var button = tools[buttonId];
783
- var selection = self.getSelection();
784
- e.preventDefault();
785
-
786
- if (button && button.action) {
787
- button.action.call(self, selection, buttonId);
788
- }
789
- /**
790
- * @event datalist#tool
791
- * @param {Array} selection
792
- * @param {String} buttonId
793
- */
735
+ // build a map of the lines actions if any
736
+ if (initConfig.actions) {
737
+ _.forEach(initConfig.actions, function (action) {
738
+ actions[action.id] = action;
739
+ });
740
+ }
741
+ return component(datalist, _defaults).setTemplate(mainTpl)
794
742
 
743
+ // uninstalls the component
744
+ .on('destroy', function () {
745
+ this.controls = null;
746
+ this.pendingSelection = null;
747
+ })
748
+
749
+ // renders the component
750
+ .on('render', function () {
751
+ var self = this;
752
+
753
+ // get access to all needed placeholders
754
+ this.controls = {
755
+ $title: this.$component.find('h1'),
756
+ $textEmpty: this.$component.find('.empty-list'),
757
+ $textAvailable: this.$component.find('.available-list'),
758
+ $textLoading: this.$component.find('.loading span'),
759
+ $numberLabel: this.$component.find('.available-list .label'),
760
+ $numberValue: this.$component.find('.available-list .count'),
761
+ $actionBar: this.$component.find('.list .action-bar'),
762
+ $massAction: this.$component.find('.list .mass-action'),
763
+ $checkAll: this.$component.find('.list th.checkboxes input'),
764
+ $checkboxes: this.$component.find('.list td.checkboxes input'),
765
+ $list: this.$component.find('.list tbody')
766
+ };
767
+
768
+ // take care of tools buttons
769
+ this.controls.$actionBar.on('click', 'button', function (e) {
770
+ var $this = $$1(this);
771
+ var buttonId = $this.closest('button').data('control');
772
+ var button = tools[buttonId];
773
+ var selection = self.getSelection();
774
+ e.preventDefault();
775
+ if (button && button.action) {
776
+ button.action.call(self, selection, buttonId);
777
+ }
795
778
 
796
- self.trigger('tool', selection, buttonId);
797
- }); // take care of actions buttons
779
+ /**
780
+ * @event datalist#tool
781
+ * @param {Array} selection
782
+ * @param {String} buttonId
783
+ */
784
+ self.trigger('tool', selection, buttonId);
785
+ });
798
786
 
799
- this.controls.$list.on('click', 'button', function (e) {
800
- var $this = $$1(this);
801
- var lineId = $this.closest('tr').data('id');
802
- var buttonId = $this.closest('button').data('control');
803
- var button = actions[buttonId];
804
- e.preventDefault();
787
+ // take care of actions buttons
788
+ this.controls.$list.on('click', 'button', function (e) {
789
+ var $this = $$1(this);
790
+ var lineId = $this.closest('tr').data('id');
791
+ var buttonId = $this.closest('button').data('control');
792
+ var button = actions[buttonId];
793
+ e.preventDefault();
794
+ if (button && button.action) {
795
+ button.action.call(self, lineId, buttonId);
796
+ }
805
797
 
806
- if (button && button.action) {
807
- button.action.call(self, lineId, buttonId);
808
- }
809
- /**
810
- * @event datalist#action
811
- * @param {String} lineId
812
- * @param {String} buttonId
813
- */
798
+ /**
799
+ * @event datalist#action
800
+ * @param {String} lineId
801
+ * @param {String} buttonId
802
+ */
803
+ self.trigger('action', lineId, buttonId);
804
+ });
814
805
 
806
+ // take care of clicks on labels
807
+ this.setState('selectable', this.config.selectable);
808
+ this.controls.$list.on('click', 'td.label', function () {
809
+ var $checkbox;
810
+ if (self.config.selectable) {
811
+ $checkbox = $$1(this).closest('tr').find('input[type="checkbox"]');
812
+
813
+ // toggle the line selection
814
+ if ($checkbox.prop('checked')) {
815
+ $checkbox.prop('checked', false);
816
+ } else {
817
+ $checkbox.prop('checked', true);
818
+ }
815
819
 
816
- self.trigger('action', lineId, buttonId);
817
- }); // take care of clicks on labels
820
+ // takes care of the new selection
821
+ self._onSelection();
822
+ }
823
+ });
818
824
 
819
- this.setState('selectable', this.config.selectable);
820
- this.controls.$list.on('click', 'td.label', function () {
821
- var $checkbox;
825
+ // take care of clicks on checkboxes
826
+ this.controls.$list.on('click', 'input[type="checkbox"]', function () {
827
+ // just takes care of the new selection
828
+ self._onSelection();
829
+ });
822
830
 
823
- if (self.config.selectable) {
824
- $checkbox = $$1(this).closest('tr').find('input[type="checkbox"]'); // toggle the line selection
831
+ // check/uncheck all checkboxes
832
+ this.controls.$checkAll.on('click', function () {
833
+ var $checkboxes = self.controls.$checkboxes;
825
834
 
826
- if ($checkbox.prop('checked')) {
827
- $checkbox.prop('checked', false);
835
+ // select/unselect all lines
836
+ if (this.checked) {
837
+ $checkboxes.prop('checked', true);
828
838
  } else {
829
- $checkbox.prop('checked', true);
830
- } // takes care of the new selection
831
-
839
+ $checkboxes.prop('checked', false);
840
+ }
832
841
 
842
+ // takes care of the new selection
833
843
  self._onSelection();
834
- }
835
- }); // take care of clicks on checkboxes
836
-
837
- this.controls.$list.on('click', 'input[type="checkbox"]', function () {
838
- // just takes care of the new selection
839
- self._onSelection();
840
- }); // check/uncheck all checkboxes
841
-
842
- this.controls.$checkAll.on('click', function () {
843
- var $checkboxes = self.controls.$checkboxes; // select/unselect all lines
844
+ });
844
845
 
845
- if (this.checked) {
846
- $checkboxes.prop('checked', true);
846
+ // data already available ?
847
+ if (data) {
848
+ this.update(data);
847
849
  } else {
848
- $checkboxes.prop('checked', false);
849
- } // takes care of the new selection
850
-
851
-
852
- self._onSelection();
853
- }); // data already available ?
854
-
855
- if (data) {
856
- this.update(data);
857
- } else {
858
- this.setState('empty', true);
859
- this.setState('loaded', false);
860
- }
861
- }).init(initConfig);
862
- }
850
+ this.setState('empty', true);
851
+ this.setState('loaded', false);
852
+ }
853
+ }).init(initConfig);
854
+ }
863
855
 
864
- return datalistFactory;
856
+ return datalistFactory;
865
857
 
866
858
  });